Revision control

++ /*
++ ** 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.
++ */
++
++ /*
++ ** Copyright: 2014-2024 The Khronos Group Inc.
++ ** License: MIT
++ **
++ ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
++ ** KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
++ ** SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
++ */
++
++ /*
++ ** This header is automatically generated by the same tool that creates
++ ** the Binary Section of the SPIR-V specification.
++ */
++
++ /*
++ ** Enumeration tokens for SPIR-V, in various styles:
++ ** C, C++, C++11, JSON, Lua, Python, C#, D, Beef
++ **
++ ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
++ ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
++ ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
++ ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
++ ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
++ ** - C# will use enum classes in the Specification class located in the "Spv" namespace,
++ ** e.g.: Spv.Specification.SourceLanguage.GLSL
++ ** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
++ ** - Beef will use enum classes in the Specification class located in the "Spv" namespace,
++ ** e.g.: Spv.Specification.SourceLanguage.GLSL
++ **
++ ** Some tokens act like mask values, which can be OR'd together,
++ ** while others are mutually exclusive. The mask-like ones have
++ ** "Mask" in their name, and a parallel enum that has the shift
++ ** amount (1 << x) for each corresponding enumerant.
++ */
++
++ #ifndef spirv_H
++ #define spirv_H
++
++ typedef unsigned int SpvId;
++
++ #define SPV_VERSION 0x10600
++ #define SPV_REVISION 1
++
++ static const unsigned int SpvMagicNumber = 0x07230203;
++ static const unsigned int SpvVersion = 0x00010600;
++ static const unsigned int SpvRevision = 1;
++ static const unsigned int SpvOpCodeMask = 0xffff;
++ static const unsigned int SpvWordCountShift = 16;
++
++ typedef enum SpvSourceLanguage_ {
++ SpvSourceLanguageUnknown = 0,
++ SpvSourceLanguageESSL = 1,
++ SpvSourceLanguageGLSL = 2,
++ SpvSourceLanguageOpenCL_C = 3,
++ SpvSourceLanguageOpenCL_CPP = 4,
++ SpvSourceLanguageHLSL = 5,
++ SpvSourceLanguageCPP_for_OpenCL = 6,
++ SpvSourceLanguageSYCL = 7,
++ SpvSourceLanguageHERO_C = 8,
++ SpvSourceLanguageNZSL = 9,
++ SpvSourceLanguageWGSL = 10,
++ SpvSourceLanguageSlang = 11,
++ SpvSourceLanguageZig = 12,
++ SpvSourceLanguageRust = 13,
++ SpvSourceLanguageMax = 0x7fffffff,
++ } SpvSourceLanguage;
++
++ typedef enum SpvExecutionModel_ {
++ SpvExecutionModelVertex = 0,
++ SpvExecutionModelTessellationControl = 1,
++ SpvExecutionModelTessellationEvaluation = 2,
++ SpvExecutionModelGeometry = 3,
++ SpvExecutionModelFragment = 4,
++ SpvExecutionModelGLCompute = 5,
++ SpvExecutionModelKernel = 6,
++ SpvExecutionModelTaskNV = 5267,
++ SpvExecutionModelMeshNV = 5268,
++ SpvExecutionModelRayGenerationKHR = 5313,
++ SpvExecutionModelRayGenerationNV = 5313,
++ SpvExecutionModelIntersectionKHR = 5314,
++ SpvExecutionModelIntersectionNV = 5314,
++ SpvExecutionModelAnyHitKHR = 5315,
++ SpvExecutionModelAnyHitNV = 5315,
++ SpvExecutionModelClosestHitKHR = 5316,
++ SpvExecutionModelClosestHitNV = 5316,
++ SpvExecutionModelMissKHR = 5317,
++ SpvExecutionModelMissNV = 5317,
++ SpvExecutionModelCallableKHR = 5318,
++ SpvExecutionModelCallableNV = 5318,
++ SpvExecutionModelTaskEXT = 5364,
++ SpvExecutionModelMeshEXT = 5365,
++ SpvExecutionModelMax = 0x7fffffff,
++ } SpvExecutionModel;
++
++ typedef enum SpvAddressingModel_ {
++ SpvAddressingModelLogical = 0,
++ SpvAddressingModelPhysical32 = 1,
++ SpvAddressingModelPhysical64 = 2,
++ SpvAddressingModelPhysicalStorageBuffer64 = 5348,
++ SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
++ SpvAddressingModelMax = 0x7fffffff,
++ } SpvAddressingModel;
++
++ typedef enum SpvMemoryModel_ {
++ SpvMemoryModelSimple = 0,
++ SpvMemoryModelGLSL450 = 1,
++ SpvMemoryModelOpenCL = 2,
++ SpvMemoryModelVulkan = 3,
++ SpvMemoryModelVulkanKHR = 3,
++ SpvMemoryModelMax = 0x7fffffff,
++ } SpvMemoryModel;
++
++ typedef enum SpvExecutionMode_ {
++ SpvExecutionModeInvocations = 0,
++ SpvExecutionModeSpacingEqual = 1,
++ SpvExecutionModeSpacingFractionalEven = 2,
++ SpvExecutionModeSpacingFractionalOdd = 3,
++ SpvExecutionModeVertexOrderCw = 4,
++ SpvExecutionModeVertexOrderCcw = 5,
++ SpvExecutionModePixelCenterInteger = 6,
++ SpvExecutionModeOriginUpperLeft = 7,
++ SpvExecutionModeOriginLowerLeft = 8,
++ SpvExecutionModeEarlyFragmentTests = 9,
++ SpvExecutionModePointMode = 10,
++ SpvExecutionModeXfb = 11,
++ SpvExecutionModeDepthReplacing = 12,
++ SpvExecutionModeDepthGreater = 14,
++ SpvExecutionModeDepthLess = 15,
++ SpvExecutionModeDepthUnchanged = 16,
++ SpvExecutionModeLocalSize = 17,
++ SpvExecutionModeLocalSizeHint = 18,
++ SpvExecutionModeInputPoints = 19,
++ SpvExecutionModeInputLines = 20,
++ SpvExecutionModeInputLinesAdjacency = 21,
++ SpvExecutionModeTriangles = 22,
++ SpvExecutionModeInputTrianglesAdjacency = 23,
++ SpvExecutionModeQuads = 24,
++ SpvExecutionModeIsolines = 25,
++ SpvExecutionModeOutputVertices = 26,
++ SpvExecutionModeOutputPoints = 27,
++ SpvExecutionModeOutputLineStrip = 28,
++ SpvExecutionModeOutputTriangleStrip = 29,
++ SpvExecutionModeVecTypeHint = 30,
++ SpvExecutionModeContractionOff = 31,
++ SpvExecutionModeInitializer = 33,
++ SpvExecutionModeFinalizer = 34,
++ SpvExecutionModeSubgroupSize = 35,
++ SpvExecutionModeSubgroupsPerWorkgroup = 36,
++ SpvExecutionModeSubgroupsPerWorkgroupId = 37,
++ SpvExecutionModeLocalSizeId = 38,
++ SpvExecutionModeLocalSizeHintId = 39,
++ SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
++ SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
++ SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
++ SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
++ SpvExecutionModePostDepthCoverage = 4446,
++ SpvExecutionModeDenormPreserve = 4459,
++ SpvExecutionModeDenormFlushToZero = 4460,
++ SpvExecutionModeSignedZeroInfNanPreserve = 4461,
++ SpvExecutionModeRoundingModeRTE = 4462,
++ SpvExecutionModeRoundingModeRTZ = 4463,
++ SpvExecutionModeNonCoherentTileAttachmentReadQCOM = 4489,
++ SpvExecutionModeTileShadingRateQCOM = 4490,
++ SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
++ SpvExecutionModeStencilRefReplacingEXT = 5027,
++ SpvExecutionModeCoalescingAMDX = 5069,
++ SpvExecutionModeIsApiEntryAMDX = 5070,
++ SpvExecutionModeMaxNodeRecursionAMDX = 5071,
++ SpvExecutionModeStaticNumWorkgroupsAMDX = 5072,
++ SpvExecutionModeShaderIndexAMDX = 5073,
++ SpvExecutionModeMaxNumWorkgroupsAMDX = 5077,
++ SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
++ SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
++ SpvExecutionModeStencilRefLessFrontAMD = 5081,
++ SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
++ SpvExecutionModeStencilRefGreaterBackAMD = 5083,
++ SpvExecutionModeStencilRefLessBackAMD = 5084,
++ SpvExecutionModeQuadDerivativesKHR = 5088,
++ SpvExecutionModeRequireFullQuadsKHR = 5089,
++ SpvExecutionModeSharesInputWithAMDX = 5102,
++ SpvExecutionModeArithmeticPoisonKHR = 5157,
++ 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,
++ SpvExecutionModeShader64BitIndexingEXT = 5427,
++ SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
++ SpvExecutionModeRoundingModeRTPINTEL = 5620,
++ SpvExecutionModeRoundingModeRTNINTEL = 5621,
++ SpvExecutionModeFloatingPointModeALTINTEL = 5622,
++ SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
++ SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
++ SpvExecutionModeMaxWorkDimINTEL = 5894,
++ SpvExecutionModeNoGlobalOffsetINTEL = 5895,
++ SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
++ SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
++ SpvExecutionModeMaximallyReconvergesKHR = 6023,
++ SpvExecutionModeFPFastMathDefault = 6028,
++ SpvExecutionModeStreamingInterfaceINTEL = 6154,
++ SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
++ SpvExecutionModeNamedBarrierCountINTEL = 6417,
++ SpvExecutionModeMaximumRegistersINTEL = 6461,
++ SpvExecutionModeMaximumRegistersIdINTEL = 6462,
++ SpvExecutionModeNamedMaximumRegistersINTEL = 6463,
++ SpvExecutionModeMax = 0x7fffffff,
++ } SpvExecutionMode;
++
++ typedef enum SpvStorageClass_ {
++ SpvStorageClassUniformConstant = 0,
++ SpvStorageClassInput = 1,
++ SpvStorageClassUniform = 2,
++ SpvStorageClassOutput = 3,
++ SpvStorageClassWorkgroup = 4,
++ SpvStorageClassCrossWorkgroup = 5,
++ SpvStorageClassPrivate = 6,
++ SpvStorageClassFunction = 7,
++ SpvStorageClassGeneric = 8,
++ SpvStorageClassPushConstant = 9,
++ SpvStorageClassAtomicCounter = 10,
++ SpvStorageClassImage = 11,
++ SpvStorageClassStorageBuffer = 12,
++ SpvStorageClassTileImageEXT = 4172,
++ SpvStorageClassTileAttachmentQCOM = 4491,
++ SpvStorageClassNodePayloadAMDX = 5068,
++ SpvStorageClassCallableDataKHR = 5328,
++ SpvStorageClassCallableDataNV = 5328,
++ SpvStorageClassIncomingCallableDataKHR = 5329,
++ SpvStorageClassIncomingCallableDataNV = 5329,
++ SpvStorageClassRayPayloadKHR = 5338,
++ SpvStorageClassRayPayloadNV = 5338,
++ SpvStorageClassHitAttributeKHR = 5339,
++ SpvStorageClassHitAttributeNV = 5339,
++ SpvStorageClassIncomingRayPayloadKHR = 5342,
++ SpvStorageClassIncomingRayPayloadNV = 5342,
++ SpvStorageClassShaderRecordBufferKHR = 5343,
++ SpvStorageClassShaderRecordBufferNV = 5343,
++ SpvStorageClassPhysicalStorageBuffer = 5349,
++ SpvStorageClassPhysicalStorageBufferEXT = 5349,
++ SpvStorageClassHitObjectAttributeNV = 5385,
++ SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
++ SpvStorageClassHitObjectAttributeEXT = 5411,
++ SpvStorageClassCodeSectionINTEL = 5605,
++ SpvStorageClassDeviceOnlyALTERA = 5936,
++ SpvStorageClassDeviceOnlyINTEL = 5936,
++ SpvStorageClassHostOnlyALTERA = 5937,
++ SpvStorageClassHostOnlyINTEL = 5937,
++ SpvStorageClassMax = 0x7fffffff,
++ } SpvStorageClass;
++
++ typedef enum SpvDim_ {
++ SpvDim1D = 0,
++ SpvDim2D = 1,
++ SpvDim3D = 2,
++ SpvDimCube = 3,
++ SpvDimRect = 4,
++ SpvDimBuffer = 5,
++ SpvDimSubpassData = 6,
++ SpvDimTileImageDataEXT = 4173,
++ SpvDimMax = 0x7fffffff,
++ } SpvDim;
++
++ typedef enum SpvSamplerAddressingMode_ {
++ SpvSamplerAddressingModeNone = 0,
++ SpvSamplerAddressingModeClampToEdge = 1,
++ SpvSamplerAddressingModeClamp = 2,
++ SpvSamplerAddressingModeRepeat = 3,
++ SpvSamplerAddressingModeRepeatMirrored = 4,
++ SpvSamplerAddressingModeMax = 0x7fffffff,
++ } SpvSamplerAddressingMode;
++
++ typedef enum SpvSamplerFilterMode_ {
++ SpvSamplerFilterModeNearest = 0,
++ SpvSamplerFilterModeLinear = 1,
++ SpvSamplerFilterModeMax = 0x7fffffff,
++ } SpvSamplerFilterMode;
++
++ typedef enum SpvImageFormat_ {
++ SpvImageFormatUnknown = 0,
++ SpvImageFormatRgba32f = 1,
++ SpvImageFormatRgba16f = 2,
++ SpvImageFormatR32f = 3,
++ SpvImageFormatRgba8 = 4,
++ SpvImageFormatRgba8Snorm = 5,
++ SpvImageFormatRg32f = 6,
++ SpvImageFormatRg16f = 7,
++ SpvImageFormatR11fG11fB10f = 8,
++ SpvImageFormatR16f = 9,
++ SpvImageFormatRgba16 = 10,
++ SpvImageFormatRgb10A2 = 11,
++ SpvImageFormatRg16 = 12,
++ SpvImageFormatRg8 = 13,
++ SpvImageFormatR16 = 14,
++ SpvImageFormatR8 = 15,
++ SpvImageFormatRgba16Snorm = 16,
++ SpvImageFormatRg16Snorm = 17,
++ SpvImageFormatRg8Snorm = 18,
++ SpvImageFormatR16Snorm = 19,
++ SpvImageFormatR8Snorm = 20,
++ SpvImageFormatRgba32i = 21,
++ SpvImageFormatRgba16i = 22,
++ SpvImageFormatRgba8i = 23,
++ SpvImageFormatR32i = 24,
++ SpvImageFormatRg32i = 25,
++ SpvImageFormatRg16i = 26,
++ SpvImageFormatRg8i = 27,
++ SpvImageFormatR16i = 28,
++ SpvImageFormatR8i = 29,
++ SpvImageFormatRgba32ui = 30,
++ SpvImageFormatRgba16ui = 31,
++ SpvImageFormatRgba8ui = 32,
++ SpvImageFormatR32ui = 33,
++ SpvImageFormatRgb10a2ui = 34,
++ SpvImageFormatRg32ui = 35,
++ SpvImageFormatRg16ui = 36,
++ SpvImageFormatRg8ui = 37,
++ SpvImageFormatR16ui = 38,
++ SpvImageFormatR8ui = 39,
++ SpvImageFormatR64ui = 40,
++ SpvImageFormatR64i = 41,
++ SpvImageFormatMax = 0x7fffffff,
++ } SpvImageFormat;
++
++ typedef enum SpvImageChannelOrder_ {
++ SpvImageChannelOrderR = 0,
++ SpvImageChannelOrderA = 1,
++ SpvImageChannelOrderRG = 2,
++ SpvImageChannelOrderRA = 3,
++ SpvImageChannelOrderRGB = 4,
++ SpvImageChannelOrderRGBA = 5,
++ SpvImageChannelOrderBGRA = 6,
++ SpvImageChannelOrderARGB = 7,
++ SpvImageChannelOrderIntensity = 8,
++ SpvImageChannelOrderLuminance = 9,
++ SpvImageChannelOrderRx = 10,
++ SpvImageChannelOrderRGx = 11,
++ SpvImageChannelOrderRGBx = 12,
++ SpvImageChannelOrderDepth = 13,
++ SpvImageChannelOrderDepthStencil = 14,
++ SpvImageChannelOrdersRGB = 15,
++ SpvImageChannelOrdersRGBx = 16,
++ SpvImageChannelOrdersRGBA = 17,
++ SpvImageChannelOrdersBGRA = 18,
++ SpvImageChannelOrderABGR = 19,
++ SpvImageChannelOrderMax = 0x7fffffff,
++ } SpvImageChannelOrder;
++
++ typedef enum SpvImageChannelDataType_ {
++ SpvImageChannelDataTypeSnormInt8 = 0,
++ SpvImageChannelDataTypeSnormInt16 = 1,
++ SpvImageChannelDataTypeUnormInt8 = 2,
++ SpvImageChannelDataTypeUnormInt16 = 3,
++ SpvImageChannelDataTypeUnormShort565 = 4,
++ SpvImageChannelDataTypeUnormShort555 = 5,
++ SpvImageChannelDataTypeUnormInt101010 = 6,
++ SpvImageChannelDataTypeSignedInt8 = 7,
++ SpvImageChannelDataTypeSignedInt16 = 8,
++ SpvImageChannelDataTypeSignedInt32 = 9,
++ SpvImageChannelDataTypeUnsignedInt8 = 10,
++ SpvImageChannelDataTypeUnsignedInt16 = 11,
++ SpvImageChannelDataTypeUnsignedInt32 = 12,
++ SpvImageChannelDataTypeHalfFloat = 13,
++ SpvImageChannelDataTypeFloat = 14,
++ SpvImageChannelDataTypeUnormInt24 = 15,
++ SpvImageChannelDataTypeUnormInt101010_2 = 16,
++ SpvImageChannelDataTypeUnormInt10X6EXT = 17,
++ SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
++ SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
++ SpvImageChannelDataTypeUnormInt2_101010EXT = 21,
++ SpvImageChannelDataTypeUnsignedInt10X6EXT = 22,
++ SpvImageChannelDataTypeUnsignedInt12X4EXT = 23,
++ SpvImageChannelDataTypeUnsignedInt14X2EXT = 24,
++ SpvImageChannelDataTypeUnormInt12X4EXT = 25,
++ SpvImageChannelDataTypeUnormInt14X2EXT = 26,
++ SpvImageChannelDataTypeMax = 0x7fffffff,
++ } SpvImageChannelDataType;
++
++ typedef enum SpvImageOperandsShift_ {
++ SpvImageOperandsBiasShift = 0,
++ SpvImageOperandsLodShift = 1,
++ SpvImageOperandsGradShift = 2,
++ SpvImageOperandsConstOffsetShift = 3,
++ SpvImageOperandsOffsetShift = 4,
++ SpvImageOperandsConstOffsetsShift = 5,
++ SpvImageOperandsSampleShift = 6,
++ SpvImageOperandsMinLodShift = 7,
++ SpvImageOperandsMakeTexelAvailableShift = 8,
++ SpvImageOperandsMakeTexelAvailableKHRShift = 8,
++ SpvImageOperandsMakeTexelVisibleShift = 9,
++ SpvImageOperandsMakeTexelVisibleKHRShift = 9,
++ SpvImageOperandsNonPrivateTexelShift = 10,
++ SpvImageOperandsNonPrivateTexelKHRShift = 10,
++ SpvImageOperandsVolatileTexelShift = 11,
++ SpvImageOperandsVolatileTexelKHRShift = 11,
++ SpvImageOperandsSignExtendShift = 12,
++ SpvImageOperandsZeroExtendShift = 13,
++ SpvImageOperandsNontemporalShift = 14,
++ SpvImageOperandsOffsetsShift = 16,
++ SpvImageOperandsMax = 0x7fffffff,
++ } SpvImageOperandsShift;
++
++ typedef enum SpvImageOperandsMask_ {
++ SpvImageOperandsMaskNone = 0,
++ SpvImageOperandsBiasMask = 0x00000001,
++ SpvImageOperandsLodMask = 0x00000002,
++ SpvImageOperandsGradMask = 0x00000004,
++ SpvImageOperandsConstOffsetMask = 0x00000008,
++ SpvImageOperandsOffsetMask = 0x00000010,
++ SpvImageOperandsConstOffsetsMask = 0x00000020,
++ SpvImageOperandsSampleMask = 0x00000040,
++ SpvImageOperandsMinLodMask = 0x00000080,
++ SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
++ SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
++ SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
++ SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
++ SpvImageOperandsNonPrivateTexelMask = 0x00000400,
++ SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
++ SpvImageOperandsVolatileTexelMask = 0x00000800,
++ SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
++ SpvImageOperandsSignExtendMask = 0x00001000,
++ SpvImageOperandsZeroExtendMask = 0x00002000,
++ SpvImageOperandsNontemporalMask = 0x00004000,
++ SpvImageOperandsOffsetsMask = 0x00010000,
++ } SpvImageOperandsMask;
++
++ typedef enum SpvFPFastMathModeShift_ {
++ SpvFPFastMathModeNotNaNShift = 0,
++ SpvFPFastMathModeNotInfShift = 1,
++ SpvFPFastMathModeNSZShift = 2,
++ SpvFPFastMathModeAllowRecipShift = 3,
++ SpvFPFastMathModeFastShift = 4,
++ SpvFPFastMathModeAllowContractShift = 16,
++ SpvFPFastMathModeAllowContractFastINTELShift = 16,
++ SpvFPFastMathModeAllowReassocShift = 17,
++ SpvFPFastMathModeAllowReassocINTELShift = 17,
++ SpvFPFastMathModeAllowTransformShift = 18,
++ SpvFPFastMathModeMax = 0x7fffffff,
++ } SpvFPFastMathModeShift;
++
++ typedef enum SpvFPFastMathModeMask_ {
++ SpvFPFastMathModeMaskNone = 0,
++ SpvFPFastMathModeNotNaNMask = 0x00000001,
++ SpvFPFastMathModeNotInfMask = 0x00000002,
++ SpvFPFastMathModeNSZMask = 0x00000004,
++ SpvFPFastMathModeAllowRecipMask = 0x00000008,
++ SpvFPFastMathModeFastMask = 0x00000010,
++ SpvFPFastMathModeAllowContractMask = 0x00010000,
++ SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
++ SpvFPFastMathModeAllowReassocMask = 0x00020000,
++ SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
++ SpvFPFastMathModeAllowTransformMask = 0x00040000,
++ } SpvFPFastMathModeMask;
++
++ typedef enum SpvFPRoundingMode_ {
++ SpvFPRoundingModeRTE = 0,
++ SpvFPRoundingModeRTZ = 1,
++ SpvFPRoundingModeRTP = 2,
++ SpvFPRoundingModeRTN = 3,
++ SpvFPRoundingModeMax = 0x7fffffff,
++ } SpvFPRoundingMode;
++
++ typedef enum SpvLinkageType_ {
++ SpvLinkageTypeExport = 0,
++ SpvLinkageTypeImport = 1,
++ SpvLinkageTypeLinkOnceODR = 2,
++ SpvLinkageTypeMax = 0x7fffffff,
++ } SpvLinkageType;
++
++ typedef enum SpvAccessQualifier_ {
++ SpvAccessQualifierReadOnly = 0,
++ SpvAccessQualifierWriteOnly = 1,
++ SpvAccessQualifierReadWrite = 2,
++ SpvAccessQualifierMax = 0x7fffffff,
++ } SpvAccessQualifier;
++
++ typedef enum SpvFunctionParameterAttribute_ {
++ SpvFunctionParameterAttributeZext = 0,
++ SpvFunctionParameterAttributeSext = 1,
++ SpvFunctionParameterAttributeByVal = 2,
++ SpvFunctionParameterAttributeSret = 3,
++ SpvFunctionParameterAttributeNoAlias = 4,
++ SpvFunctionParameterAttributeNoCapture = 5,
++ SpvFunctionParameterAttributeNoWrite = 6,
++ SpvFunctionParameterAttributeNoReadWrite = 7,
++ SpvFunctionParameterAttributeRuntimeAlignedALTERA = 5940,
++ SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940,
++ SpvFunctionParameterAttributeMax = 0x7fffffff,
++ } SpvFunctionParameterAttribute;
++
++ typedef enum SpvDecoration_ {
++ SpvDecorationRelaxedPrecision = 0,
++ SpvDecorationSpecId = 1,
++ SpvDecorationBlock = 2,
++ SpvDecorationBufferBlock = 3,
++ SpvDecorationRowMajor = 4,
++ SpvDecorationColMajor = 5,
++ SpvDecorationArrayStride = 6,
++ SpvDecorationMatrixStride = 7,
++ SpvDecorationGLSLShared = 8,
++ SpvDecorationGLSLPacked = 9,
++ SpvDecorationCPacked = 10,
++ SpvDecorationBuiltIn = 11,
++ SpvDecorationNoPerspective = 13,
++ SpvDecorationFlat = 14,
++ SpvDecorationPatch = 15,
++ SpvDecorationCentroid = 16,
++ SpvDecorationSample = 17,
++ SpvDecorationInvariant = 18,
++ SpvDecorationRestrict = 19,
++ SpvDecorationAliased = 20,
++ SpvDecorationVolatile = 21,
++ SpvDecorationConstant = 22,
++ SpvDecorationCoherent = 23,
++ SpvDecorationNonWritable = 24,
++ SpvDecorationNonReadable = 25,
++ SpvDecorationUniform = 26,
++ SpvDecorationUniformId = 27,
++ SpvDecorationSaturatedConversion = 28,
++ SpvDecorationStream = 29,
++ SpvDecorationLocation = 30,
++ SpvDecorationComponent = 31,
++ SpvDecorationIndex = 32,
++ SpvDecorationBinding = 33,
++ SpvDecorationDescriptorSet = 34,
++ SpvDecorationOffset = 35,
++ SpvDecorationXfbBuffer = 36,
++ SpvDecorationXfbStride = 37,
++ SpvDecorationFuncParamAttr = 38,
++ SpvDecorationFPRoundingMode = 39,
++ SpvDecorationFPFastMathMode = 40,
++ SpvDecorationLinkageAttributes = 41,
++ SpvDecorationNoContraction = 42,
++ SpvDecorationInputAttachmentIndex = 43,
++ SpvDecorationAlignment = 44,
++ SpvDecorationMaxByteOffset = 45,
++ SpvDecorationAlignmentId = 46,
++ SpvDecorationMaxByteOffsetId = 47,
++ SpvDecorationSaturatedToLargestFloat8NormalConversionEXT = 4216,
++ SpvDecorationNoSignedWrap = 4469,
++ SpvDecorationNoUnsignedWrap = 4470,
++ SpvDecorationWeightTextureQCOM = 4487,
++ SpvDecorationBlockMatchTextureQCOM = 4488,
++ SpvDecorationBlockMatchSamplerQCOM = 4499,
++ SpvDecorationExplicitInterpAMD = 4999,
++ SpvDecorationNodeSharesPayloadLimitsWithAMDX = 5019,
++ SpvDecorationNodeMaxPayloadsAMDX = 5020,
++ SpvDecorationTrackFinishWritingAMDX = 5078,
++ SpvDecorationPayloadNodeNameAMDX = 5091,
++ SpvDecorationPayloadNodeBaseIndexAMDX = 5098,
++ SpvDecorationPayloadNodeSparseArrayAMDX = 5099,
++ SpvDecorationPayloadNodeArraySizeAMDX = 5100,
++ SpvDecorationPayloadDispatchIndirectAMDX = 5105,
++ SpvDecorationArrayStrideIdEXT = 5124,
++ SpvDecorationOffsetIdEXT = 5125,
++ SpvDecorationUTFEncodedKHR = 5145,
++ 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,
++ SpvDecorationMemberOffsetNV = 5358,
++ SpvDecorationHitObjectShaderRecordBufferNV = 5386,
++ SpvDecorationHitObjectShaderRecordBufferEXT = 5389,
++ SpvDecorationBankNV = 5397,
++ 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,
++ SpvDecorationRegisterALTERA = 5825,
++ SpvDecorationRegisterINTEL = 5825,
++ SpvDecorationMemoryALTERA = 5826,
++ SpvDecorationMemoryINTEL = 5826,
++ SpvDecorationNumbanksALTERA = 5827,
++ SpvDecorationNumbanksINTEL = 5827,
++ SpvDecorationBankwidthALTERA = 5828,
++ SpvDecorationBankwidthINTEL = 5828,
++ SpvDecorationMaxPrivateCopiesALTERA = 5829,
++ SpvDecorationMaxPrivateCopiesINTEL = 5829,
++ SpvDecorationSinglepumpALTERA = 5830,
++ SpvDecorationSinglepumpINTEL = 5830,
++ SpvDecorationDoublepumpALTERA = 5831,
++ SpvDecorationDoublepumpINTEL = 5831,
++ SpvDecorationMaxReplicatesALTERA = 5832,
++ SpvDecorationMaxReplicatesINTEL = 5832,
++ SpvDecorationSimpleDualPortALTERA = 5833,
++ SpvDecorationSimpleDualPortINTEL = 5833,
++ SpvDecorationMergeALTERA = 5834,
++ SpvDecorationMergeINTEL = 5834,
++ SpvDecorationBankBitsALTERA = 5835,
++ SpvDecorationBankBitsINTEL = 5835,
++ SpvDecorationForcePow2DepthALTERA = 5836,
++ SpvDecorationForcePow2DepthINTEL = 5836,
++ SpvDecorationStridesizeALTERA = 5883,
++ SpvDecorationStridesizeINTEL = 5883,
++ SpvDecorationWordsizeALTERA = 5884,
++ SpvDecorationWordsizeINTEL = 5884,
++ SpvDecorationTrueDualPortALTERA = 5885,
++ SpvDecorationTrueDualPortINTEL = 5885,
++ SpvDecorationBurstCoalesceALTERA = 5899,
++ SpvDecorationBurstCoalesceINTEL = 5899,
++ SpvDecorationCacheSizeALTERA = 5900,
++ SpvDecorationCacheSizeINTEL = 5900,
++ SpvDecorationDontStaticallyCoalesceALTERA = 5901,
++ SpvDecorationDontStaticallyCoalesceINTEL = 5901,
++ SpvDecorationPrefetchALTERA = 5902,
++ SpvDecorationPrefetchINTEL = 5902,
++ SpvDecorationStallEnableALTERA = 5905,
++ SpvDecorationStallEnableINTEL = 5905,
++ SpvDecorationFuseLoopsInFunctionALTERA = 5907,
++ SpvDecorationFuseLoopsInFunctionINTEL = 5907,
++ SpvDecorationMathOpDSPModeALTERA = 5909,
++ SpvDecorationMathOpDSPModeINTEL = 5909,
++ SpvDecorationAliasScopeINTEL = 5914,
++ SpvDecorationNoAliasINTEL = 5915,
++ SpvDecorationInitiationIntervalALTERA = 5917,
++ SpvDecorationInitiationIntervalINTEL = 5917,
++ SpvDecorationMaxConcurrencyALTERA = 5918,
++ SpvDecorationMaxConcurrencyINTEL = 5918,
++ SpvDecorationPipelineEnableALTERA = 5919,
++ SpvDecorationPipelineEnableINTEL = 5919,
++ SpvDecorationBufferLocationALTERA = 5921,
++ SpvDecorationBufferLocationINTEL = 5921,
++ SpvDecorationIOPipeStorageALTERA = 5944,
++ SpvDecorationIOPipeStorageINTEL = 5944,
++ SpvDecorationFunctionFloatingPointModeINTEL = 6080,
++ SpvDecorationSingleElementVectorINTEL = 6085,
++ SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
++ SpvDecorationMediaBlockIOINTEL = 6140,
++ SpvDecorationStallFreeALTERA = 6151,
++ SpvDecorationStallFreeINTEL = 6151,
++ SpvDecorationFPMaxErrorDecorationINTEL = 6170,
++ SpvDecorationLatencyControlLabelALTERA = 6172,
++ SpvDecorationLatencyControlLabelINTEL = 6172,
++ SpvDecorationLatencyControlConstraintALTERA = 6173,
++ SpvDecorationLatencyControlConstraintINTEL = 6173,
++ SpvDecorationConduitKernelArgumentALTERA = 6175,
++ SpvDecorationConduitKernelArgumentINTEL = 6175,
++ SpvDecorationRegisterMapKernelArgumentALTERA = 6176,
++ SpvDecorationRegisterMapKernelArgumentINTEL = 6176,
++ SpvDecorationMMHostInterfaceAddressWidthALTERA = 6177,
++ SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177,
++ SpvDecorationMMHostInterfaceDataWidthALTERA = 6178,
++ SpvDecorationMMHostInterfaceDataWidthINTEL = 6178,
++ SpvDecorationMMHostInterfaceLatencyALTERA = 6179,
++ SpvDecorationMMHostInterfaceLatencyINTEL = 6179,
++ SpvDecorationMMHostInterfaceReadWriteModeALTERA = 6180,
++ SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180,
++ SpvDecorationMMHostInterfaceMaxBurstALTERA = 6181,
++ SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181,
++ SpvDecorationMMHostInterfaceWaitRequestALTERA = 6182,
++ SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182,
++ SpvDecorationStableKernelArgumentALTERA = 6183,
++ SpvDecorationStableKernelArgumentINTEL = 6183,
++ SpvDecorationHostAccessINTEL = 6188,
++ SpvDecorationInitModeALTERA = 6190,
++ SpvDecorationInitModeINTEL = 6190,
++ SpvDecorationImplementInRegisterMapALTERA = 6191,
++ SpvDecorationImplementInRegisterMapINTEL = 6191,
++ SpvDecorationConditionalINTEL = 6247,
++ SpvDecorationCacheControlLoadINTEL = 6442,
++ SpvDecorationCacheControlStoreINTEL = 6443,
++ SpvDecorationMax = 0x7fffffff,
++ } SpvDecoration;
++
++ typedef enum SpvBuiltIn_ {
++ SpvBuiltInPosition = 0,
++ SpvBuiltInPointSize = 1,
++ SpvBuiltInClipDistance = 3,
++ SpvBuiltInCullDistance = 4,
++ SpvBuiltInVertexId = 5,
++ SpvBuiltInInstanceId = 6,
++ SpvBuiltInPrimitiveId = 7,
++ SpvBuiltInInvocationId = 8,
++ SpvBuiltInLayer = 9,
++ SpvBuiltInViewportIndex = 10,
++ SpvBuiltInTessLevelOuter = 11,
++ SpvBuiltInTessLevelInner = 12,
++ SpvBuiltInTessCoord = 13,
++ SpvBuiltInPatchVertices = 14,
++ SpvBuiltInFragCoord = 15,
++ SpvBuiltInPointCoord = 16,
++ SpvBuiltInFrontFacing = 17,
++ SpvBuiltInSampleId = 18,
++ SpvBuiltInSamplePosition = 19,
++ SpvBuiltInSampleMask = 20,
++ SpvBuiltInFragDepth = 22,
++ SpvBuiltInHelperInvocation = 23,
++ SpvBuiltInNumWorkgroups = 24,
++ SpvBuiltInWorkgroupSize = 25,
++ SpvBuiltInWorkgroupId = 26,
++ SpvBuiltInLocalInvocationId = 27,
++ SpvBuiltInGlobalInvocationId = 28,
++ SpvBuiltInLocalInvocationIndex = 29,
++ SpvBuiltInWorkDim = 30,
++ SpvBuiltInGlobalSize = 31,
++ SpvBuiltInEnqueuedWorkgroupSize = 32,
++ SpvBuiltInGlobalOffset = 33,
++ SpvBuiltInGlobalLinearId = 34,
++ SpvBuiltInSubgroupSize = 36,
++ SpvBuiltInSubgroupMaxSize = 37,
++ SpvBuiltInNumSubgroups = 38,
++ SpvBuiltInNumEnqueuedSubgroups = 39,
++ SpvBuiltInSubgroupId = 40,
++ SpvBuiltInSubgroupLocalInvocationId = 41,
++ SpvBuiltInVertexIndex = 42,
++ SpvBuiltInInstanceIndex = 43,
++ SpvBuiltInCoreIDARM = 4160,
++ SpvBuiltInCoreCountARM = 4161,
++ SpvBuiltInCoreMaxIDARM = 4162,
++ SpvBuiltInWarpIDARM = 4163,
++ SpvBuiltInWarpMaxIDARM = 4164,
++ SpvBuiltInSubgroupEqMask = 4416,
++ SpvBuiltInSubgroupEqMaskKHR = 4416,
++ SpvBuiltInSubgroupGeMask = 4417,
++ SpvBuiltInSubgroupGeMaskKHR = 4417,
++ SpvBuiltInSubgroupGtMask = 4418,
++ SpvBuiltInSubgroupGtMaskKHR = 4418,
++ SpvBuiltInSubgroupLeMask = 4419,
++ SpvBuiltInSubgroupLeMaskKHR = 4419,
++ SpvBuiltInSubgroupLtMask = 4420,
++ SpvBuiltInSubgroupLtMaskKHR = 4420,
++ SpvBuiltInBaseVertex = 4424,
++ SpvBuiltInBaseInstance = 4425,
++ SpvBuiltInDrawIndex = 4426,
++ SpvBuiltInPrimitiveShadingRateKHR = 4432,
++ SpvBuiltInDeviceIndex = 4438,
++ SpvBuiltInViewIndex = 4440,
++ SpvBuiltInShadingRateKHR = 4444,
++ SpvBuiltInTileOffsetQCOM = 4492,
++ SpvBuiltInTileDimensionQCOM = 4493,
++ SpvBuiltInTileApronSizeQCOM = 4494,
++ SpvBuiltInBaryCoordNoPerspAMD = 4992,
++ SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
++ SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
++ SpvBuiltInBaryCoordSmoothAMD = 4995,
++ SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
++ SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
++ SpvBuiltInBaryCoordPullModelAMD = 4998,
++ SpvBuiltInFragStencilRefEXT = 5014,
++ SpvBuiltInRemainingRecursionLevelsAMDX = 5021,
++ SpvBuiltInShaderIndexAMDX = 5073,
++ SpvBuiltInSamplerHeapEXT = 5122,
++ SpvBuiltInResourceHeapEXT = 5123,
++ SpvBuiltInViewportMaskNV = 5253,
++ SpvBuiltInSecondaryPositionNV = 5257,
++ SpvBuiltInSecondaryViewportMaskNV = 5258,
++ SpvBuiltInPositionPerViewNV = 5261,
++ SpvBuiltInViewportMaskPerViewNV = 5262,
++ SpvBuiltInFullyCoveredEXT = 5264,
++ SpvBuiltInTaskCountNV = 5274,
++ SpvBuiltInPrimitiveCountNV = 5275,
++ SpvBuiltInPrimitiveIndicesNV = 5276,
++ SpvBuiltInClipDistancePerViewNV = 5277,
++ SpvBuiltInCullDistancePerViewNV = 5278,
++ SpvBuiltInLayerPerViewNV = 5279,
++ SpvBuiltInMeshViewCountNV = 5280,
++ SpvBuiltInMeshViewIndicesNV = 5281,
++ SpvBuiltInBaryCoordKHR = 5286,
++ SpvBuiltInBaryCoordNV = 5286,
++ SpvBuiltInBaryCoordNoPerspKHR = 5287,
++ SpvBuiltInBaryCoordNoPerspNV = 5287,
++ SpvBuiltInFragSizeEXT = 5292,
++ SpvBuiltInFragmentSizeNV = 5292,
++ SpvBuiltInFragInvocationCountEXT = 5293,
++ SpvBuiltInInvocationsPerPixelNV = 5293,
++ SpvBuiltInPrimitivePointIndicesEXT = 5294,
++ SpvBuiltInPrimitiveLineIndicesEXT = 5295,
++ SpvBuiltInPrimitiveTriangleIndicesEXT = 5296,
++ SpvBuiltInCullPrimitiveEXT = 5299,
++ SpvBuiltInLaunchIdKHR = 5319,
++ SpvBuiltInLaunchIdNV = 5319,
++ SpvBuiltInLaunchSizeKHR = 5320,
++ SpvBuiltInLaunchSizeNV = 5320,
++ SpvBuiltInWorldRayOriginKHR = 5321,
++ SpvBuiltInWorldRayOriginNV = 5321,
++ SpvBuiltInWorldRayDirectionKHR = 5322,
++ SpvBuiltInWorldRayDirectionNV = 5322,
++ SpvBuiltInObjectRayOriginKHR = 5323,
++ SpvBuiltInObjectRayOriginNV = 5323,
++ SpvBuiltInObjectRayDirectionKHR = 5324,
++ SpvBuiltInObjectRayDirectionNV = 5324,
++ SpvBuiltInRayTminKHR = 5325,
++ SpvBuiltInRayTminNV = 5325,
++ SpvBuiltInRayTmaxKHR = 5326,
++ SpvBuiltInRayTmaxNV = 5326,
++ SpvBuiltInInstanceCustomIndexKHR = 5327,
++ SpvBuiltInInstanceCustomIndexNV = 5327,
++ SpvBuiltInObjectToWorldKHR = 5330,
++ SpvBuiltInObjectToWorldNV = 5330,
++ SpvBuiltInWorldToObjectKHR = 5331,
++ SpvBuiltInWorldToObjectNV = 5331,
++ SpvBuiltInHitTNV = 5332,
++ SpvBuiltInHitKindKHR = 5333,
++ SpvBuiltInHitKindNV = 5333,
++ SpvBuiltInCurrentRayTimeNV = 5334,
++ SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
++ SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337,
++ SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
++ SpvBuiltInIncomingRayFlagsKHR = 5351,
++ SpvBuiltInIncomingRayFlagsNV = 5351,
++ SpvBuiltInRayGeometryIndexKHR = 5352,
++ SpvBuiltInHitIsSphereNV = 5359,
++ SpvBuiltInHitIsLSSNV = 5360,
++ SpvBuiltInHitSpherePositionNV = 5361,
++ SpvBuiltInWarpsPerSMNV = 5374,
++ SpvBuiltInSMCountNV = 5375,
++ SpvBuiltInWarpIDNV = 5376,
++ SpvBuiltInSMIDNV = 5377,
++ SpvBuiltInHitLSSPositionsNV = 5396,
++ SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405,
++ SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406,
++ SpvBuiltInHitSphereRadiusNV = 5420,
++ SpvBuiltInHitLSSRadiiNV = 5421,
++ SpvBuiltInClusterIDNV = 5436,
++ SpvBuiltInCullMaskKHR = 6021,
++ SpvBuiltInMax = 0x7fffffff,
++ } SpvBuiltIn;
++
++ typedef enum SpvSelectionControlShift_ {
++ SpvSelectionControlFlattenShift = 0,
++ SpvSelectionControlDontFlattenShift = 1,
++ SpvSelectionControlMax = 0x7fffffff,
++ } SpvSelectionControlShift;
++
++ typedef enum SpvSelectionControlMask_ {
++ SpvSelectionControlMaskNone = 0,
++ SpvSelectionControlFlattenMask = 0x00000001,
++ SpvSelectionControlDontFlattenMask = 0x00000002,
++ } SpvSelectionControlMask;
++
++ typedef enum SpvLoopControlShift_ {
++ SpvLoopControlUnrollShift = 0,
++ SpvLoopControlDontUnrollShift = 1,
++ SpvLoopControlDependencyInfiniteShift = 2,
++ SpvLoopControlDependencyLengthShift = 3,
++ SpvLoopControlMinIterationsShift = 4,
++ SpvLoopControlMaxIterationsShift = 5,
++ SpvLoopControlIterationMultipleShift = 6,
++ SpvLoopControlPeelCountShift = 7,
++ SpvLoopControlPartialCountShift = 8,
++ SpvLoopControlInitiationIntervalALTERAShift = 16,
++ SpvLoopControlInitiationIntervalINTELShift = 16,
++ SpvLoopControlMaxConcurrencyALTERAShift = 17,
++ SpvLoopControlMaxConcurrencyINTELShift = 17,
++ SpvLoopControlDependencyArrayALTERAShift = 18,
++ SpvLoopControlDependencyArrayINTELShift = 18,
++ SpvLoopControlPipelineEnableALTERAShift = 19,
++ SpvLoopControlPipelineEnableINTELShift = 19,
++ SpvLoopControlLoopCoalesceALTERAShift = 20,
++ SpvLoopControlLoopCoalesceINTELShift = 20,
++ SpvLoopControlMaxInterleavingALTERAShift = 21,
++ SpvLoopControlMaxInterleavingINTELShift = 21,
++ SpvLoopControlSpeculatedIterationsALTERAShift = 22,
++ SpvLoopControlSpeculatedIterationsINTELShift = 22,
++ SpvLoopControlNoFusionALTERAShift = 23,
++ SpvLoopControlNoFusionINTELShift = 23,
++ SpvLoopControlLoopCountALTERAShift = 24,
++ SpvLoopControlLoopCountINTELShift = 24,
++ SpvLoopControlMaxReinvocationDelayALTERAShift = 25,
++ 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,
++ SpvLoopControlInitiationIntervalALTERAMask = 0x00010000,
++ SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
++ SpvLoopControlMaxConcurrencyALTERAMask = 0x00020000,
++ SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
++ SpvLoopControlDependencyArrayALTERAMask = 0x00040000,
++ SpvLoopControlDependencyArrayINTELMask = 0x00040000,
++ SpvLoopControlPipelineEnableALTERAMask = 0x00080000,
++ SpvLoopControlPipelineEnableINTELMask = 0x00080000,
++ SpvLoopControlLoopCoalesceALTERAMask = 0x00100000,
++ SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
++ SpvLoopControlMaxInterleavingALTERAMask = 0x00200000,
++ SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
++ SpvLoopControlSpeculatedIterationsALTERAMask = 0x00400000,
++ SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
++ SpvLoopControlNoFusionALTERAMask = 0x00800000,
++ SpvLoopControlNoFusionINTELMask = 0x00800000,
++ SpvLoopControlLoopCountALTERAMask = 0x01000000,
++ SpvLoopControlLoopCountINTELMask = 0x01000000,
++ SpvLoopControlMaxReinvocationDelayALTERAMask = 0x02000000,
++ 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,
++ SpvGroupOperationPartitionedReduceEXT = 6,
++ SpvGroupOperationPartitionedReduceNV = 6,
++ SpvGroupOperationPartitionedInclusiveScanEXT = 7,
++ SpvGroupOperationPartitionedInclusiveScanNV = 7,
++ SpvGroupOperationPartitionedExclusiveScanEXT = 8,
++ SpvGroupOperationPartitionedExclusiveScanNV = 8,
++ SpvGroupOperationMax = 0x7fffffff,
++ } SpvGroupOperation;
++
++ typedef enum SpvKernelEnqueueFlags_ {
++ SpvKernelEnqueueFlagsNoWait = 0,
++ SpvKernelEnqueueFlagsWaitKernel = 1,
++ SpvKernelEnqueueFlagsWaitWorkGroup = 2,
++ SpvKernelEnqueueFlagsMax = 0x7fffffff,
++ } SpvKernelEnqueueFlags;
++
++ typedef enum SpvKernelProfilingInfoShift_ {
++ SpvKernelProfilingInfoCmdExecTimeShift = 0,
++ SpvKernelProfilingInfoMax = 0x7fffffff,
++ } SpvKernelProfilingInfoShift;
++
++ typedef enum SpvKernelProfilingInfoMask_ {
++ SpvKernelProfilingInfoMaskNone = 0,
++ SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
++ } SpvKernelProfilingInfoMask;
++
++ typedef enum SpvCapability_ {
++ SpvCapabilityMatrix = 0,
++ SpvCapabilityShader = 1,
++ SpvCapabilityGeometry = 2,
++ SpvCapabilityTessellation = 3,
++ SpvCapabilityAddresses = 4,
++ SpvCapabilityLinkage = 5,
++ SpvCapabilityKernel = 6,
++ SpvCapabilityVector16 = 7,
++ SpvCapabilityFloat16Buffer = 8,
++ SpvCapabilityFloat16 = 9,
++ SpvCapabilityFloat64 = 10,
++ SpvCapabilityInt64 = 11,
++ SpvCapabilityInt64Atomics = 12,
++ SpvCapabilityImageBasic = 13,
++ SpvCapabilityImageReadWrite = 14,
++ SpvCapabilityImageMipmap = 15,
++ SpvCapabilityPipes = 17,
++ SpvCapabilityGroups = 18,
++ SpvCapabilityDeviceEnqueue = 19,
++ SpvCapabilityLiteralSampler = 20,
++ SpvCapabilityAtomicStorage = 21,
++ SpvCapabilityInt16 = 22,
++ SpvCapabilityTessellationPointSize = 23,
++ SpvCapabilityGeometryPointSize = 24,
++ SpvCapabilityImageGatherExtended = 25,
++ SpvCapabilityStorageImageMultisample = 27,
++ SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
++ SpvCapabilitySampledImageArrayDynamicIndexing = 29,
++ SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
++ SpvCapabilityStorageImageArrayDynamicIndexing = 31,
++ SpvCapabilityClipDistance = 32,
++ SpvCapabilityCullDistance = 33,
++ SpvCapabilityImageCubeArray = 34,
++ SpvCapabilitySampleRateShading = 35,
++ SpvCapabilityImageRect = 36,
++ SpvCapabilitySampledRect = 37,
++ SpvCapabilityGenericPointer = 38,
++ SpvCapabilityInt8 = 39,
++ SpvCapabilityInputAttachment = 40,
++ SpvCapabilitySparseResidency = 41,
++ SpvCapabilityMinLod = 42,
++ SpvCapabilitySampled1D = 43,
++ SpvCapabilityImage1D = 44,
++ SpvCapabilitySampledCubeArray = 45,
++ SpvCapabilitySampledBuffer = 46,
++ SpvCapabilityImageBuffer = 47,
++ SpvCapabilityImageMSArray = 48,
++ SpvCapabilityStorageImageExtendedFormats = 49,
++ SpvCapabilityImageQuery = 50,
++ SpvCapabilityDerivativeControl = 51,
++ SpvCapabilityInterpolationFunction = 52,
++ SpvCapabilityTransformFeedback = 53,
++ SpvCapabilityGeometryStreams = 54,
++ SpvCapabilityStorageImageReadWithoutFormat = 55,
++ SpvCapabilityStorageImageWriteWithoutFormat = 56,
++ SpvCapabilityMultiViewport = 57,
++ SpvCapabilitySubgroupDispatch = 58,
++ SpvCapabilityNamedBarrier = 59,
++ SpvCapabilityPipeStorage = 60,
++ SpvCapabilityGroupNonUniform = 61,
++ SpvCapabilityGroupNonUniformVote = 62,
++ SpvCapabilityGroupNonUniformArithmetic = 63,
++ SpvCapabilityGroupNonUniformBallot = 64,
++ SpvCapabilityGroupNonUniformShuffle = 65,
++ SpvCapabilityGroupNonUniformShuffleRelative = 66,
++ SpvCapabilityGroupNonUniformClustered = 67,
++ SpvCapabilityGroupNonUniformQuad = 68,
++ SpvCapabilityShaderLayer = 69,
++ SpvCapabilityShaderViewportIndex = 70,
++ SpvCapabilityUniformDecoration = 71,
++ SpvCapabilityCoreBuiltinsARM = 4165,
++ SpvCapabilityTileImageColorReadAccessEXT = 4166,
++ SpvCapabilityTileImageDepthReadAccessEXT = 4167,
++ SpvCapabilityTileImageStencilReadAccessEXT = 4168,
++ SpvCapabilityTensorsARM = 4174,
++ SpvCapabilityStorageTensorArrayDynamicIndexingARM = 4175,
++ SpvCapabilityStorageTensorArrayNonUniformIndexingARM = 4176,
++ SpvCapabilityGraphARM = 4191,
++ SpvCapabilityCooperativeMatrixLayoutsARM = 4201,
++ SpvCapabilityFloat8EXT = 4212,
++ SpvCapabilityFloat8CooperativeMatrixEXT = 4213,
++ SpvCapabilityFragmentShadingRateKHR = 4422,
++ SpvCapabilitySubgroupBallotKHR = 4423,
++ SpvCapabilityDrawParameters = 4427,
++ SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
++ SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
++ SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
++ SpvCapabilitySubgroupVoteKHR = 4431,
++ SpvCapabilityStorageBuffer16BitAccess = 4433,
++ SpvCapabilityStorageUniformBufferBlock16 = 4433,
++ SpvCapabilityStorageUniform16 = 4434,
++ SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
++ SpvCapabilityStoragePushConstant16 = 4435,
++ SpvCapabilityStorageInputOutput16 = 4436,
++ SpvCapabilityDeviceGroup = 4437,
++ SpvCapabilityMultiView = 4439,
++ SpvCapabilityVariablePointersStorageBuffer = 4441,
++ SpvCapabilityVariablePointers = 4442,
++ SpvCapabilityAtomicStorageOps = 4445,
++ SpvCapabilitySampleMaskPostDepthCoverage = 4447,
++ SpvCapabilityStorageBuffer8BitAccess = 4448,
++ SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
++ SpvCapabilityStoragePushConstant8 = 4450,
++ SpvCapabilityDenormPreserve = 4464,
++ SpvCapabilityDenormFlushToZero = 4465,
++ SpvCapabilitySignedZeroInfNanPreserve = 4466,
++ SpvCapabilityRoundingModeRTE = 4467,
++ SpvCapabilityRoundingModeRTZ = 4468,
++ SpvCapabilityRayQueryProvisionalKHR = 4471,
++ SpvCapabilityRayQueryKHR = 4472,
++ SpvCapabilityUntypedPointersKHR = 4473,
++ SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
++ SpvCapabilityRayTracingKHR = 4479,
++ SpvCapabilityTextureSampleWeightedQCOM = 4484,
++ SpvCapabilityTextureBoxFilterQCOM = 4485,
++ SpvCapabilityTextureBlockMatchQCOM = 4486,
++ SpvCapabilityTileShadingQCOM = 4495,
++ SpvCapabilityCooperativeMatrixConversionQCOM = 4496,
++ SpvCapabilityTextureBlockMatch2QCOM = 4498,
++ SpvCapabilityFloat16ImageAMD = 5008,
++ SpvCapabilityImageGatherBiasLodAMD = 5009,
++ SpvCapabilityFragmentMaskAMD = 5010,
++ SpvCapabilityStencilExportEXT = 5013,
++ SpvCapabilityImageReadWriteLodAMD = 5015,
++ SpvCapabilityInt64ImageEXT = 5016,
++ SpvCapabilityShaderClockKHR = 5055,
++ SpvCapabilityShaderEnqueueAMDX = 5067,
++ SpvCapabilityQuadControlKHR = 5087,
++ SpvCapabilityInt4TypeINTEL = 5112,
++ SpvCapabilityInt4CooperativeMatrixINTEL = 5114,
++ SpvCapabilityBFloat16TypeKHR = 5116,
++ SpvCapabilityBFloat16DotProductKHR = 5117,
++ SpvCapabilityBFloat16CooperativeMatrixKHR = 5118,
++ SpvCapabilityAbortKHR = 5120,
++ SpvCapabilityDescriptorHeapEXT = 5128,
++ SpvCapabilityConstantDataKHR = 5146,
++ SpvCapabilityPoisonFreezeKHR = 5156,
++ 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,
++ SpvCapabilityGroupNonUniformPartitionedEXT = 5297,
++ 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,
++ SpvCapabilityShaderInvocationReorderEXT = 5388,
++ SpvCapabilityBindlessTextureNV = 5390,
++ SpvCapabilityRayQueryPositionFetchKHR = 5391,
++ SpvCapabilityCooperativeVectorNV = 5394,
++ SpvCapabilityAtomicFloat16VectorNV = 5404,
++ SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
++ SpvCapabilityRawAccessChainsNV = 5414,
++ SpvCapabilityRayTracingSpheresGeometryNV = 5418,
++ SpvCapabilityRayTracingLinearSweptSpheresGeometryNV = 5419,
++ SpvCapabilityPushConstantBanksNV = 5423,
++ SpvCapabilityLongVectorEXT = 5425,
++ SpvCapabilityShader64BitIndexingEXT = 5426,
++ SpvCapabilityCooperativeMatrixReductionsNV = 5430,
++ SpvCapabilityCooperativeMatrixConversionsNV = 5431,
++ SpvCapabilityCooperativeMatrixPerElementOperationsNV = 5432,
++ SpvCapabilityCooperativeMatrixTensorAddressingNV = 5433,
++ SpvCapabilityCooperativeMatrixBlockLoadsNV = 5434,
++ SpvCapabilityCooperativeVectorTrainingNV = 5435,
++ SpvCapabilityRayTracingClusterAccelerationStructureNV = 5437,
++ SpvCapabilityTensorAddressingNV = 5439,
++ SpvCapabilitySubgroupShuffleINTEL = 5568,
++ SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
++ SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
++ SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
++ SpvCapabilityRoundToInfinityINTEL = 5582,
++ SpvCapabilityFloatingPointModeINTEL = 5583,
++ SpvCapabilityIntegerFunctions2INTEL = 5584,
++ SpvCapabilityFunctionPointersINTEL = 5603,
++ SpvCapabilityIndirectReferencesINTEL = 5604,
++ SpvCapabilityAsmINTEL = 5606,
++ SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
++ SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
++ SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
++ SpvCapabilityVectorComputeINTEL = 5617,
++ SpvCapabilityVectorAnyINTEL = 5619,
++ SpvCapabilityExpectAssumeKHR = 5629,
++ SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
++ SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
++ SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
++ SpvCapabilityVariableLengthArrayINTEL = 5817,
++ SpvCapabilityFunctionFloatControlINTEL = 5821,
++ SpvCapabilityFPGAMemoryAttributesALTERA = 5824,
++ SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
++ SpvCapabilityFPFastMathModeINTEL = 5837,
++ SpvCapabilityArbitraryPrecisionIntegersALTERA = 5844,
++ SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
++ SpvCapabilityArbitraryPrecisionFloatingPointALTERA = 5845,
++ SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
++ SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
++ SpvCapabilityFPGALoopControlsALTERA = 5888,
++ SpvCapabilityFPGALoopControlsINTEL = 5888,
++ SpvCapabilityKernelAttributesINTEL = 5892,
++ SpvCapabilityFPGAKernelAttributesINTEL = 5897,
++ SpvCapabilityFPGAMemoryAccessesALTERA = 5898,
++ SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
++ SpvCapabilityFPGAClusterAttributesALTERA = 5904,
++ SpvCapabilityFPGAClusterAttributesINTEL = 5904,
++ SpvCapabilityLoopFuseALTERA = 5906,
++ SpvCapabilityLoopFuseINTEL = 5906,
++ SpvCapabilityFPGADSPControlALTERA = 5908,
++ SpvCapabilityFPGADSPControlINTEL = 5908,
++ SpvCapabilityMemoryAccessAliasingINTEL = 5910,
++ SpvCapabilityFPGAInvocationPipeliningAttributesALTERA = 5916,
++ SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
++ SpvCapabilityFPGABufferLocationALTERA = 5920,
++ SpvCapabilityFPGABufferLocationINTEL = 5920,
++ SpvCapabilityArbitraryPrecisionFixedPointALTERA = 5922,
++ SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
++ SpvCapabilityUSMStorageClassesALTERA = 5935,
++ SpvCapabilityUSMStorageClassesINTEL = 5935,
++ SpvCapabilityRuntimeAlignedAttributeALTERA = 5939,
++ SpvCapabilityRuntimeAlignedAttributeINTEL = 5939,
++ SpvCapabilityIOPipesALTERA = 5943,
++ SpvCapabilityIOPipesINTEL = 5943,
++ SpvCapabilityBlockingPipesALTERA = 5945,
++ SpvCapabilityBlockingPipesINTEL = 5945,
++ SpvCapabilityFPGARegALTERA = 5948,
++ 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,
++ SpvCapabilityFMAKHR = 6030,
++ SpvCapabilityAtomicFloat32AddEXT = 6033,
++ SpvCapabilityAtomicFloat64AddEXT = 6034,
++ SpvCapabilityLongCompositesINTEL = 6089,
++ SpvCapabilityOptNoneEXT = 6094,
++ SpvCapabilityOptNoneINTEL = 6094,
++ SpvCapabilityAtomicFloat16AddEXT = 6095,
++ SpvCapabilityDebugInfoModuleINTEL = 6114,
++ SpvCapabilityBFloat16ConversionINTEL = 6115,
++ SpvCapabilitySplitBarrierINTEL = 6141,
++ SpvCapabilityArithmeticFenceEXT = 6144,
++ SpvCapabilityFPGAClusterAttributesV2ALTERA = 6150,
++ SpvCapabilityFPGAClusterAttributesV2INTEL = 6150,
++ SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
++ SpvCapabilityTaskSequenceALTERA = 6162,
++ SpvCapabilityTaskSequenceINTEL = 6162,
++ SpvCapabilityFPMaxErrorINTEL = 6169,
++ SpvCapabilityFPGALatencyControlALTERA = 6171,
++ SpvCapabilityFPGALatencyControlINTEL = 6171,
++ SpvCapabilityFPGAArgumentInterfacesALTERA = 6174,
++ SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
++ SpvCapabilityGlobalVariableHostAccessINTEL = 6187,
++ SpvCapabilityGlobalVariableFPGADecorationsALTERA = 6189,
++ SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189,
++ SpvCapabilitySubgroupBufferPrefetchINTEL = 6220,
++ SpvCapabilitySubgroup2DBlockIOINTEL = 6228,
++ SpvCapabilitySubgroup2DBlockTransformINTEL = 6229,
++ SpvCapabilitySubgroup2DBlockTransposeINTEL = 6230,
++ SpvCapabilitySubgroupMatrixMultiplyAccumulateINTEL = 6236,
++ SpvCapabilityTernaryBitwiseFunctionINTEL = 6241,
++ SpvCapabilityUntypedVariableLengthArrayINTEL = 6243,
++ SpvCapabilitySpecConditionalINTEL = 6245,
++ SpvCapabilityFunctionVariantsINTEL = 6246,
++ SpvCapabilityGroupUniformArithmeticKHR = 6400,
++ SpvCapabilityTensorFloat32RoundingINTEL = 6425,
++ SpvCapabilityMaskedGatherScatterINTEL = 6427,
++ SpvCapabilityCacheControlsINTEL = 6441,
++ SpvCapabilityRegisterLimitsINTEL = 6460,
++ SpvCapabilityBindlessImagesINTEL = 6528,
++ SpvCapabilityDotProductFloat16AccFloat32VALVE = 6912,
++ SpvCapabilityDotProductFloat16AccFloat16VALVE = 6913,
++ SpvCapabilityDotProductBFloat16AccVALVE = 6914,
++ SpvCapabilityDotProductFloat8AccFloat32VALVE = 6915,
++ SpvCapabilityMax = 0x7fffffff,
++ } SpvCapability;
++
++ typedef enum SpvRayFlagsShift_ {
++ SpvRayFlagsOpaqueKHRShift = 0,
++ SpvRayFlagsNoOpaqueKHRShift = 1,
++ SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
++ SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
++ SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
++ SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
++ SpvRayFlagsCullOpaqueKHRShift = 6,
++ SpvRayFlagsCullNoOpaqueKHRShift = 7,
++ SpvRayFlagsSkipBuiltinPrimitivesNVShift = 8,
++ SpvRayFlagsSkipTrianglesKHRShift = 8,
++ SpvRayFlagsSkipAABBsKHRShift = 9,
++ SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
++ SpvRayFlagsMax = 0x7fffffff,
++ } SpvRayFlagsShift;
++
++ typedef enum SpvRayFlagsMask_ {
++ SpvRayFlagsMaskNone = 0,
++ SpvRayFlagsOpaqueKHRMask = 0x00000001,
++ SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
++ SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
++ SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
++ SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
++ SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
++ SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
++ SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
++ SpvRayFlagsSkipBuiltinPrimitivesNVMask = 0x00000100,
++ SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
++ SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
++ SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
++ } SpvRayFlagsMask;
++
++ typedef enum SpvRayQueryIntersection_ {
++ SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
++ SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
++ SpvRayQueryIntersectionMax = 0x7fffffff,
++ } SpvRayQueryIntersection;
++
++ typedef enum SpvRayQueryCommittedIntersectionType_ {
++ SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
++ SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
++ SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
++ SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
++ } SpvRayQueryCommittedIntersectionType;
++
++ typedef enum SpvRayQueryCandidateIntersectionType_ {
++ SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
++ SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
++ SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
++ } SpvRayQueryCandidateIntersectionType;
++
++ typedef enum SpvFragmentShadingRateShift_ {
++ SpvFragmentShadingRateVertical2PixelsShift = 0,
++ SpvFragmentShadingRateVertical4PixelsShift = 1,
++ SpvFragmentShadingRateHorizontal2PixelsShift = 2,
++ SpvFragmentShadingRateHorizontal4PixelsShift = 3,
++ SpvFragmentShadingRateMax = 0x7fffffff,
++ } SpvFragmentShadingRateShift;
++
++ typedef enum SpvFragmentShadingRateMask_ {
++ SpvFragmentShadingRateMaskNone = 0,
++ SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
++ SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
++ SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
++ SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
++ } SpvFragmentShadingRateMask;
++
++ typedef enum SpvFPDenormMode_ {
++ SpvFPDenormModePreserve = 0,
++ SpvFPDenormModeFlushToZero = 1,
++ SpvFPDenormModeMax = 0x7fffffff,
++ } SpvFPDenormMode;
++
++ typedef enum SpvFPOperationMode_ {
++ SpvFPOperationModeIEEE = 0,
++ SpvFPOperationModeALT = 1,
++ SpvFPOperationModeMax = 0x7fffffff,
++ } SpvFPOperationMode;
++
++ typedef enum SpvQuantizationModes_ {
++ SpvQuantizationModesTRN = 0,
++ SpvQuantizationModesTRN_ZERO = 1,
++ SpvQuantizationModesRND = 2,
++ SpvQuantizationModesRND_ZERO = 3,
++ SpvQuantizationModesRND_INF = 4,
++ SpvQuantizationModesRND_MIN_INF = 5,
++ SpvQuantizationModesRND_CONV = 6,
++ SpvQuantizationModesRND_CONV_ODD = 7,
++ SpvQuantizationModesMax = 0x7fffffff,
++ } SpvQuantizationModes;
++
++ typedef enum SpvOverflowModes_ {
++ SpvOverflowModesWRAP = 0,
++ SpvOverflowModesSAT = 1,
++ SpvOverflowModesSAT_ZERO = 2,
++ SpvOverflowModesSAT_SYM = 3,
++ SpvOverflowModesMax = 0x7fffffff,
++ } SpvOverflowModes;
++
++ typedef enum SpvPackedVectorFormat_ {
++ SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
++ SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
++ SpvPackedVectorFormatMax = 0x7fffffff,
++ } SpvPackedVectorFormat;
++
++ typedef enum SpvCooperativeMatrixOperandsShift_ {
++ SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
++ SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
++ SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
++ SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
++ SpvCooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
++ SpvCooperativeMatrixOperandsMax = 0x7fffffff,
++ } SpvCooperativeMatrixOperandsShift;
++
++ typedef enum SpvCooperativeMatrixOperandsMask_ {
++ SpvCooperativeMatrixOperandsMaskNone = 0,
++ SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
++ SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
++ SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
++ SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
++ SpvCooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
++ } SpvCooperativeMatrixOperandsMask;
++
++ typedef enum SpvCooperativeMatrixLayout_ {
++ SpvCooperativeMatrixLayoutRowMajorKHR = 0,
++ SpvCooperativeMatrixLayoutColumnMajorKHR = 1,
++ SpvCooperativeMatrixLayoutRowBlockedInterleavedARM = 4202,
++ SpvCooperativeMatrixLayoutColumnBlockedInterleavedARM = 4203,
++ SpvCooperativeMatrixLayoutMax = 0x7fffffff,
++ } SpvCooperativeMatrixLayout;
++
++ typedef enum SpvCooperativeMatrixUse_ {
++ SpvCooperativeMatrixUseMatrixAKHR = 0,
++ SpvCooperativeMatrixUseMatrixBKHR = 1,
++ SpvCooperativeMatrixUseMatrixAccumulatorKHR = 2,
++ SpvCooperativeMatrixUseMax = 0x7fffffff,
++ } SpvCooperativeMatrixUse;
++
++ typedef enum SpvCooperativeMatrixReduceShift_ {
++ SpvCooperativeMatrixReduceRowShift = 0,
++ SpvCooperativeMatrixReduceColumnShift = 1,
++ SpvCooperativeMatrixReduce2x2Shift = 2,
++ SpvCooperativeMatrixReduceMax = 0x7fffffff,
++ } SpvCooperativeMatrixReduceShift;
++
++ typedef enum SpvCooperativeMatrixReduceMask_ {
++ SpvCooperativeMatrixReduceMaskNone = 0,
++ SpvCooperativeMatrixReduceRowMask = 0x00000001,
++ SpvCooperativeMatrixReduceColumnMask = 0x00000002,
++ SpvCooperativeMatrixReduce2x2Mask = 0x00000004,
++ } SpvCooperativeMatrixReduceMask;
++
++ typedef enum SpvTensorClampMode_ {
++ SpvTensorClampModeUndefined = 0,
++ SpvTensorClampModeConstant = 1,
++ SpvTensorClampModeClampToEdge = 2,
++ SpvTensorClampModeRepeat = 3,
++ SpvTensorClampModeRepeatMirrored = 4,
++ SpvTensorClampModeMax = 0x7fffffff,
++ } SpvTensorClampMode;
++
++ typedef enum SpvTensorAddressingOperandsShift_ {
++ SpvTensorAddressingOperandsTensorViewShift = 0,
++ SpvTensorAddressingOperandsDecodeFuncShift = 1,
++ SpvTensorAddressingOperandsMax = 0x7fffffff,
++ } SpvTensorAddressingOperandsShift;
++
++ typedef enum SpvTensorAddressingOperandsMask_ {
++ SpvTensorAddressingOperandsMaskNone = 0,
++ SpvTensorAddressingOperandsTensorViewMask = 0x00000001,
++ SpvTensorAddressingOperandsDecodeFuncMask = 0x00000002,
++ } SpvTensorAddressingOperandsMask;
++
++ typedef enum SpvTensorOperandsShift_ {
++ SpvTensorOperandsNontemporalARMShift = 0,
++ SpvTensorOperandsOutOfBoundsValueARMShift = 1,
++ SpvTensorOperandsMakeElementAvailableARMShift = 2,
++ SpvTensorOperandsMakeElementVisibleARMShift = 3,
++ SpvTensorOperandsNonPrivateElementARMShift = 4,
++ SpvTensorOperandsMax = 0x7fffffff,
++ } SpvTensorOperandsShift;
++
++ typedef enum SpvTensorOperandsMask_ {
++ SpvTensorOperandsMaskNone = 0,
++ SpvTensorOperandsNontemporalARMMask = 0x00000001,
++ SpvTensorOperandsOutOfBoundsValueARMMask = 0x00000002,
++ SpvTensorOperandsMakeElementAvailableARMMask = 0x00000004,
++ SpvTensorOperandsMakeElementVisibleARMMask = 0x00000008,
++ SpvTensorOperandsNonPrivateElementARMMask = 0x00000010,
++ } SpvTensorOperandsMask;
++
++ typedef enum SpvInitializationModeQualifier_ {
++ SpvInitializationModeQualifierInitOnDeviceReprogramALTERA = 0,
++ SpvInitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
++ SpvInitializationModeQualifierInitOnDeviceResetALTERA = 1,
++ SpvInitializationModeQualifierInitOnDeviceResetINTEL = 1,
++ SpvInitializationModeQualifierMax = 0x7fffffff,
++ } SpvInitializationModeQualifier;
++
++ typedef enum SpvHostAccessQualifier_ {
++ SpvHostAccessQualifierNoneINTEL = 0,
++ SpvHostAccessQualifierReadINTEL = 1,
++ SpvHostAccessQualifierWriteINTEL = 2,
++ SpvHostAccessQualifierReadWriteINTEL = 3,
++ SpvHostAccessQualifierMax = 0x7fffffff,
++ } SpvHostAccessQualifier;
++
++ typedef enum SpvLoadCacheControl_ {
++ SpvLoadCacheControlUncachedINTEL = 0,
++ SpvLoadCacheControlCachedINTEL = 1,
++ SpvLoadCacheControlStreamingINTEL = 2,
++ SpvLoadCacheControlInvalidateAfterReadINTEL = 3,
++ SpvLoadCacheControlConstCachedINTEL = 4,
++ SpvLoadCacheControlMax = 0x7fffffff,
++ } SpvLoadCacheControl;
++
++ typedef enum SpvStoreCacheControl_ {
++ SpvStoreCacheControlUncachedINTEL = 0,
++ SpvStoreCacheControlWriteThroughINTEL = 1,
++ SpvStoreCacheControlWriteBackINTEL = 2,
++ SpvStoreCacheControlStreamingINTEL = 3,
++ SpvStoreCacheControlMax = 0x7fffffff,
++ } SpvStoreCacheControl;
++
++ typedef enum SpvNamedMaximumNumberOfRegisters_ {
++ SpvNamedMaximumNumberOfRegistersAutoINTEL = 0,
++ SpvNamedMaximumNumberOfRegistersMax = 0x7fffffff,
++ } SpvNamedMaximumNumberOfRegisters;
++
++ typedef enum SpvMatrixMultiplyAccumulateOperandsShift_ {
++ SpvMatrixMultiplyAccumulateOperandsMatrixASignedComponentsINTELShift = 0,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBSignedComponentsINTELShift = 1,
++ SpvMatrixMultiplyAccumulateOperandsMatrixCBFloat16INTELShift = 2,
++ SpvMatrixMultiplyAccumulateOperandsMatrixResultBFloat16INTELShift = 3,
++ SpvMatrixMultiplyAccumulateOperandsMatrixAPackedInt8INTELShift = 4,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBPackedInt8INTELShift = 5,
++ SpvMatrixMultiplyAccumulateOperandsMatrixAPackedInt4INTELShift = 6,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBPackedInt4INTELShift = 7,
++ SpvMatrixMultiplyAccumulateOperandsMatrixATF32INTELShift = 8,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBTF32INTELShift = 9,
++ SpvMatrixMultiplyAccumulateOperandsMatrixAPackedFloat16INTELShift = 10,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBPackedFloat16INTELShift = 11,
++ SpvMatrixMultiplyAccumulateOperandsMatrixAPackedBFloat16INTELShift = 12,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBPackedBFloat16INTELShift = 13,
++ SpvMatrixMultiplyAccumulateOperandsMax = 0x7fffffff,
++ } SpvMatrixMultiplyAccumulateOperandsShift;
++
++ typedef enum SpvMatrixMultiplyAccumulateOperandsMask_ {
++ SpvMatrixMultiplyAccumulateOperandsMaskNone = 0,
++ SpvMatrixMultiplyAccumulateOperandsMatrixASignedComponentsINTELMask = 0x00000001,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBSignedComponentsINTELMask = 0x00000002,
++ SpvMatrixMultiplyAccumulateOperandsMatrixCBFloat16INTELMask = 0x00000004,
++ SpvMatrixMultiplyAccumulateOperandsMatrixResultBFloat16INTELMask = 0x00000008,
++ SpvMatrixMultiplyAccumulateOperandsMatrixAPackedInt8INTELMask = 0x00000010,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBPackedInt8INTELMask = 0x00000020,
++ SpvMatrixMultiplyAccumulateOperandsMatrixAPackedInt4INTELMask = 0x00000040,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBPackedInt4INTELMask = 0x00000080,
++ SpvMatrixMultiplyAccumulateOperandsMatrixATF32INTELMask = 0x00000100,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBTF32INTELMask = 0x00000200,
++ SpvMatrixMultiplyAccumulateOperandsMatrixAPackedFloat16INTELMask = 0x00000400,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBPackedFloat16INTELMask = 0x00000800,
++ SpvMatrixMultiplyAccumulateOperandsMatrixAPackedBFloat16INTELMask = 0x00001000,
++ SpvMatrixMultiplyAccumulateOperandsMatrixBPackedBFloat16INTELMask = 0x00002000,
++ } SpvMatrixMultiplyAccumulateOperandsMask;
++
++ typedef enum SpvRawAccessChainOperandsShift_ {
++ SpvRawAccessChainOperandsRobustnessPerComponentNVShift = 0,
++ SpvRawAccessChainOperandsRobustnessPerElementNVShift = 1,
++ SpvRawAccessChainOperandsMax = 0x7fffffff,
++ } SpvRawAccessChainOperandsShift;
++
++ typedef enum SpvRawAccessChainOperandsMask_ {
++ SpvRawAccessChainOperandsMaskNone = 0,
++ SpvRawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001,
++ SpvRawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002,
++ } SpvRawAccessChainOperandsMask;
++
++ typedef enum SpvFPEncoding_ {
++ SpvFPEncodingBFloat16KHR = 0,
++ SpvFPEncodingFloat8E4M3EXT = 4214,
++ SpvFPEncodingFloat8E5M2EXT = 4215,
++ SpvFPEncodingMax = 0x7fffffff,
++ } SpvFPEncoding;
++
++ typedef enum SpvCooperativeVectorMatrixLayout_ {
++ SpvCooperativeVectorMatrixLayoutRowMajorNV = 0,
++ SpvCooperativeVectorMatrixLayoutColumnMajorNV = 1,
++ SpvCooperativeVectorMatrixLayoutInferencingOptimalNV = 2,
++ SpvCooperativeVectorMatrixLayoutTrainingOptimalNV = 3,
++ SpvCooperativeVectorMatrixLayoutMax = 0x7fffffff,
++ } SpvCooperativeVectorMatrixLayout;
++
++ typedef enum SpvComponentType_ {
++ SpvComponentTypeFloat16NV = 0,
++ SpvComponentTypeFloat32NV = 1,
++ SpvComponentTypeFloat64NV = 2,
++ SpvComponentTypeSignedInt8NV = 3,
++ SpvComponentTypeSignedInt16NV = 4,
++ SpvComponentTypeSignedInt32NV = 5,
++ SpvComponentTypeSignedInt64NV = 6,
++ SpvComponentTypeUnsignedInt8NV = 7,
++ SpvComponentTypeUnsignedInt16NV = 8,
++ SpvComponentTypeUnsignedInt32NV = 9,
++ SpvComponentTypeUnsignedInt64NV = 10,
++ SpvComponentTypeSignedInt8PackedNV = 1000491000,
++ SpvComponentTypeUnsignedInt8PackedNV = 1000491001,
++ SpvComponentTypeFloatE4M3NV = 1000491002,
++ SpvComponentTypeFloatE5M2NV = 1000491003,
++ SpvComponentTypeMax = 0x7fffffff,
++ } SpvComponentType;
++
++ typedef enum SpvOp_ {
++ SpvOpNop = 0,
++ SpvOpUndef = 1,
++ SpvOpSourceContinued = 2,
++ SpvOpSource = 3,
++ SpvOpSourceExtension = 4,
++ SpvOpName = 5,
++ SpvOpMemberName = 6,
++ SpvOpString = 7,
++ SpvOpLine = 8,
++ SpvOpExtension = 10,
++ SpvOpExtInstImport = 11,
++ SpvOpExtInst = 12,
++ SpvOpMemoryModel = 14,
++ SpvOpEntryPoint = 15,
++ SpvOpExecutionMode = 16,
++ SpvOpCapability = 17,
++ SpvOpTypeVoid = 19,
++ SpvOpTypeBool = 20,
++ SpvOpTypeInt = 21,
++ SpvOpTypeFloat = 22,
++ SpvOpTypeVector = 23,
++ SpvOpTypeMatrix = 24,
++ SpvOpTypeImage = 25,
++ SpvOpTypeSampler = 26,
++ SpvOpTypeSampledImage = 27,
++ SpvOpTypeArray = 28,
++ SpvOpTypeRuntimeArray = 29,
++ SpvOpTypeStruct = 30,
++ SpvOpTypeOpaque = 31,
++ SpvOpTypePointer = 32,
++ SpvOpTypeFunction = 33,
++ SpvOpTypeEvent = 34,
++ SpvOpTypeDeviceEvent = 35,
++ SpvOpTypeReserveId = 36,
++ SpvOpTypeQueue = 37,
++ SpvOpTypePipe = 38,
++ SpvOpTypeForwardPointer = 39,
++ SpvOpConstantTrue = 41,
++ SpvOpConstantFalse = 42,
++ SpvOpConstant = 43,
++ SpvOpConstantComposite = 44,
++ SpvOpConstantSampler = 45,
++ SpvOpConstantNull = 46,
++ SpvOpSpecConstantTrue = 48,
++ SpvOpSpecConstantFalse = 49,
++ SpvOpSpecConstant = 50,
++ SpvOpSpecConstantComposite = 51,
++ SpvOpSpecConstantOp = 52,
++ SpvOpFunction = 54,
++ SpvOpFunctionParameter = 55,
++ SpvOpFunctionEnd = 56,
++ SpvOpFunctionCall = 57,
++ SpvOpVariable = 59,
++ SpvOpImageTexelPointer = 60,
++ SpvOpLoad = 61,
++ SpvOpStore = 62,
++ SpvOpCopyMemory = 63,
++ SpvOpCopyMemorySized = 64,
++ SpvOpAccessChain = 65,
++ SpvOpInBoundsAccessChain = 66,
++ SpvOpPtrAccessChain = 67,
++ SpvOpArrayLength = 68,
++ SpvOpGenericPtrMemSemantics = 69,
++ SpvOpInBoundsPtrAccessChain = 70,
++ SpvOpDecorate = 71,
++ SpvOpMemberDecorate = 72,
++ SpvOpDecorationGroup = 73,
++ SpvOpGroupDecorate = 74,
++ SpvOpGroupMemberDecorate = 75,
++ SpvOpVectorExtractDynamic = 77,
++ SpvOpVectorInsertDynamic = 78,
++ SpvOpVectorShuffle = 79,
++ SpvOpCompositeConstruct = 80,
++ SpvOpCompositeExtract = 81,
++ SpvOpCompositeInsert = 82,
++ SpvOpCopyObject = 83,
++ SpvOpTranspose = 84,
++ SpvOpSampledImage = 86,
++ SpvOpImageSampleImplicitLod = 87,
++ SpvOpImageSampleExplicitLod = 88,
++ SpvOpImageSampleDrefImplicitLod = 89,
++ SpvOpImageSampleDrefExplicitLod = 90,
++ SpvOpImageSampleProjImplicitLod = 91,
++ SpvOpImageSampleProjExplicitLod = 92,
++ SpvOpImageSampleProjDrefImplicitLod = 93,
++ SpvOpImageSampleProjDrefExplicitLod = 94,
++ SpvOpImageFetch = 95,
++ SpvOpImageGather = 96,
++ SpvOpImageDrefGather = 97,
++ SpvOpImageRead = 98,
++ SpvOpImageWrite = 99,
++ SpvOpImage = 100,
++ SpvOpImageQueryFormat = 101,
++ SpvOpImageQueryOrder = 102,
++ SpvOpImageQuerySizeLod = 103,
++ SpvOpImageQuerySize = 104,
++ SpvOpImageQueryLod = 105,
++ SpvOpImageQueryLevels = 106,
++ SpvOpImageQuerySamples = 107,
++ SpvOpConvertFToU = 109,
++ SpvOpConvertFToS = 110,
++ SpvOpConvertSToF = 111,
++ SpvOpConvertUToF = 112,
++ SpvOpUConvert = 113,
++ SpvOpSConvert = 114,
++ SpvOpFConvert = 115,
++ SpvOpQuantizeToF16 = 116,
++ SpvOpConvertPtrToU = 117,
++ SpvOpSatConvertSToU = 118,
++ SpvOpSatConvertUToS = 119,
++ SpvOpConvertUToPtr = 120,
++ SpvOpPtrCastToGeneric = 121,
++ SpvOpGenericCastToPtr = 122,
++ SpvOpGenericCastToPtrExplicit = 123,
++ SpvOpBitcast = 124,
++ SpvOpSNegate = 126,
++ SpvOpFNegate = 127,
++ SpvOpIAdd = 128,
++ SpvOpFAdd = 129,
++ SpvOpISub = 130,
++ SpvOpFSub = 131,
++ SpvOpIMul = 132,
++ SpvOpFMul = 133,
++ SpvOpUDiv = 134,
++ SpvOpSDiv = 135,
++ SpvOpFDiv = 136,
++ SpvOpUMod = 137,
++ SpvOpSRem = 138,
++ SpvOpSMod = 139,
++ SpvOpFRem = 140,
++ SpvOpFMod = 141,
++ SpvOpVectorTimesScalar = 142,
++ SpvOpMatrixTimesScalar = 143,
++ SpvOpVectorTimesMatrix = 144,
++ SpvOpMatrixTimesVector = 145,
++ SpvOpMatrixTimesMatrix = 146,
++ SpvOpOuterProduct = 147,
++ SpvOpDot = 148,
++ SpvOpIAddCarry = 149,
++ SpvOpISubBorrow = 150,
++ SpvOpUMulExtended = 151,
++ SpvOpSMulExtended = 152,
++ SpvOpAny = 154,
++ SpvOpAll = 155,
++ SpvOpIsNan = 156,
++ SpvOpIsInf = 157,
++ SpvOpIsFinite = 158,
++ SpvOpIsNormal = 159,
++ SpvOpSignBitSet = 160,
++ SpvOpLessOrGreater = 161,
++ SpvOpOrdered = 162,
++ SpvOpUnordered = 163,
++ SpvOpLogicalEqual = 164,
++ SpvOpLogicalNotEqual = 165,
++ SpvOpLogicalOr = 166,
++ SpvOpLogicalAnd = 167,
++ SpvOpLogicalNot = 168,
++ SpvOpSelect = 169,
++ SpvOpIEqual = 170,
++ SpvOpINotEqual = 171,
++ SpvOpUGreaterThan = 172,
++ SpvOpSGreaterThan = 173,
++ SpvOpUGreaterThanEqual = 174,
++ SpvOpSGreaterThanEqual = 175,
++ SpvOpULessThan = 176,
++ SpvOpSLessThan = 177,
++ SpvOpULessThanEqual = 178,
++ SpvOpSLessThanEqual = 179,
++ SpvOpFOrdEqual = 180,
++ SpvOpFUnordEqual = 181,
++ SpvOpFOrdNotEqual = 182,
++ SpvOpFUnordNotEqual = 183,
++ SpvOpFOrdLessThan = 184,
++ SpvOpFUnordLessThan = 185,
++ SpvOpFOrdGreaterThan = 186,
++ SpvOpFUnordGreaterThan = 187,
++ SpvOpFOrdLessThanEqual = 188,
++ SpvOpFUnordLessThanEqual = 189,
++ SpvOpFOrdGreaterThanEqual = 190,
++ SpvOpFUnordGreaterThanEqual = 191,
++ SpvOpShiftRightLogical = 194,
++ SpvOpShiftRightArithmetic = 195,
++ SpvOpShiftLeftLogical = 196,
++ SpvOpBitwiseOr = 197,
++ SpvOpBitwiseXor = 198,
++ SpvOpBitwiseAnd = 199,
++ SpvOpNot = 200,
++ SpvOpBitFieldInsert = 201,
++ SpvOpBitFieldSExtract = 202,
++ SpvOpBitFieldUExtract = 203,
++ SpvOpBitReverse = 204,
++ SpvOpBitCount = 205,
++ SpvOpDPdx = 207,
++ SpvOpDPdy = 208,
++ SpvOpFwidth = 209,
++ SpvOpDPdxFine = 210,
++ SpvOpDPdyFine = 211,
++ SpvOpFwidthFine = 212,
++ SpvOpDPdxCoarse = 213,
++ SpvOpDPdyCoarse = 214,
++ SpvOpFwidthCoarse = 215,
++ SpvOpEmitVertex = 218,
++ SpvOpEndPrimitive = 219,
++ SpvOpEmitStreamVertex = 220,
++ SpvOpEndStreamPrimitive = 221,
++ SpvOpControlBarrier = 224,
++ SpvOpMemoryBarrier = 225,
++ SpvOpAtomicLoad = 227,
++ SpvOpAtomicStore = 228,
++ SpvOpAtomicExchange = 229,
++ SpvOpAtomicCompareExchange = 230,
++ SpvOpAtomicCompareExchangeWeak = 231,
++ SpvOpAtomicIIncrement = 232,
++ SpvOpAtomicIDecrement = 233,
++ SpvOpAtomicIAdd = 234,
++ SpvOpAtomicISub = 235,
++ SpvOpAtomicSMin = 236,
++ SpvOpAtomicUMin = 237,
++ SpvOpAtomicSMax = 238,
++ SpvOpAtomicUMax = 239,
++ SpvOpAtomicAnd = 240,
++ SpvOpAtomicOr = 241,
++ SpvOpAtomicXor = 242,
++ SpvOpPhi = 245,
++ SpvOpLoopMerge = 246,
++ SpvOpSelectionMerge = 247,
++ SpvOpLabel = 248,
++ SpvOpBranch = 249,
++ SpvOpBranchConditional = 250,
++ SpvOpSwitch = 251,
++ SpvOpKill = 252,
++ SpvOpReturn = 253,
++ SpvOpReturnValue = 254,
++ SpvOpUnreachable = 255,
++ SpvOpLifetimeStart = 256,
++ SpvOpLifetimeStop = 257,
++ SpvOpGroupAsyncCopy = 259,
++ SpvOpGroupWaitEvents = 260,
++ SpvOpGroupAll = 261,
++ SpvOpGroupAny = 262,
++ SpvOpGroupBroadcast = 263,
++ SpvOpGroupIAdd = 264,
++ SpvOpGroupFAdd = 265,
++ SpvOpGroupFMin = 266,
++ SpvOpGroupUMin = 267,
++ SpvOpGroupSMin = 268,
++ SpvOpGroupFMax = 269,
++ SpvOpGroupUMax = 270,
++ SpvOpGroupSMax = 271,
++ SpvOpReadPipe = 274,
++ SpvOpWritePipe = 275,
++ SpvOpReservedReadPipe = 276,
++ SpvOpReservedWritePipe = 277,
++ SpvOpReserveReadPipePackets = 278,
++ SpvOpReserveWritePipePackets = 279,
++ SpvOpCommitReadPipe = 280,
++ SpvOpCommitWritePipe = 281,
++ SpvOpIsValidReserveId = 282,
++ SpvOpGetNumPipePackets = 283,
++ SpvOpGetMaxPipePackets = 284,
++ SpvOpGroupReserveReadPipePackets = 285,
++ SpvOpGroupReserveWritePipePackets = 286,
++ SpvOpGroupCommitReadPipe = 287,
++ SpvOpGroupCommitWritePipe = 288,
++ SpvOpEnqueueMarker = 291,
++ SpvOpEnqueueKernel = 292,
++ SpvOpGetKernelNDrangeSubGroupCount = 293,
++ SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
++ SpvOpGetKernelWorkGroupSize = 295,
++ SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
++ SpvOpRetainEvent = 297,
++ SpvOpReleaseEvent = 298,
++ SpvOpCreateUserEvent = 299,
++ SpvOpIsValidEvent = 300,
++ SpvOpSetUserEventStatus = 301,
++ SpvOpCaptureEventProfilingInfo = 302,
++ SpvOpGetDefaultQueue = 303,
++ SpvOpBuildNDRange = 304,
++ SpvOpImageSparseSampleImplicitLod = 305,
++ SpvOpImageSparseSampleExplicitLod = 306,
++ SpvOpImageSparseSampleDrefImplicitLod = 307,
++ SpvOpImageSparseSampleDrefExplicitLod = 308,
++ SpvOpImageSparseSampleProjImplicitLod = 309,
++ SpvOpImageSparseSampleProjExplicitLod = 310,
++ SpvOpImageSparseSampleProjDrefImplicitLod = 311,
++ SpvOpImageSparseSampleProjDrefExplicitLod = 312,
++ SpvOpImageSparseFetch = 313,
++ SpvOpImageSparseGather = 314,
++ SpvOpImageSparseDrefGather = 315,
++ SpvOpImageSparseTexelsResident = 316,
++ SpvOpNoLine = 317,
++ SpvOpAtomicFlagTestAndSet = 318,
++ SpvOpAtomicFlagClear = 319,
++ SpvOpImageSparseRead = 320,
++ SpvOpSizeOf = 321,
++ SpvOpTypePipeStorage = 322,
++ SpvOpConstantPipeStorage = 323,
++ SpvOpCreatePipeFromPipeStorage = 324,
++ SpvOpGetKernelLocalSizeForSubgroupCount = 325,
++ SpvOpGetKernelMaxNumSubgroups = 326,
++ SpvOpTypeNamedBarrier = 327,
++ SpvOpNamedBarrierInitialize = 328,
++ SpvOpMemoryNamedBarrier = 329,
++ SpvOpModuleProcessed = 330,
++ SpvOpExecutionModeId = 331,
++ SpvOpDecorateId = 332,
++ SpvOpGroupNonUniformElect = 333,
++ SpvOpGroupNonUniformAll = 334,
++ SpvOpGroupNonUniformAny = 335,
++ SpvOpGroupNonUniformAllEqual = 336,
++ SpvOpGroupNonUniformBroadcast = 337,
++ SpvOpGroupNonUniformBroadcastFirst = 338,
++ SpvOpGroupNonUniformBallot = 339,
++ SpvOpGroupNonUniformInverseBallot = 340,
++ SpvOpGroupNonUniformBallotBitExtract = 341,
++ SpvOpGroupNonUniformBallotBitCount = 342,
++ SpvOpGroupNonUniformBallotFindLSB = 343,
++ SpvOpGroupNonUniformBallotFindMSB = 344,
++ SpvOpGroupNonUniformShuffle = 345,
++ SpvOpGroupNonUniformShuffleXor = 346,
++ SpvOpGroupNonUniformShuffleUp = 347,
++ SpvOpGroupNonUniformShuffleDown = 348,
++ SpvOpGroupNonUniformIAdd = 349,
++ SpvOpGroupNonUniformFAdd = 350,
++ SpvOpGroupNonUniformIMul = 351,
++ SpvOpGroupNonUniformFMul = 352,
++ SpvOpGroupNonUniformSMin = 353,
++ SpvOpGroupNonUniformUMin = 354,
++ SpvOpGroupNonUniformFMin = 355,
++ SpvOpGroupNonUniformSMax = 356,
++ SpvOpGroupNonUniformUMax = 357,
++ SpvOpGroupNonUniformFMax = 358,
++ SpvOpGroupNonUniformBitwiseAnd = 359,
++ SpvOpGroupNonUniformBitwiseOr = 360,
++ SpvOpGroupNonUniformBitwiseXor = 361,
++ SpvOpGroupNonUniformLogicalAnd = 362,
++ SpvOpGroupNonUniformLogicalOr = 363,
++ SpvOpGroupNonUniformLogicalXor = 364,
++ SpvOpGroupNonUniformQuadBroadcast = 365,
++ SpvOpGroupNonUniformQuadSwap = 366,
++ SpvOpCopyLogical = 400,
++ SpvOpPtrEqual = 401,
++ SpvOpPtrNotEqual = 402,
++ SpvOpPtrDiff = 403,
++ SpvOpColorAttachmentReadEXT = 4160,
++ SpvOpDepthAttachmentReadEXT = 4161,
++ SpvOpStencilAttachmentReadEXT = 4162,
++ SpvOpTypeTensorARM = 4163,
++ SpvOpTensorReadARM = 4164,
++ SpvOpTensorWriteARM = 4165,
++ SpvOpTensorQuerySizeARM = 4166,
++ SpvOpGraphConstantARM = 4181,
++ SpvOpGraphEntryPointARM = 4182,
++ SpvOpGraphARM = 4183,
++ SpvOpGraphInputARM = 4184,
++ SpvOpGraphSetOutputARM = 4185,
++ SpvOpGraphEndARM = 4186,
++ SpvOpTypeGraphARM = 4190,
++ SpvOpTerminateInvocation = 4416,
++ SpvOpTypeUntypedPointerKHR = 4417,
++ SpvOpUntypedVariableKHR = 4418,
++ SpvOpUntypedAccessChainKHR = 4419,
++ SpvOpUntypedInBoundsAccessChainKHR = 4420,
++ SpvOpSubgroupBallotKHR = 4421,
++ SpvOpSubgroupFirstInvocationKHR = 4422,
++ SpvOpUntypedPtrAccessChainKHR = 4423,
++ SpvOpUntypedInBoundsPtrAccessChainKHR = 4424,
++ SpvOpUntypedArrayLengthKHR = 4425,
++ SpvOpUntypedPrefetchKHR = 4426,
++ SpvOpFmaKHR = 4427,
++ SpvOpSubgroupAllKHR = 4428,
++ SpvOpSubgroupAnyKHR = 4429,
++ SpvOpSubgroupAllEqualKHR = 4430,
++ SpvOpGroupNonUniformRotateKHR = 4431,
++ SpvOpSubgroupReadInvocationKHR = 4432,
++ SpvOpExtInstWithForwardRefsKHR = 4433,
++ SpvOpUntypedGroupAsyncCopyKHR = 4434,
++ SpvOpTraceRayKHR = 4445,
++ SpvOpExecuteCallableKHR = 4446,
++ SpvOpConvertUToAccelerationStructureKHR = 4447,
++ SpvOpIgnoreIntersectionKHR = 4448,
++ SpvOpTerminateRayKHR = 4449,
++ SpvOpSDot = 4450,
++ SpvOpSDotKHR = 4450,
++ SpvOpUDot = 4451,
++ SpvOpUDotKHR = 4451,
++ SpvOpSUDot = 4452,
++ SpvOpSUDotKHR = 4452,
++ SpvOpSDotAccSat = 4453,
++ SpvOpSDotAccSatKHR = 4453,
++ SpvOpUDotAccSat = 4454,
++ SpvOpUDotAccSatKHR = 4454,
++ SpvOpSUDotAccSat = 4455,
++ SpvOpSUDotAccSatKHR = 4455,
++ SpvOpTypeCooperativeMatrixKHR = 4456,
++ SpvOpCooperativeMatrixLoadKHR = 4457,
++ SpvOpCooperativeMatrixStoreKHR = 4458,
++ SpvOpCooperativeMatrixMulAddKHR = 4459,
++ SpvOpCooperativeMatrixLengthKHR = 4460,
++ SpvOpConstantCompositeReplicateEXT = 4461,
++ SpvOpSpecConstantCompositeReplicateEXT = 4462,
++ SpvOpCompositeConstructReplicateEXT = 4463,
++ SpvOpTypeRayQueryKHR = 4472,
++ SpvOpRayQueryInitializeKHR = 4473,
++ SpvOpRayQueryTerminateKHR = 4474,
++ SpvOpRayQueryGenerateIntersectionKHR = 4475,
++ SpvOpRayQueryConfirmIntersectionKHR = 4476,
++ SpvOpRayQueryProceedKHR = 4477,
++ SpvOpRayQueryGetIntersectionTypeKHR = 4479,
++ SpvOpImageSampleWeightedQCOM = 4480,
++ SpvOpImageBoxFilterQCOM = 4481,
++ SpvOpImageBlockMatchSSDQCOM = 4482,
++ SpvOpImageBlockMatchSADQCOM = 4483,
++ SpvOpBitCastArrayQCOM = 4497,
++ SpvOpImageBlockMatchWindowSSDQCOM = 4500,
++ SpvOpImageBlockMatchWindowSADQCOM = 4501,
++ SpvOpImageBlockMatchGatherSSDQCOM = 4502,
++ SpvOpImageBlockMatchGatherSADQCOM = 4503,
++ SpvOpCompositeConstructCoopMatQCOM = 4540,
++ SpvOpCompositeExtractCoopMatQCOM = 4541,
++ SpvOpExtractSubArrayQCOM = 4542,
++ SpvOpGroupIAddNonUniformAMD = 5000,
++ SpvOpGroupFAddNonUniformAMD = 5001,
++ SpvOpGroupFMinNonUniformAMD = 5002,
++ SpvOpGroupUMinNonUniformAMD = 5003,
++ SpvOpGroupSMinNonUniformAMD = 5004,
++ SpvOpGroupFMaxNonUniformAMD = 5005,
++ SpvOpGroupUMaxNonUniformAMD = 5006,
++ SpvOpGroupSMaxNonUniformAMD = 5007,
++ SpvOpFragmentMaskFetchAMD = 5011,
++ SpvOpFragmentFetchAMD = 5012,
++ SpvOpReadClockKHR = 5056,
++ SpvOpAllocateNodePayloadsAMDX = 5074,
++ SpvOpEnqueueNodePayloadsAMDX = 5075,
++ SpvOpTypeNodePayloadArrayAMDX = 5076,
++ SpvOpFinishWritingNodePayloadAMDX = 5078,
++ SpvOpNodePayloadArrayLengthAMDX = 5090,
++ SpvOpIsNodePayloadValidAMDX = 5101,
++ SpvOpConstantStringAMDX = 5103,
++ SpvOpSpecConstantStringAMDX = 5104,
++ SpvOpGroupNonUniformQuadAllKHR = 5110,
++ SpvOpGroupNonUniformQuadAnyKHR = 5111,
++ SpvOpTypeBufferEXT = 5115,
++ SpvOpBufferPointerEXT = 5119,
++ SpvOpAbortKHR = 5121,
++ SpvOpUntypedImageTexelPointerEXT = 5126,
++ SpvOpMemberDecorateIdEXT = 5127,
++ SpvOpConstantSizeOfEXT = 5129,
++ SpvOpConstantDataKHR = 5147,
++ SpvOpSpecConstantDataKHR = 5148,
++ SpvOpPoisonKHR = 5158,
++ SpvOpFreezeKHR = 5159,
++ SpvOpHitObjectRecordHitMotionNV = 5249,
++ SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
++ SpvOpHitObjectRecordMissMotionNV = 5251,
++ SpvOpHitObjectGetWorldToObjectNV = 5252,
++ SpvOpHitObjectGetObjectToWorldNV = 5253,
++ SpvOpHitObjectGetObjectRayDirectionNV = 5254,
++ SpvOpHitObjectGetObjectRayOriginNV = 5255,
++ SpvOpHitObjectTraceRayMotionNV = 5256,
++ SpvOpHitObjectGetShaderRecordBufferHandleNV = 5257,
++ SpvOpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
++ SpvOpHitObjectRecordEmptyNV = 5259,
++ SpvOpHitObjectTraceRayNV = 5260,
++ SpvOpHitObjectRecordHitNV = 5261,
++ SpvOpHitObjectRecordHitWithIndexNV = 5262,
++ SpvOpHitObjectRecordMissNV = 5263,
++ SpvOpHitObjectExecuteShaderNV = 5264,
++ SpvOpHitObjectGetCurrentTimeNV = 5265,
++ SpvOpHitObjectGetAttributesNV = 5266,
++ SpvOpHitObjectGetHitKindNV = 5267,
++ SpvOpHitObjectGetPrimitiveIndexNV = 5268,
++ SpvOpHitObjectGetGeometryIndexNV = 5269,
++ SpvOpHitObjectGetInstanceIdNV = 5270,
++ SpvOpHitObjectGetInstanceCustomIndexNV = 5271,
++ SpvOpHitObjectGetWorldRayDirectionNV = 5272,
++ SpvOpHitObjectGetWorldRayOriginNV = 5273,
++ SpvOpHitObjectGetRayTMaxNV = 5274,
++ SpvOpHitObjectGetRayTMinNV = 5275,
++ SpvOpHitObjectIsEmptyNV = 5276,
++ SpvOpHitObjectIsHitNV = 5277,
++ SpvOpHitObjectIsMissNV = 5278,
++ SpvOpReorderThreadWithHitObjectNV = 5279,
++ SpvOpReorderThreadWithHintNV = 5280,
++ SpvOpTypeHitObjectNV = 5281,
++ SpvOpImageSampleFootprintNV = 5283,
++ SpvOpTypeCooperativeVectorNV = 5288,
++ SpvOpTypeVectorIdEXT = 5288,
++ SpvOpCooperativeVectorMatrixMulNV = 5289,
++ SpvOpCooperativeVectorOuterProductAccumulateNV = 5290,
++ SpvOpCooperativeVectorReduceSumAccumulateNV = 5291,
++ SpvOpCooperativeVectorMatrixMulAddNV = 5292,
++ SpvOpCooperativeMatrixConvertNV = 5293,
++ SpvOpEmitMeshTasksEXT = 5294,
++ SpvOpSetMeshOutputsEXT = 5295,
++ SpvOpGroupNonUniformPartitionEXT = 5296,
++ SpvOpGroupNonUniformPartitionNV = 5296,
++ SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
++ SpvOpFetchMicroTriangleVertexPositionNV = 5300,
++ SpvOpFetchMicroTriangleVertexBarycentricNV = 5301,
++ SpvOpCooperativeVectorLoadNV = 5302,
++ SpvOpCooperativeVectorStoreNV = 5303,
++ SpvOpHitObjectRecordFromQueryEXT = 5304,
++ SpvOpHitObjectRecordMissEXT = 5305,
++ SpvOpHitObjectRecordMissMotionEXT = 5306,
++ SpvOpHitObjectGetIntersectionTriangleVertexPositionsEXT = 5307,
++ SpvOpHitObjectGetRayFlagsEXT = 5308,
++ SpvOpHitObjectSetShaderBindingTableRecordIndexEXT = 5309,
++ SpvOpHitObjectReorderExecuteShaderEXT = 5310,
++ SpvOpHitObjectTraceReorderExecuteEXT = 5311,
++ SpvOpHitObjectTraceMotionReorderExecuteEXT = 5312,
++ SpvOpTypeHitObjectEXT = 5313,
++ SpvOpReorderThreadWithHintEXT = 5314,
++ SpvOpReorderThreadWithHitObjectEXT = 5315,
++ SpvOpHitObjectTraceRayEXT = 5316,
++ SpvOpHitObjectTraceRayMotionEXT = 5317,
++ SpvOpHitObjectRecordEmptyEXT = 5318,
++ SpvOpHitObjectExecuteShaderEXT = 5319,
++ SpvOpHitObjectGetCurrentTimeEXT = 5320,
++ SpvOpHitObjectGetAttributesEXT = 5321,
++ SpvOpHitObjectGetHitKindEXT = 5322,
++ SpvOpHitObjectGetPrimitiveIndexEXT = 5323,
++ SpvOpHitObjectGetGeometryIndexEXT = 5324,
++ SpvOpHitObjectGetInstanceIdEXT = 5325,
++ SpvOpHitObjectGetInstanceCustomIndexEXT = 5326,
++ SpvOpHitObjectGetObjectRayOriginEXT = 5327,
++ SpvOpHitObjectGetObjectRayDirectionEXT = 5328,
++ SpvOpHitObjectGetWorldRayDirectionEXT = 5329,
++ SpvOpHitObjectGetWorldRayOriginEXT = 5330,
++ SpvOpHitObjectGetObjectToWorldEXT = 5331,
++ SpvOpHitObjectGetWorldToObjectEXT = 5332,
++ SpvOpHitObjectGetRayTMaxEXT = 5333,
++ SpvOpReportIntersectionKHR = 5334,
++ SpvOpReportIntersectionNV = 5334,
++ SpvOpIgnoreIntersectionNV = 5335,
++ SpvOpTerminateRayNV = 5336,
++ SpvOpTraceNV = 5337,
++ SpvOpTraceMotionNV = 5338,
++ SpvOpTraceRayMotionNV = 5339,
++ SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
++ SpvOpTypeAccelerationStructureKHR = 5341,
++ SpvOpTypeAccelerationStructureNV = 5341,
++ SpvOpExecuteCallableNV = 5344,
++ SpvOpRayQueryGetClusterIdNV = 5345,
++ SpvOpRayQueryGetIntersectionClusterIdNV = 5345,
++ SpvOpHitObjectGetClusterIdNV = 5346,
++ SpvOpHitObjectGetRayTMinEXT = 5347,
++ SpvOpHitObjectGetShaderBindingTableRecordIndexEXT = 5348,
++ SpvOpHitObjectGetShaderRecordBufferHandleEXT = 5349,
++ SpvOpHitObjectIsEmptyEXT = 5350,
++ SpvOpHitObjectIsHitEXT = 5351,
++ SpvOpHitObjectIsMissEXT = 5352,
++ SpvOpTypeCooperativeMatrixNV = 5358,
++ SpvOpCooperativeMatrixLoadNV = 5359,
++ SpvOpCooperativeMatrixStoreNV = 5360,
++ SpvOpCooperativeMatrixMulAddNV = 5361,
++ SpvOpCooperativeMatrixLengthNV = 5362,
++ SpvOpBeginInvocationInterlockEXT = 5364,
++ SpvOpEndInvocationInterlockEXT = 5365,
++ SpvOpCooperativeMatrixReduceNV = 5366,
++ SpvOpCooperativeMatrixLoadTensorNV = 5367,
++ SpvOpCooperativeMatrixStoreTensorNV = 5368,
++ SpvOpCooperativeMatrixPerElementOpNV = 5369,
++ SpvOpTypeTensorLayoutNV = 5370,
++ SpvOpTypeTensorViewNV = 5371,
++ SpvOpCreateTensorLayoutNV = 5372,
++ SpvOpTensorLayoutSetDimensionNV = 5373,
++ SpvOpTensorLayoutSetStrideNV = 5374,
++ SpvOpTensorLayoutSliceNV = 5375,
++ SpvOpTensorLayoutSetClampValueNV = 5376,
++ SpvOpCreateTensorViewNV = 5377,
++ SpvOpTensorViewSetDimensionNV = 5378,
++ SpvOpTensorViewSetStrideNV = 5379,
++ SpvOpDemoteToHelperInvocation = 5380,
++ SpvOpDemoteToHelperInvocationEXT = 5380,
++ SpvOpIsHelperInvocationEXT = 5381,
++ SpvOpTensorViewSetClipNV = 5382,
++ SpvOpTensorLayoutSetBlockSizeNV = 5384,
++ SpvOpCooperativeMatrixTransposeNV = 5390,
++ SpvOpConvertUToImageNV = 5391,
++ SpvOpConvertUToSamplerNV = 5392,
++ SpvOpConvertImageToUNV = 5393,
++ SpvOpConvertSamplerToUNV = 5394,
++ SpvOpConvertUToSampledImageNV = 5395,
++ SpvOpConvertSampledImageToUNV = 5396,
++ SpvOpSamplerImageAddressingModeNV = 5397,
++ SpvOpRawAccessChainNV = 5398,
++ SpvOpRayQueryGetIntersectionSpherePositionNV = 5427,
++ SpvOpRayQueryGetIntersectionSphereRadiusNV = 5428,
++ SpvOpRayQueryGetIntersectionLSSPositionsNV = 5429,
++ SpvOpRayQueryGetIntersectionLSSRadiiNV = 5430,
++ SpvOpRayQueryGetIntersectionLSSHitValueNV = 5431,
++ SpvOpHitObjectGetSpherePositionNV = 5432,
++ SpvOpHitObjectGetSphereRadiusNV = 5433,
++ SpvOpHitObjectGetLSSPositionsNV = 5434,
++ SpvOpHitObjectGetLSSRadiiNV = 5435,
++ SpvOpHitObjectIsSphereHitNV = 5436,
++ SpvOpHitObjectIsLSSHitNV = 5437,
++ SpvOpRayQueryIsSphereHitNV = 5438,
++ SpvOpRayQueryIsLSSHitNV = 5439,
++ SpvOpSubgroupShuffleINTEL = 5571,
++ SpvOpSubgroupShuffleDownINTEL = 5572,
++ SpvOpSubgroupShuffleUpINTEL = 5573,
++ SpvOpSubgroupShuffleXorINTEL = 5574,
++ SpvOpSubgroupBlockReadINTEL = 5575,
++ SpvOpSubgroupBlockWriteINTEL = 5576,
++ SpvOpSubgroupImageBlockReadINTEL = 5577,
++ SpvOpSubgroupImageBlockWriteINTEL = 5578,
++ SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
++ SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
++ SpvOpUCountLeadingZerosINTEL = 5585,
++ SpvOpUCountTrailingZerosINTEL = 5586,
++ SpvOpAbsISubINTEL = 5587,
++ SpvOpAbsUSubINTEL = 5588,
++ SpvOpIAddSatINTEL = 5589,
++ SpvOpUAddSatINTEL = 5590,
++ SpvOpIAverageINTEL = 5591,
++ SpvOpUAverageINTEL = 5592,
++ SpvOpIAverageRoundedINTEL = 5593,
++ SpvOpUAverageRoundedINTEL = 5594,
++ SpvOpISubSatINTEL = 5595,
++ SpvOpUSubSatINTEL = 5596,
++ SpvOpIMul32x16INTEL = 5597,
++ SpvOpUMul32x16INTEL = 5598,
++ SpvOpConstantFunctionPointerINTEL = 5600,
++ SpvOpFunctionPointerCallINTEL = 5601,
++ SpvOpAsmTargetINTEL = 5609,
++ SpvOpAsmINTEL = 5610,
++ SpvOpAsmCallINTEL = 5611,
++ SpvOpAtomicFMinEXT = 5614,
++ SpvOpAtomicFMaxEXT = 5615,
++ SpvOpAssumeTrueKHR = 5630,
++ SpvOpExpectKHR = 5631,
++ SpvOpDecorateString = 5632,
++ SpvOpDecorateStringGOOGLE = 5632,
++ SpvOpMemberDecorateString = 5633,
++ SpvOpMemberDecorateStringGOOGLE = 5633,
++ SpvOpVmeImageINTEL = 5699,
++ SpvOpTypeVmeImageINTEL = 5700,
++ SpvOpTypeAvcImePayloadINTEL = 5701,
++ SpvOpTypeAvcRefPayloadINTEL = 5702,
++ SpvOpTypeAvcSicPayloadINTEL = 5703,
++ SpvOpTypeAvcMcePayloadINTEL = 5704,
++ SpvOpTypeAvcMceResultINTEL = 5705,
++ SpvOpTypeAvcImeResultINTEL = 5706,
++ SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
++ SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
++ SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
++ SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
++ SpvOpTypeAvcRefResultINTEL = 5711,
++ SpvOpTypeAvcSicResultINTEL = 5712,
++ SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
++ SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
++ SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
++ SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
++ SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
++ SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
++ SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
++ SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
++ SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
++ SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
++ SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
++ SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
++ SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
++ SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
++ SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
++ SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
++ SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
++ SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
++ SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
++ SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
++ SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
++ SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
++ SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
++ SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
++ SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
++ SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
++ SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
++ SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
++ SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
++ SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
++ SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
++ SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
++ SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
++ SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
++ SpvOpSubgroupAvcImeInitializeINTEL = 5747,
++ SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
++ SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
++ SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
++ SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
++ SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
++ SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
++ SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
++ SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
++ SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
++ SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
++ SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
++ SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
++ SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
++ SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
++ SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
++ SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
++ SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
++ SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
++ SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
++ SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
++ SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
++ SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
++ SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
++ SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
++ SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
++ SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
++ SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
++ SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
++ SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
++ SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
++ SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
++ SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
++ SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
++ SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
++ SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
++ SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
++ SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
++ SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
++ SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
++ SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
++ SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
++ SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
++ SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
++ SpvOpSubgroupAvcSicInitializeINTEL = 5791,
++ SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
++ SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
++ SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
++ SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
++ SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
++ SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
++ SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
++ SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
++ SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
++ SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
++ SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
++ SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
++ SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
++ SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
++ SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
++ SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
++ SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
++ SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
++ SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
++ SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
++ SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
++ SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
++ SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
++ SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
++ SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
++ SpvOpVariableLengthArrayINTEL = 5818,
++ SpvOpSaveMemoryINTEL = 5819,
++ SpvOpRestoreMemoryINTEL = 5820,
++ SpvOpArbitraryFloatSinCosPiALTERA = 5840,
++ SpvOpArbitraryFloatSinCosPiINTEL = 5840,
++ SpvOpArbitraryFloatCastALTERA = 5841,
++ SpvOpArbitraryFloatCastINTEL = 5841,
++ SpvOpArbitraryFloatCastFromIntALTERA = 5842,
++ SpvOpArbitraryFloatCastFromIntINTEL = 5842,
++ SpvOpArbitraryFloatCastToIntALTERA = 5843,
++ SpvOpArbitraryFloatCastToIntINTEL = 5843,
++ SpvOpArbitraryFloatAddALTERA = 5846,
++ SpvOpArbitraryFloatAddINTEL = 5846,
++ SpvOpArbitraryFloatSubALTERA = 5847,
++ SpvOpArbitraryFloatSubINTEL = 5847,
++ SpvOpArbitraryFloatMulALTERA = 5848,
++ SpvOpArbitraryFloatMulINTEL = 5848,
++ SpvOpArbitraryFloatDivALTERA = 5849,
++ SpvOpArbitraryFloatDivINTEL = 5849,
++ SpvOpArbitraryFloatGTALTERA = 5850,
++ SpvOpArbitraryFloatGTINTEL = 5850,
++ SpvOpArbitraryFloatGEALTERA = 5851,
++ SpvOpArbitraryFloatGEINTEL = 5851,
++ SpvOpArbitraryFloatLTALTERA = 5852,
++ SpvOpArbitraryFloatLTINTEL = 5852,
++ SpvOpArbitraryFloatLEALTERA = 5853,
++ SpvOpArbitraryFloatLEINTEL = 5853,
++ SpvOpArbitraryFloatEQALTERA = 5854,
++ SpvOpArbitraryFloatEQINTEL = 5854,
++ SpvOpArbitraryFloatRecipALTERA = 5855,
++ SpvOpArbitraryFloatRecipINTEL = 5855,
++ SpvOpArbitraryFloatRSqrtALTERA = 5856,
++ SpvOpArbitraryFloatRSqrtINTEL = 5856,
++ SpvOpArbitraryFloatCbrtALTERA = 5857,
++ SpvOpArbitraryFloatCbrtINTEL = 5857,
++ SpvOpArbitraryFloatHypotALTERA = 5858,
++ SpvOpArbitraryFloatHypotINTEL = 5858,
++ SpvOpArbitraryFloatSqrtALTERA = 5859,
++ 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,
++ SpvOpFixedSqrtALTERA = 5923,
++ SpvOpFixedSqrtINTEL = 5923,
++ SpvOpFixedRecipALTERA = 5924,
++ SpvOpFixedRecipINTEL = 5924,
++ SpvOpFixedRsqrtALTERA = 5925,
++ SpvOpFixedRsqrtINTEL = 5925,
++ SpvOpFixedSinALTERA = 5926,
++ SpvOpFixedSinINTEL = 5926,
++ SpvOpFixedCosALTERA = 5927,
++ SpvOpFixedCosINTEL = 5927,
++ SpvOpFixedSinCosALTERA = 5928,
++ SpvOpFixedSinCosINTEL = 5928,
++ SpvOpFixedSinPiALTERA = 5929,
++ SpvOpFixedSinPiINTEL = 5929,
++ SpvOpFixedCosPiALTERA = 5930,
++ SpvOpFixedCosPiINTEL = 5930,
++ SpvOpFixedSinCosPiALTERA = 5931,
++ SpvOpFixedSinCosPiINTEL = 5931,
++ SpvOpFixedLogALTERA = 5932,
++ SpvOpFixedLogINTEL = 5932,
++ SpvOpFixedExpALTERA = 5933,
++ SpvOpFixedExpINTEL = 5933,
++ SpvOpPtrCastToCrossWorkgroupALTERA = 5934,
++ SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
++ SpvOpCrossWorkgroupCastToPtrALTERA = 5938,
++ SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
++ SpvOpReadPipeBlockingALTERA = 5946,
++ SpvOpReadPipeBlockingINTEL = 5946,
++ SpvOpWritePipeBlockingALTERA = 5947,
++ SpvOpWritePipeBlockingINTEL = 5947,
++ SpvOpFPGARegALTERA = 5949,
++ 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,
++ SpvOpTaskSequenceCreateALTERA = 6163,
++ SpvOpTaskSequenceCreateINTEL = 6163,
++ SpvOpTaskSequenceAsyncALTERA = 6164,
++ SpvOpTaskSequenceAsyncINTEL = 6164,
++ SpvOpTaskSequenceGetALTERA = 6165,
++ SpvOpTaskSequenceGetINTEL = 6165,
++ SpvOpTaskSequenceReleaseALTERA = 6166,
++ SpvOpTaskSequenceReleaseINTEL = 6166,
++ SpvOpTypeTaskSequenceALTERA = 6199,
++ SpvOpTypeTaskSequenceINTEL = 6199,
++ SpvOpSubgroupBlockPrefetchINTEL = 6221,
++ SpvOpSubgroup2DBlockLoadINTEL = 6231,
++ SpvOpSubgroup2DBlockLoadTransformINTEL = 6232,
++ SpvOpSubgroup2DBlockLoadTransposeINTEL = 6233,
++ SpvOpSubgroup2DBlockPrefetchINTEL = 6234,
++ SpvOpSubgroup2DBlockStoreINTEL = 6235,
++ SpvOpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
++ SpvOpBitwiseFunctionINTEL = 6242,
++ SpvOpUntypedVariableLengthArrayINTEL = 6244,
++ SpvOpConditionalExtensionINTEL = 6248,
++ SpvOpConditionalEntryPointINTEL = 6249,
++ SpvOpConditionalCapabilityINTEL = 6250,
++ SpvOpSpecConstantTargetINTEL = 6251,
++ SpvOpSpecConstantArchitectureINTEL = 6252,
++ SpvOpSpecConstantCapabilitiesINTEL = 6253,
++ SpvOpConditionalCopyObjectINTEL = 6254,
++ SpvOpGroupIMulKHR = 6401,
++ SpvOpGroupFMulKHR = 6402,
++ SpvOpGroupBitwiseAndKHR = 6403,
++ SpvOpGroupBitwiseOrKHR = 6404,
++ SpvOpGroupBitwiseXorKHR = 6405,
++ SpvOpGroupLogicalAndKHR = 6406,
++ SpvOpGroupLogicalOrKHR = 6407,
++ SpvOpGroupLogicalXorKHR = 6408,
++ SpvOpRoundFToTF32INTEL = 6426,
++ SpvOpMaskedGatherINTEL = 6428,
++ SpvOpMaskedScatterINTEL = 6429,
++ SpvOpConvertHandleToImageINTEL = 6529,
++ SpvOpConvertHandleToSamplerINTEL = 6530,
++ SpvOpConvertHandleToSampledImageINTEL = 6531,
++ SpvOpFDot2MixAcc32VALVE = 6916,
++ SpvOpFDot2MixAcc16VALVE = 6917,
++ SpvOpFDot4MixAcc32VALVE = 6918,
++ SpvOpMax = 0x7fffffff,
++ } SpvOp;
++
++ #ifdef SPV_ENABLE_UTILITY_CODE
++ #ifndef __cplusplus
++ #include <stdbool.h>
++ #endif
++ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
++ *hasResult = *hasResultType = false;
++ switch (opcode) {
++ default: /* unknown opcode */ break;
++ case SpvOpNop: *hasResult = false; *hasResultType = false; break;
++ case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSource: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
++ case SpvOpName: *hasResult = false; *hasResultType = false; break;
++ case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
++ case SpvOpString: *hasResult = true; *hasResultType = false; break;
++ case SpvOpLine: *hasResult = false; *hasResultType = false; break;
++ case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
++ case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
++ case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
++ case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
++ case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
++ case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
++ case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
++ case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
++ case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
++ case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
++ case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
++ case SpvOpStore: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
++ case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
++ case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
++ case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
++ case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
++ case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
++ case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
++ case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
++ case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
++ case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
++ case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
++ case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
++ case SpvOpImage: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
++ case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
++ case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpISub: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
++ case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
++ case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
++ case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
++ case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
++ case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDot: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
++ case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAny: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAll: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
++ case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
++ case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
++ case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
++ case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
++ case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
++ case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
++ case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpNot: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
++ case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
++ case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
++ case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
++ case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
++ case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
++ case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
++ case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
++ case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
++ case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
++ case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
++ case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
++ case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
++ case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
++ case SpvOpKill: *hasResult = false; *hasResultType = false; break;
++ case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
++ case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
++ case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
++ case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
++ case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
++ case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
++ case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
++ case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
++ case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
++ case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
++ case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
++ case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
++ case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
++ case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
++ case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
++ case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
++ case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
++ case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
++ case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
++ case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
++ case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
++ case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
++ case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
++ case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
++ case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
++ case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
++ case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
++ case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
++ case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
++ case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
++ case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
++ case SpvOpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTypeTensorARM: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTensorReadARM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTensorWriteARM: *hasResult = false; *hasResultType = false; break;
++ case SpvOpTensorQuerySizeARM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGraphConstantARM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGraphEntryPointARM: *hasResult = false; *hasResultType = false; break;
++ case SpvOpGraphARM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGraphInputARM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGraphSetOutputARM: *hasResult = false; *hasResultType = false; break;
++ case SpvOpGraphEndARM: *hasResult = false; *hasResultType = false; break;
++ case SpvOpTypeGraphARM: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
++ case SpvOpTypeUntypedPointerKHR: *hasResult = true; *hasResultType = false; break;
++ case SpvOpUntypedVariableKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUntypedAccessChainKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUntypedInBoundsAccessChainKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUntypedPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUntypedInBoundsPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUntypedArrayLengthKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUntypedPrefetchKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpFmaKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUntypedGroupAsyncCopyKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSDot: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUDot: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSUDot: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
++ case SpvOpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
++ case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitCastArrayQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCompositeConstructCoopMatQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCompositeExtractCoopMatQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpExtractSubArrayQCOM: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
++ case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAllocateNodePayloadsAMDX: *hasResult = true; *hasResultType = true; break;
++ case SpvOpEnqueueNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
++ case SpvOpTypeNodePayloadArrayAMDX: *hasResult = true; *hasResultType = false; break;
++ case SpvOpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
++ case SpvOpNodePayloadArrayLengthAMDX: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIsNodePayloadValidAMDX: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConstantStringAMDX: *hasResult = true; *hasResultType = false; break;
++ case SpvOpSpecConstantStringAMDX: *hasResult = true; *hasResultType = false; break;
++ case SpvOpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTypeBufferEXT: *hasResult = true; *hasResultType = false; break;
++ case SpvOpBufferPointerEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAbortKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpUntypedImageTexelPointerEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpMemberDecorateIdEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpConstantSizeOfEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConstantDataKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSpecConstantDataKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpPoisonKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFreezeKHR: *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 SpvOpTypeVectorIdEXT: *hasResult = true; *hasResultType = false; break;
++ case SpvOpCooperativeVectorMatrixMulNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeVectorOuterProductAccumulateNV: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCooperativeVectorReduceSumAccumulateNV: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCooperativeVectorMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeMatrixConvertNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpGroupNonUniformPartitionEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
++ case SpvOpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeVectorLoadNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeVectorStoreNV: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectRecordFromQueryEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectRecordMissEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectRecordMissMotionEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectGetIntersectionTriangleVertexPositionsEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetRayFlagsEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectSetShaderBindingTableRecordIndexEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectReorderExecuteShaderEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectTraceReorderExecuteEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectTraceMotionReorderExecuteEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpTypeHitObjectEXT: *hasResult = true; *hasResultType = false; break;
++ case SpvOpReorderThreadWithHintEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpReorderThreadWithHitObjectEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectTraceRayEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectTraceRayMotionEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectRecordEmptyEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectExecuteShaderEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectGetCurrentTimeEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetAttributesEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpHitObjectGetHitKindEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetPrimitiveIndexEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetGeometryIndexEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetInstanceIdEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetInstanceCustomIndexEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetObjectRayOriginEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetObjectRayDirectionEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetWorldRayDirectionEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetWorldRayOriginEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetObjectToWorldEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetWorldToObjectEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetRayTMaxEXT: *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 SpvOpRayQueryGetIntersectionClusterIdNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetClusterIdNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetRayTMinEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetShaderBindingTableRecordIndexEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetShaderRecordBufferHandleEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectIsEmptyEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectIsHitEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectIsMissEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
++ case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCooperativeMatrixReduceNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeMatrixLoadTensorNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeMatrixStoreTensorNV: *hasResult = false; *hasResultType = false; break;
++ case SpvOpCooperativeMatrixPerElementOpNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTypeTensorLayoutNV: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeTensorViewNV: *hasResult = true; *hasResultType = false; break;
++ case SpvOpCreateTensorLayoutNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTensorLayoutSetDimensionNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTensorLayoutSetStrideNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTensorLayoutSliceNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTensorLayoutSetClampValueNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCreateTensorViewNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTensorViewSetDimensionNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTensorViewSetStrideNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
++ case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTensorViewSetClipNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTensorLayoutSetBlockSizeNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCooperativeMatrixTransposeNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
++ case SpvOpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRayQueryGetIntersectionSpherePositionNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRayQueryGetIntersectionSphereRadiusNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRayQueryGetIntersectionLSSPositionsNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRayQueryGetIntersectionLSSRadiiNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRayQueryGetIntersectionLSSHitValueNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetSpherePositionNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetSphereRadiusNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetLSSPositionsNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectGetLSSRadiiNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectIsSphereHitNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpHitObjectIsLSSHitNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRayQueryIsSphereHitNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRayQueryIsLSSHitNV: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
++ case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
++ case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
++ case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
++ case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
++ case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpArbitraryFloatSinCosPiALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatCastALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatCastFromIntALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatCastToIntALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatAddALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatSubALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatMulALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatDivALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatGTALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatGEALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatLTALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatLEALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatEQALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatRecipALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatRSqrtALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatCbrtALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatHypotALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpArbitraryFloatSqrtALTERA: *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 SpvOpFixedSqrtALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedRecipALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedRsqrtALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedSinALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedCosALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedSinCosALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedSinPiALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedCosPiALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedSinCosPiALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedLogALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFixedExpALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFPGARegALTERA: *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 SpvOpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break;
++ case SpvOpTaskSequenceGetALTERA: *hasResult = true; *hasResultType = true; break;
++ case SpvOpTaskSequenceReleaseALTERA: *hasResult = false; *hasResultType = false; break;
++ case SpvOpTypeTaskSequenceALTERA: *hasResult = true; *hasResultType = false; break;
++ case SpvOpSubgroupBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSubgroup2DBlockLoadINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSubgroup2DBlockLoadTransformINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSubgroup2DBlockLoadTransposeINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSubgroup2DBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSubgroup2DBlockStoreINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSubgroupMatrixMultiplyAccumulateINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpBitwiseFunctionINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpUntypedVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConditionalExtensionINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpConditionalEntryPointINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpConditionalCapabilityINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpSpecConstantTargetINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
++ case SpvOpRoundFToTF32INTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
++ case SpvOpConvertHandleToImageINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertHandleToSamplerINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpConvertHandleToSampledImageINTEL: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFDot2MixAcc32VALVE: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFDot2MixAcc16VALVE: *hasResult = true; *hasResultType = true; break;
++ case SpvOpFDot4MixAcc32VALVE: *hasResult = true; *hasResultType = true; break;
++ }
++ }
++ inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) {
++ switch (value) {
++ case SpvSourceLanguageUnknown: return "Unknown";
++ case SpvSourceLanguageESSL: return "ESSL";
++ case SpvSourceLanguageGLSL: return "GLSL";
++ case SpvSourceLanguageOpenCL_C: return "OpenCL_C";
++ case SpvSourceLanguageOpenCL_CPP: return "OpenCL_CPP";
++ case SpvSourceLanguageHLSL: return "HLSL";
++ case SpvSourceLanguageCPP_for_OpenCL: return "CPP_for_OpenCL";
++ case SpvSourceLanguageSYCL: return "SYCL";
++ case SpvSourceLanguageHERO_C: return "HERO_C";
++ case SpvSourceLanguageNZSL: return "NZSL";
++ case SpvSourceLanguageWGSL: return "WGSL";
++ case SpvSourceLanguageSlang: return "Slang";
++ case SpvSourceLanguageZig: return "Zig";
++ case SpvSourceLanguageRust: return "Rust";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvExecutionModelToString(SpvExecutionModel value) {
++ switch (value) {
++ case SpvExecutionModelVertex: return "Vertex";
++ case SpvExecutionModelTessellationControl: return "TessellationControl";
++ case SpvExecutionModelTessellationEvaluation: return "TessellationEvaluation";
++ case SpvExecutionModelGeometry: return "Geometry";
++ case SpvExecutionModelFragment: return "Fragment";
++ case SpvExecutionModelGLCompute: return "GLCompute";
++ case SpvExecutionModelKernel: return "Kernel";
++ case SpvExecutionModelTaskNV: return "TaskNV";
++ case SpvExecutionModelMeshNV: return "MeshNV";
++ case SpvExecutionModelRayGenerationKHR: return "RayGenerationKHR";
++ case SpvExecutionModelIntersectionKHR: return "IntersectionKHR";
++ case SpvExecutionModelAnyHitKHR: return "AnyHitKHR";
++ case SpvExecutionModelClosestHitKHR: return "ClosestHitKHR";
++ case SpvExecutionModelMissKHR: return "MissKHR";
++ case SpvExecutionModelCallableKHR: return "CallableKHR";
++ case SpvExecutionModelTaskEXT: return "TaskEXT";
++ case SpvExecutionModelMeshEXT: return "MeshEXT";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvAddressingModelToString(SpvAddressingModel value) {
++ switch (value) {
++ case SpvAddressingModelLogical: return "Logical";
++ case SpvAddressingModelPhysical32: return "Physical32";
++ case SpvAddressingModelPhysical64: return "Physical64";
++ case SpvAddressingModelPhysicalStorageBuffer64: return "PhysicalStorageBuffer64";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvMemoryModelToString(SpvMemoryModel value) {
++ switch (value) {
++ case SpvMemoryModelSimple: return "Simple";
++ case SpvMemoryModelGLSL450: return "GLSL450";
++ case SpvMemoryModelOpenCL: return "OpenCL";
++ case SpvMemoryModelVulkan: return "Vulkan";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvExecutionModeToString(SpvExecutionMode value) {
++ switch (value) {
++ case SpvExecutionModeInvocations: return "Invocations";
++ case SpvExecutionModeSpacingEqual: return "SpacingEqual";
++ case SpvExecutionModeSpacingFractionalEven: return "SpacingFractionalEven";
++ case SpvExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd";
++ case SpvExecutionModeVertexOrderCw: return "VertexOrderCw";
++ case SpvExecutionModeVertexOrderCcw: return "VertexOrderCcw";
++ case SpvExecutionModePixelCenterInteger: return "PixelCenterInteger";
++ case SpvExecutionModeOriginUpperLeft: return "OriginUpperLeft";
++ case SpvExecutionModeOriginLowerLeft: return "OriginLowerLeft";
++ case SpvExecutionModeEarlyFragmentTests: return "EarlyFragmentTests";
++ case SpvExecutionModePointMode: return "PointMode";
++ case SpvExecutionModeXfb: return "Xfb";
++ case SpvExecutionModeDepthReplacing: return "DepthReplacing";
++ case SpvExecutionModeDepthGreater: return "DepthGreater";
++ case SpvExecutionModeDepthLess: return "DepthLess";
++ case SpvExecutionModeDepthUnchanged: return "DepthUnchanged";
++ case SpvExecutionModeLocalSize: return "LocalSize";
++ case SpvExecutionModeLocalSizeHint: return "LocalSizeHint";
++ case SpvExecutionModeInputPoints: return "InputPoints";
++ case SpvExecutionModeInputLines: return "InputLines";
++ case SpvExecutionModeInputLinesAdjacency: return "InputLinesAdjacency";
++ case SpvExecutionModeTriangles: return "Triangles";
++ case SpvExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency";
++ case SpvExecutionModeQuads: return "Quads";
++ case SpvExecutionModeIsolines: return "Isolines";
++ case SpvExecutionModeOutputVertices: return "OutputVertices";
++ case SpvExecutionModeOutputPoints: return "OutputPoints";
++ case SpvExecutionModeOutputLineStrip: return "OutputLineStrip";
++ case SpvExecutionModeOutputTriangleStrip: return "OutputTriangleStrip";
++ case SpvExecutionModeVecTypeHint: return "VecTypeHint";
++ case SpvExecutionModeContractionOff: return "ContractionOff";
++ case SpvExecutionModeInitializer: return "Initializer";
++ case SpvExecutionModeFinalizer: return "Finalizer";
++ case SpvExecutionModeSubgroupSize: return "SubgroupSize";
++ case SpvExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup";
++ case SpvExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId";
++ case SpvExecutionModeLocalSizeId: return "LocalSizeId";
++ case SpvExecutionModeLocalSizeHintId: return "LocalSizeHintId";
++ case SpvExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT";
++ case SpvExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT";
++ case SpvExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT";
++ case SpvExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR";
++ case SpvExecutionModePostDepthCoverage: return "PostDepthCoverage";
++ case SpvExecutionModeDenormPreserve: return "DenormPreserve";
++ case SpvExecutionModeDenormFlushToZero: return "DenormFlushToZero";
++ case SpvExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
++ case SpvExecutionModeRoundingModeRTE: return "RoundingModeRTE";
++ case SpvExecutionModeRoundingModeRTZ: return "RoundingModeRTZ";
++ case SpvExecutionModeNonCoherentTileAttachmentReadQCOM: return "NonCoherentTileAttachmentReadQCOM";
++ case SpvExecutionModeTileShadingRateQCOM: return "TileShadingRateQCOM";
++ case SpvExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD";
++ case SpvExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT";
++ case SpvExecutionModeCoalescingAMDX: return "CoalescingAMDX";
++ case SpvExecutionModeIsApiEntryAMDX: return "IsApiEntryAMDX";
++ case SpvExecutionModeMaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX";
++ case SpvExecutionModeStaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX";
++ case SpvExecutionModeShaderIndexAMDX: return "ShaderIndexAMDX";
++ case SpvExecutionModeMaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX";
++ case SpvExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD";
++ case SpvExecutionModeStencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD";
++ case SpvExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD";
++ case SpvExecutionModeStencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD";
++ case SpvExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD";
++ case SpvExecutionModeStencilRefLessBackAMD: return "StencilRefLessBackAMD";
++ case SpvExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR";
++ case SpvExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR";
++ case SpvExecutionModeSharesInputWithAMDX: return "SharesInputWithAMDX";
++ case SpvExecutionModeArithmeticPoisonKHR: return "ArithmeticPoisonKHR";
++ 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 SpvExecutionModeShader64BitIndexingEXT: return "Shader64BitIndexingEXT";
++ case SpvExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL";
++ case SpvExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL";
++ case SpvExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL";
++ case SpvExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL";
++ case SpvExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL";
++ case SpvExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL";
++ case SpvExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL";
++ case SpvExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL";
++ case SpvExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL";
++ case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
++ case SpvExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
++ case SpvExecutionModeFPFastMathDefault: return "FPFastMathDefault";
++ case SpvExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
++ case SpvExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
++ case SpvExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
++ case SpvExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL";
++ case SpvExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL";
++ case SpvExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvStorageClassToString(SpvStorageClass value) {
++ switch (value) {
++ case SpvStorageClassUniformConstant: return "UniformConstant";
++ case SpvStorageClassInput: return "Input";
++ case SpvStorageClassUniform: return "Uniform";
++ case SpvStorageClassOutput: return "Output";
++ case SpvStorageClassWorkgroup: return "Workgroup";
++ case SpvStorageClassCrossWorkgroup: return "CrossWorkgroup";
++ case SpvStorageClassPrivate: return "Private";
++ case SpvStorageClassFunction: return "Function";
++ case SpvStorageClassGeneric: return "Generic";
++ case SpvStorageClassPushConstant: return "PushConstant";
++ case SpvStorageClassAtomicCounter: return "AtomicCounter";
++ case SpvStorageClassImage: return "Image";
++ case SpvStorageClassStorageBuffer: return "StorageBuffer";
++ case SpvStorageClassTileImageEXT: return "TileImageEXT";
++ case SpvStorageClassTileAttachmentQCOM: return "TileAttachmentQCOM";
++ case SpvStorageClassNodePayloadAMDX: return "NodePayloadAMDX";
++ case SpvStorageClassCallableDataKHR: return "CallableDataKHR";
++ case SpvStorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR";
++ case SpvStorageClassRayPayloadKHR: return "RayPayloadKHR";
++ case SpvStorageClassHitAttributeKHR: return "HitAttributeKHR";
++ case SpvStorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR";
++ case SpvStorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR";
++ case SpvStorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer";
++ case SpvStorageClassHitObjectAttributeNV: return "HitObjectAttributeNV";
++ case SpvStorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT";
++ case SpvStorageClassHitObjectAttributeEXT: return "HitObjectAttributeEXT";
++ case SpvStorageClassCodeSectionINTEL: return "CodeSectionINTEL";
++ case SpvStorageClassDeviceOnlyALTERA: return "DeviceOnlyALTERA";
++ case SpvStorageClassHostOnlyALTERA: return "HostOnlyALTERA";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvDimToString(SpvDim value) {
++ switch (value) {
++ case SpvDim1D: return "1D";
++ case SpvDim2D: return "2D";
++ case SpvDim3D: return "3D";
++ case SpvDimCube: return "Cube";
++ case SpvDimRect: return "Rect";
++ case SpvDimBuffer: return "Buffer";
++ case SpvDimSubpassData: return "SubpassData";
++ case SpvDimTileImageDataEXT: return "TileImageDataEXT";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvSamplerAddressingModeToString(SpvSamplerAddressingMode value) {
++ switch (value) {
++ case SpvSamplerAddressingModeNone: return "None";
++ case SpvSamplerAddressingModeClampToEdge: return "ClampToEdge";
++ case SpvSamplerAddressingModeClamp: return "Clamp";
++ case SpvSamplerAddressingModeRepeat: return "Repeat";
++ case SpvSamplerAddressingModeRepeatMirrored: return "RepeatMirrored";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvSamplerFilterModeToString(SpvSamplerFilterMode value) {
++ switch (value) {
++ case SpvSamplerFilterModeNearest: return "Nearest";
++ case SpvSamplerFilterModeLinear: return "Linear";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvImageFormatToString(SpvImageFormat value) {
++ switch (value) {
++ case SpvImageFormatUnknown: return "Unknown";
++ case SpvImageFormatRgba32f: return "Rgba32f";
++ case SpvImageFormatRgba16f: return "Rgba16f";
++ case SpvImageFormatR32f: return "R32f";
++ case SpvImageFormatRgba8: return "Rgba8";
++ case SpvImageFormatRgba8Snorm: return "Rgba8Snorm";
++ case SpvImageFormatRg32f: return "Rg32f";
++ case SpvImageFormatRg16f: return "Rg16f";
++ case SpvImageFormatR11fG11fB10f: return "R11fG11fB10f";
++ case SpvImageFormatR16f: return "R16f";
++ case SpvImageFormatRgba16: return "Rgba16";
++ case SpvImageFormatRgb10A2: return "Rgb10A2";
++ case SpvImageFormatRg16: return "Rg16";
++ case SpvImageFormatRg8: return "Rg8";
++ case SpvImageFormatR16: return "R16";
++ case SpvImageFormatR8: return "R8";
++ case SpvImageFormatRgba16Snorm: return "Rgba16Snorm";
++ case SpvImageFormatRg16Snorm: return "Rg16Snorm";
++ case SpvImageFormatRg8Snorm: return "Rg8Snorm";
++ case SpvImageFormatR16Snorm: return "R16Snorm";
++ case SpvImageFormatR8Snorm: return "R8Snorm";
++ case SpvImageFormatRgba32i: return "Rgba32i";
++ case SpvImageFormatRgba16i: return "Rgba16i";
++ case SpvImageFormatRgba8i: return "Rgba8i";
++ case SpvImageFormatR32i: return "R32i";
++ case SpvImageFormatRg32i: return "Rg32i";
++ case SpvImageFormatRg16i: return "Rg16i";
++ case SpvImageFormatRg8i: return "Rg8i";
++ case SpvImageFormatR16i: return "R16i";
++ case SpvImageFormatR8i: return "R8i";
++ case SpvImageFormatRgba32ui: return "Rgba32ui";
++ case SpvImageFormatRgba16ui: return "Rgba16ui";
++ case SpvImageFormatRgba8ui: return "Rgba8ui";
++ case SpvImageFormatR32ui: return "R32ui";
++ case SpvImageFormatRgb10a2ui: return "Rgb10a2ui";
++ case SpvImageFormatRg32ui: return "Rg32ui";
++ case SpvImageFormatRg16ui: return "Rg16ui";
++ case SpvImageFormatRg8ui: return "Rg8ui";
++ case SpvImageFormatR16ui: return "R16ui";
++ case SpvImageFormatR8ui: return "R8ui";
++ case SpvImageFormatR64ui: return "R64ui";
++ case SpvImageFormatR64i: return "R64i";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvImageChannelOrderToString(SpvImageChannelOrder value) {
++ switch (value) {
++ case SpvImageChannelOrderR: return "R";
++ case SpvImageChannelOrderA: return "A";
++ case SpvImageChannelOrderRG: return "RG";
++ case SpvImageChannelOrderRA: return "RA";
++ case SpvImageChannelOrderRGB: return "RGB";
++ case SpvImageChannelOrderRGBA: return "RGBA";
++ case SpvImageChannelOrderBGRA: return "BGRA";
++ case SpvImageChannelOrderARGB: return "ARGB";
++ case SpvImageChannelOrderIntensity: return "Intensity";
++ case SpvImageChannelOrderLuminance: return "Luminance";
++ case SpvImageChannelOrderRx: return "Rx";
++ case SpvImageChannelOrderRGx: return "RGx";
++ case SpvImageChannelOrderRGBx: return "RGBx";
++ case SpvImageChannelOrderDepth: return "Depth";
++ case SpvImageChannelOrderDepthStencil: return "DepthStencil";
++ case SpvImageChannelOrdersRGB: return "sRGB";
++ case SpvImageChannelOrdersRGBx: return "sRGBx";
++ case SpvImageChannelOrdersRGBA: return "sRGBA";
++ case SpvImageChannelOrdersBGRA: return "sBGRA";
++ case SpvImageChannelOrderABGR: return "ABGR";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvImageChannelDataTypeToString(SpvImageChannelDataType value) {
++ switch (value) {
++ case SpvImageChannelDataTypeSnormInt8: return "SnormInt8";
++ case SpvImageChannelDataTypeSnormInt16: return "SnormInt16";
++ case SpvImageChannelDataTypeUnormInt8: return "UnormInt8";
++ case SpvImageChannelDataTypeUnormInt16: return "UnormInt16";
++ case SpvImageChannelDataTypeUnormShort565: return "UnormShort565";
++ case SpvImageChannelDataTypeUnormShort555: return "UnormShort555";
++ case SpvImageChannelDataTypeUnormInt101010: return "UnormInt101010";
++ case SpvImageChannelDataTypeSignedInt8: return "SignedInt8";
++ case SpvImageChannelDataTypeSignedInt16: return "SignedInt16";
++ case SpvImageChannelDataTypeSignedInt32: return "SignedInt32";
++ case SpvImageChannelDataTypeUnsignedInt8: return "UnsignedInt8";
++ case SpvImageChannelDataTypeUnsignedInt16: return "UnsignedInt16";
++ case SpvImageChannelDataTypeUnsignedInt32: return "UnsignedInt32";
++ case SpvImageChannelDataTypeHalfFloat: return "HalfFloat";
++ case SpvImageChannelDataTypeFloat: return "Float";
++ case SpvImageChannelDataTypeUnormInt24: return "UnormInt24";
++ case SpvImageChannelDataTypeUnormInt101010_2: return "UnormInt101010_2";
++ case SpvImageChannelDataTypeUnormInt10X6EXT: return "UnormInt10X6EXT";
++ case SpvImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT";
++ case SpvImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT";
++ case SpvImageChannelDataTypeUnormInt2_101010EXT: return "UnormInt2_101010EXT";
++ case SpvImageChannelDataTypeUnsignedInt10X6EXT: return "UnsignedInt10X6EXT";
++ case SpvImageChannelDataTypeUnsignedInt12X4EXT: return "UnsignedInt12X4EXT";
++ case SpvImageChannelDataTypeUnsignedInt14X2EXT: return "UnsignedInt14X2EXT";
++ case SpvImageChannelDataTypeUnormInt12X4EXT: return "UnormInt12X4EXT";
++ case SpvImageChannelDataTypeUnormInt14X2EXT: return "UnormInt14X2EXT";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvFPRoundingModeToString(SpvFPRoundingMode value) {
++ switch (value) {
++ case SpvFPRoundingModeRTE: return "RTE";
++ case SpvFPRoundingModeRTZ: return "RTZ";
++ case SpvFPRoundingModeRTP: return "RTP";
++ case SpvFPRoundingModeRTN: return "RTN";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvLinkageTypeToString(SpvLinkageType value) {
++ switch (value) {
++ case SpvLinkageTypeExport: return "Export";
++ case SpvLinkageTypeImport: return "Import";
++ case SpvLinkageTypeLinkOnceODR: return "LinkOnceODR";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvAccessQualifierToString(SpvAccessQualifier value) {
++ switch (value) {
++ case SpvAccessQualifierReadOnly: return "ReadOnly";
++ case SpvAccessQualifierWriteOnly: return "WriteOnly";
++ case SpvAccessQualifierReadWrite: return "ReadWrite";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvFunctionParameterAttributeToString(SpvFunctionParameterAttribute value) {
++ switch (value) {
++ case SpvFunctionParameterAttributeZext: return "Zext";
++ case SpvFunctionParameterAttributeSext: return "Sext";
++ case SpvFunctionParameterAttributeByVal: return "ByVal";
++ case SpvFunctionParameterAttributeSret: return "Sret";
++ case SpvFunctionParameterAttributeNoAlias: return "NoAlias";
++ case SpvFunctionParameterAttributeNoCapture: return "NoCapture";
++ case SpvFunctionParameterAttributeNoWrite: return "NoWrite";
++ case SpvFunctionParameterAttributeNoReadWrite: return "NoReadWrite";
++ case SpvFunctionParameterAttributeRuntimeAlignedALTERA: return "RuntimeAlignedALTERA";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvDecorationToString(SpvDecoration value) {
++ switch (value) {
++ case SpvDecorationRelaxedPrecision: return "RelaxedPrecision";
++ case SpvDecorationSpecId: return "SpecId";
++ case SpvDecorationBlock: return "Block";
++ case SpvDecorationBufferBlock: return "BufferBlock";
++ case SpvDecorationRowMajor: return "RowMajor";
++ case SpvDecorationColMajor: return "ColMajor";
++ case SpvDecorationArrayStride: return "ArrayStride";
++ case SpvDecorationMatrixStride: return "MatrixStride";
++ case SpvDecorationGLSLShared: return "GLSLShared";
++ case SpvDecorationGLSLPacked: return "GLSLPacked";
++ case SpvDecorationCPacked: return "CPacked";
++ case SpvDecorationBuiltIn: return "BuiltIn";
++ case SpvDecorationNoPerspective: return "NoPerspective";
++ case SpvDecorationFlat: return "Flat";
++ case SpvDecorationPatch: return "Patch";
++ case SpvDecorationCentroid: return "Centroid";
++ case SpvDecorationSample: return "Sample";
++ case SpvDecorationInvariant: return "Invariant";
++ case SpvDecorationRestrict: return "Restrict";
++ case SpvDecorationAliased: return "Aliased";
++ case SpvDecorationVolatile: return "Volatile";
++ case SpvDecorationConstant: return "Constant";
++ case SpvDecorationCoherent: return "Coherent";
++ case SpvDecorationNonWritable: return "NonWritable";
++ case SpvDecorationNonReadable: return "NonReadable";
++ case SpvDecorationUniform: return "Uniform";
++ case SpvDecorationUniformId: return "UniformId";
++ case SpvDecorationSaturatedConversion: return "SaturatedConversion";
++ case SpvDecorationStream: return "Stream";
++ case SpvDecorationLocation: return "Location";
++ case SpvDecorationComponent: return "Component";
++ case SpvDecorationIndex: return "Index";
++ case SpvDecorationBinding: return "Binding";
++ case SpvDecorationDescriptorSet: return "DescriptorSet";
++ case SpvDecorationOffset: return "Offset";
++ case SpvDecorationXfbBuffer: return "XfbBuffer";
++ case SpvDecorationXfbStride: return "XfbStride";
++ case SpvDecorationFuncParamAttr: return "FuncParamAttr";
++ case SpvDecorationFPRoundingMode: return "FPRoundingMode";
++ case SpvDecorationFPFastMathMode: return "FPFastMathMode";
++ case SpvDecorationLinkageAttributes: return "LinkageAttributes";
++ case SpvDecorationNoContraction: return "NoContraction";
++ case SpvDecorationInputAttachmentIndex: return "InputAttachmentIndex";
++ case SpvDecorationAlignment: return "Alignment";
++ case SpvDecorationMaxByteOffset: return "MaxByteOffset";
++ case SpvDecorationAlignmentId: return "AlignmentId";
++ case SpvDecorationMaxByteOffsetId: return "MaxByteOffsetId";
++ case SpvDecorationSaturatedToLargestFloat8NormalConversionEXT: return "SaturatedToLargestFloat8NormalConversionEXT";
++ case SpvDecorationNoSignedWrap: return "NoSignedWrap";
++ case SpvDecorationNoUnsignedWrap: return "NoUnsignedWrap";
++ case SpvDecorationWeightTextureQCOM: return "WeightTextureQCOM";
++ case SpvDecorationBlockMatchTextureQCOM: return "BlockMatchTextureQCOM";
++ case SpvDecorationBlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM";
++ case SpvDecorationExplicitInterpAMD: return "ExplicitInterpAMD";
++ case SpvDecorationNodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX";
++ case SpvDecorationNodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX";
++ case SpvDecorationTrackFinishWritingAMDX: return "TrackFinishWritingAMDX";
++ case SpvDecorationPayloadNodeNameAMDX: return "PayloadNodeNameAMDX";
++ case SpvDecorationPayloadNodeBaseIndexAMDX: return "PayloadNodeBaseIndexAMDX";
++ case SpvDecorationPayloadNodeSparseArrayAMDX: return "PayloadNodeSparseArrayAMDX";
++ case SpvDecorationPayloadNodeArraySizeAMDX: return "PayloadNodeArraySizeAMDX";
++ case SpvDecorationPayloadDispatchIndirectAMDX: return "PayloadDispatchIndirectAMDX";
++ case SpvDecorationArrayStrideIdEXT: return "ArrayStrideIdEXT";
++ case SpvDecorationOffsetIdEXT: return "OffsetIdEXT";
++ case SpvDecorationUTFEncodedKHR: return "UTFEncodedKHR";
++ 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 SpvDecorationMemberOffsetNV: return "MemberOffsetNV";
++ case SpvDecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV";
++ case SpvDecorationHitObjectShaderRecordBufferEXT: return "HitObjectShaderRecordBufferEXT";
++ case SpvDecorationBankNV: return "BankNV";
++ 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 SpvDecorationRegisterALTERA: return "RegisterALTERA";
++ case SpvDecorationMemoryALTERA: return "MemoryALTERA";
++ case SpvDecorationNumbanksALTERA: return "NumbanksALTERA";
++ case SpvDecorationBankwidthALTERA: return "BankwidthALTERA";
++ case SpvDecorationMaxPrivateCopiesALTERA: return "MaxPrivateCopiesALTERA";
++ case SpvDecorationSinglepumpALTERA: return "SinglepumpALTERA";
++ case SpvDecorationDoublepumpALTERA: return "DoublepumpALTERA";
++ case SpvDecorationMaxReplicatesALTERA: return "MaxReplicatesALTERA";
++ case SpvDecorationSimpleDualPortALTERA: return "SimpleDualPortALTERA";
++ case SpvDecorationMergeALTERA: return "MergeALTERA";
++ case SpvDecorationBankBitsALTERA: return "BankBitsALTERA";
++ case SpvDecorationForcePow2DepthALTERA: return "ForcePow2DepthALTERA";
++ case SpvDecorationStridesizeALTERA: return "StridesizeALTERA";
++ case SpvDecorationWordsizeALTERA: return "WordsizeALTERA";
++ case SpvDecorationTrueDualPortALTERA: return "TrueDualPortALTERA";
++ case SpvDecorationBurstCoalesceALTERA: return "BurstCoalesceALTERA";
++ case SpvDecorationCacheSizeALTERA: return "CacheSizeALTERA";
++ case SpvDecorationDontStaticallyCoalesceALTERA: return "DontStaticallyCoalesceALTERA";
++ case SpvDecorationPrefetchALTERA: return "PrefetchALTERA";
++ case SpvDecorationStallEnableALTERA: return "StallEnableALTERA";
++ case SpvDecorationFuseLoopsInFunctionALTERA: return "FuseLoopsInFunctionALTERA";
++ case SpvDecorationMathOpDSPModeALTERA: return "MathOpDSPModeALTERA";
++ case SpvDecorationAliasScopeINTEL: return "AliasScopeINTEL";
++ case SpvDecorationNoAliasINTEL: return "NoAliasINTEL";
++ case SpvDecorationInitiationIntervalALTERA: return "InitiationIntervalALTERA";
++ case SpvDecorationMaxConcurrencyALTERA: return "MaxConcurrencyALTERA";
++ case SpvDecorationPipelineEnableALTERA: return "PipelineEnableALTERA";
++ case SpvDecorationBufferLocationALTERA: return "BufferLocationALTERA";
++ case SpvDecorationIOPipeStorageALTERA: return "IOPipeStorageALTERA";
++ case SpvDecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL";
++ case SpvDecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL";
++ case SpvDecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL";
++ case SpvDecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL";
++ case SpvDecorationStallFreeALTERA: return "StallFreeALTERA";
++ case SpvDecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL";
++ case SpvDecorationLatencyControlLabelALTERA: return "LatencyControlLabelALTERA";
++ case SpvDecorationLatencyControlConstraintALTERA: return "LatencyControlConstraintALTERA";
++ case SpvDecorationConduitKernelArgumentALTERA: return "ConduitKernelArgumentALTERA";
++ case SpvDecorationRegisterMapKernelArgumentALTERA: return "RegisterMapKernelArgumentALTERA";
++ case SpvDecorationMMHostInterfaceAddressWidthALTERA: return "MMHostInterfaceAddressWidthALTERA";
++ case SpvDecorationMMHostInterfaceDataWidthALTERA: return "MMHostInterfaceDataWidthALTERA";
++ case SpvDecorationMMHostInterfaceLatencyALTERA: return "MMHostInterfaceLatencyALTERA";
++ case SpvDecorationMMHostInterfaceReadWriteModeALTERA: return "MMHostInterfaceReadWriteModeALTERA";
++ case SpvDecorationMMHostInterfaceMaxBurstALTERA: return "MMHostInterfaceMaxBurstALTERA";
++ case SpvDecorationMMHostInterfaceWaitRequestALTERA: return "MMHostInterfaceWaitRequestALTERA";
++ case SpvDecorationStableKernelArgumentALTERA: return "StableKernelArgumentALTERA";
++ case SpvDecorationHostAccessINTEL: return "HostAccessINTEL";
++ case SpvDecorationInitModeALTERA: return "InitModeALTERA";
++ case SpvDecorationImplementInRegisterMapALTERA: return "ImplementInRegisterMapALTERA";
++ case SpvDecorationConditionalINTEL: return "ConditionalINTEL";
++ case SpvDecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL";
++ case SpvDecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvBuiltInToString(SpvBuiltIn value) {
++ switch (value) {
++ case SpvBuiltInPosition: return "Position";
++ case SpvBuiltInPointSize: return "PointSize";
++ case SpvBuiltInClipDistance: return "ClipDistance";
++ case SpvBuiltInCullDistance: return "CullDistance";
++ case SpvBuiltInVertexId: return "VertexId";
++ case SpvBuiltInInstanceId: return "InstanceId";
++ case SpvBuiltInPrimitiveId: return "PrimitiveId";
++ case SpvBuiltInInvocationId: return "InvocationId";
++ case SpvBuiltInLayer: return "Layer";
++ case SpvBuiltInViewportIndex: return "ViewportIndex";
++ case SpvBuiltInTessLevelOuter: return "TessLevelOuter";
++ case SpvBuiltInTessLevelInner: return "TessLevelInner";
++ case SpvBuiltInTessCoord: return "TessCoord";
++ case SpvBuiltInPatchVertices: return "PatchVertices";
++ case SpvBuiltInFragCoord: return "FragCoord";
++ case SpvBuiltInPointCoord: return "PointCoord";
++ case SpvBuiltInFrontFacing: return "FrontFacing";
++ case SpvBuiltInSampleId: return "SampleId";
++ case SpvBuiltInSamplePosition: return "SamplePosition";
++ case SpvBuiltInSampleMask: return "SampleMask";
++ case SpvBuiltInFragDepth: return "FragDepth";
++ case SpvBuiltInHelperInvocation: return "HelperInvocation";
++ case SpvBuiltInNumWorkgroups: return "NumWorkgroups";
++ case SpvBuiltInWorkgroupSize: return "WorkgroupSize";
++ case SpvBuiltInWorkgroupId: return "WorkgroupId";
++ case SpvBuiltInLocalInvocationId: return "LocalInvocationId";
++ case SpvBuiltInGlobalInvocationId: return "GlobalInvocationId";
++ case SpvBuiltInLocalInvocationIndex: return "LocalInvocationIndex";
++ case SpvBuiltInWorkDim: return "WorkDim";
++ case SpvBuiltInGlobalSize: return "GlobalSize";
++ case SpvBuiltInEnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize";
++ case SpvBuiltInGlobalOffset: return "GlobalOffset";
++ case SpvBuiltInGlobalLinearId: return "GlobalLinearId";
++ case SpvBuiltInSubgroupSize: return "SubgroupSize";
++ case SpvBuiltInSubgroupMaxSize: return "SubgroupMaxSize";
++ case SpvBuiltInNumSubgroups: return "NumSubgroups";
++ case SpvBuiltInNumEnqueuedSubgroups: return "NumEnqueuedSubgroups";
++ case SpvBuiltInSubgroupId: return "SubgroupId";
++ case SpvBuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
++ case SpvBuiltInVertexIndex: return "VertexIndex";
++ case SpvBuiltInInstanceIndex: return "InstanceIndex";
++ case SpvBuiltInCoreIDARM: return "CoreIDARM";
++ case SpvBuiltInCoreCountARM: return "CoreCountARM";
++ case SpvBuiltInCoreMaxIDARM: return "CoreMaxIDARM";
++ case SpvBuiltInWarpIDARM: return "WarpIDARM";
++ case SpvBuiltInWarpMaxIDARM: return "WarpMaxIDARM";
++ case SpvBuiltInSubgroupEqMask: return "SubgroupEqMask";
++ case SpvBuiltInSubgroupGeMask: return "SubgroupGeMask";
++ case SpvBuiltInSubgroupGtMask: return "SubgroupGtMask";
++ case SpvBuiltInSubgroupLeMask: return "SubgroupLeMask";
++ case SpvBuiltInSubgroupLtMask: return "SubgroupLtMask";
++ case SpvBuiltInBaseVertex: return "BaseVertex";
++ case SpvBuiltInBaseInstance: return "BaseInstance";
++ case SpvBuiltInDrawIndex: return "DrawIndex";
++ case SpvBuiltInPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR";
++ case SpvBuiltInDeviceIndex: return "DeviceIndex";
++ case SpvBuiltInViewIndex: return "ViewIndex";
++ case SpvBuiltInShadingRateKHR: return "ShadingRateKHR";
++ case SpvBuiltInTileOffsetQCOM: return "TileOffsetQCOM";
++ case SpvBuiltInTileDimensionQCOM: return "TileDimensionQCOM";
++ case SpvBuiltInTileApronSizeQCOM: return "TileApronSizeQCOM";
++ case SpvBuiltInBaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD";
++ case SpvBuiltInBaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD";
++ case SpvBuiltInBaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD";
++ case SpvBuiltInBaryCoordSmoothAMD: return "BaryCoordSmoothAMD";
++ case SpvBuiltInBaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD";
++ case SpvBuiltInBaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD";
++ case SpvBuiltInBaryCoordPullModelAMD: return "BaryCoordPullModelAMD";
++ case SpvBuiltInFragStencilRefEXT: return "FragStencilRefEXT";
++ case SpvBuiltInRemainingRecursionLevelsAMDX: return "RemainingRecursionLevelsAMDX";
++ case SpvBuiltInShaderIndexAMDX: return "ShaderIndexAMDX";
++ case SpvBuiltInSamplerHeapEXT: return "SamplerHeapEXT";
++ case SpvBuiltInResourceHeapEXT: return "ResourceHeapEXT";
++ case SpvBuiltInViewportMaskNV: return "ViewportMaskNV";
++ case SpvBuiltInSecondaryPositionNV: return "SecondaryPositionNV";
++ case SpvBuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
++ case SpvBuiltInPositionPerViewNV: return "PositionPerViewNV";
++ case SpvBuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
++ case SpvBuiltInFullyCoveredEXT: return "FullyCoveredEXT";
++ case SpvBuiltInTaskCountNV: return "TaskCountNV";
++ case SpvBuiltInPrimitiveCountNV: return "PrimitiveCountNV";
++ case SpvBuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV";
++ case SpvBuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV";
++ case SpvBuiltInCullDistancePerViewNV: return "CullDistancePerViewNV";
++ case SpvBuiltInLayerPerViewNV: return "LayerPerViewNV";
++ case SpvBuiltInMeshViewCountNV: return "MeshViewCountNV";
++ case SpvBuiltInMeshViewIndicesNV: return "MeshViewIndicesNV";
++ case SpvBuiltInBaryCoordKHR: return "BaryCoordKHR";
++ case SpvBuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR";
++ case SpvBuiltInFragSizeEXT: return "FragSizeEXT";
++ case SpvBuiltInFragInvocationCountEXT: return "FragInvocationCountEXT";
++ case SpvBuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT";
++ case SpvBuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT";
++ case SpvBuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT";
++ case SpvBuiltInCullPrimitiveEXT: return "CullPrimitiveEXT";
++ case SpvBuiltInLaunchIdKHR: return "LaunchIdKHR";
++ case SpvBuiltInLaunchSizeKHR: return "LaunchSizeKHR";
++ case SpvBuiltInWorldRayOriginKHR: return "WorldRayOriginKHR";
++ case SpvBuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR";
++ case SpvBuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR";
++ case SpvBuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
++ case SpvBuiltInRayTminKHR: return "RayTminKHR";
++ case SpvBuiltInRayTmaxKHR: return "RayTmaxKHR";
++ case SpvBuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
++ case SpvBuiltInObjectToWorldKHR: return "ObjectToWorldKHR";
++ case SpvBuiltInWorldToObjectKHR: return "WorldToObjectKHR";
++ case SpvBuiltInHitTNV: return "HitTNV";
++ case SpvBuiltInHitKindKHR: return "HitKindKHR";
++ case SpvBuiltInCurrentRayTimeNV: return "CurrentRayTimeNV";
++ case SpvBuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR";
++ case SpvBuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV";
++ case SpvBuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV";
++ case SpvBuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR";
++ case SpvBuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR";
++ case SpvBuiltInHitIsSphereNV: return "HitIsSphereNV";
++ case SpvBuiltInHitIsLSSNV: return "HitIsLSSNV";
++ case SpvBuiltInHitSpherePositionNV: return "HitSpherePositionNV";
++ case SpvBuiltInWarpsPerSMNV: return "WarpsPerSMNV";
++ case SpvBuiltInSMCountNV: return "SMCountNV";
++ case SpvBuiltInWarpIDNV: return "WarpIDNV";
++ case SpvBuiltInSMIDNV: return "SMIDNV";
++ case SpvBuiltInHitLSSPositionsNV: return "HitLSSPositionsNV";
++ case SpvBuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
++ case SpvBuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
++ case SpvBuiltInHitSphereRadiusNV: return "HitSphereRadiusNV";
++ case SpvBuiltInHitLSSRadiiNV: return "HitLSSRadiiNV";
++ case SpvBuiltInClusterIDNV: return "ClusterIDNV";
++ case SpvBuiltInCullMaskKHR: return "CullMaskKHR";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvScopeToString(SpvScope value) {
++ switch (value) {
++ case SpvScopeCrossDevice: return "CrossDevice";
++ case SpvScopeDevice: return "Device";
++ case SpvScopeWorkgroup: return "Workgroup";
++ case SpvScopeSubgroup: return "Subgroup";
++ case SpvScopeInvocation: return "Invocation";
++ case SpvScopeQueueFamily: return "QueueFamily";
++ case SpvScopeShaderCallKHR: return "ShaderCallKHR";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvGroupOperationToString(SpvGroupOperation value) {
++ switch (value) {
++ case SpvGroupOperationReduce: return "Reduce";
++ case SpvGroupOperationInclusiveScan: return "InclusiveScan";
++ case SpvGroupOperationExclusiveScan: return "ExclusiveScan";
++ case SpvGroupOperationClusteredReduce: return "ClusteredReduce";
++ case SpvGroupOperationPartitionedReduceEXT: return "PartitionedReduceEXT";
++ case SpvGroupOperationPartitionedInclusiveScanEXT: return "PartitionedInclusiveScanEXT";
++ case SpvGroupOperationPartitionedExclusiveScanEXT: return "PartitionedExclusiveScanEXT";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvKernelEnqueueFlagsToString(SpvKernelEnqueueFlags value) {
++ switch (value) {
++ case SpvKernelEnqueueFlagsNoWait: return "NoWait";
++ case SpvKernelEnqueueFlagsWaitKernel: return "WaitKernel";
++ case SpvKernelEnqueueFlagsWaitWorkGroup: return "WaitWorkGroup";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvCapabilityToString(SpvCapability value) {
++ switch (value) {
++ case SpvCapabilityMatrix: return "Matrix";
++ case SpvCapabilityShader: return "Shader";
++ case SpvCapabilityGeometry: return "Geometry";
++ case SpvCapabilityTessellation: return "Tessellation";
++ case SpvCapabilityAddresses: return "Addresses";
++ case SpvCapabilityLinkage: return "Linkage";
++ case SpvCapabilityKernel: return "Kernel";
++ case SpvCapabilityVector16: return "Vector16";
++ case SpvCapabilityFloat16Buffer: return "Float16Buffer";
++ case SpvCapabilityFloat16: return "Float16";
++ case SpvCapabilityFloat64: return "Float64";
++ case SpvCapabilityInt64: return "Int64";
++ case SpvCapabilityInt64Atomics: return "Int64Atomics";
++ case SpvCapabilityImageBasic: return "ImageBasic";
++ case SpvCapabilityImageReadWrite: return "ImageReadWrite";
++ case SpvCapabilityImageMipmap: return "ImageMipmap";
++ case SpvCapabilityPipes: return "Pipes";
++ case SpvCapabilityGroups: return "Groups";
++ case SpvCapabilityDeviceEnqueue: return "DeviceEnqueue";
++ case SpvCapabilityLiteralSampler: return "LiteralSampler";
++ case SpvCapabilityAtomicStorage: return "AtomicStorage";
++ case SpvCapabilityInt16: return "Int16";
++ case SpvCapabilityTessellationPointSize: return "TessellationPointSize";
++ case SpvCapabilityGeometryPointSize: return "GeometryPointSize";
++ case SpvCapabilityImageGatherExtended: return "ImageGatherExtended";
++ case SpvCapabilityStorageImageMultisample: return "StorageImageMultisample";
++ case SpvCapabilityUniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing";
++ case SpvCapabilitySampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing";
++ case SpvCapabilityStorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing";
++ case SpvCapabilityStorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing";
++ case SpvCapabilityClipDistance: return "ClipDistance";
++ case SpvCapabilityCullDistance: return "CullDistance";
++ case SpvCapabilityImageCubeArray: return "ImageCubeArray";
++ case SpvCapabilitySampleRateShading: return "SampleRateShading";
++ case SpvCapabilityImageRect: return "ImageRect";
++ case SpvCapabilitySampledRect: return "SampledRect";
++ case SpvCapabilityGenericPointer: return "GenericPointer";
++ case SpvCapabilityInt8: return "Int8";
++ case SpvCapabilityInputAttachment: return "InputAttachment";
++ case SpvCapabilitySparseResidency: return "SparseResidency";
++ case SpvCapabilityMinLod: return "MinLod";
++ case SpvCapabilitySampled1D: return "Sampled1D";
++ case SpvCapabilityImage1D: return "Image1D";
++ case SpvCapabilitySampledCubeArray: return "SampledCubeArray";
++ case SpvCapabilitySampledBuffer: return "SampledBuffer";
++ case SpvCapabilityImageBuffer: return "ImageBuffer";
++ case SpvCapabilityImageMSArray: return "ImageMSArray";
++ case SpvCapabilityStorageImageExtendedFormats: return "StorageImageExtendedFormats";
++ case SpvCapabilityImageQuery: return "ImageQuery";
++ case SpvCapabilityDerivativeControl: return "DerivativeControl";
++ case SpvCapabilityInterpolationFunction: return "InterpolationFunction";
++ case SpvCapabilityTransformFeedback: return "TransformFeedback";
++ case SpvCapabilityGeometryStreams: return "GeometryStreams";
++ case SpvCapabilityStorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat";
++ case SpvCapabilityStorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat";
++ case SpvCapabilityMultiViewport: return "MultiViewport";
++ case SpvCapabilitySubgroupDispatch: return "SubgroupDispatch";
++ case SpvCapabilityNamedBarrier: return "NamedBarrier";
++ case SpvCapabilityPipeStorage: return "PipeStorage";
++ case SpvCapabilityGroupNonUniform: return "GroupNonUniform";
++ case SpvCapabilityGroupNonUniformVote: return "GroupNonUniformVote";
++ case SpvCapabilityGroupNonUniformArithmetic: return "GroupNonUniformArithmetic";
++ case SpvCapabilityGroupNonUniformBallot: return "GroupNonUniformBallot";
++ case SpvCapabilityGroupNonUniformShuffle: return "GroupNonUniformShuffle";
++ case SpvCapabilityGroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative";
++ case SpvCapabilityGroupNonUniformClustered: return "GroupNonUniformClustered";
++ case SpvCapabilityGroupNonUniformQuad: return "GroupNonUniformQuad";
++ case SpvCapabilityShaderLayer: return "ShaderLayer";
++ case SpvCapabilityShaderViewportIndex: return "ShaderViewportIndex";
++ case SpvCapabilityUniformDecoration: return "UniformDecoration";
++ case SpvCapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
++ case SpvCapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
++ case SpvCapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
++ case SpvCapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
++ case SpvCapabilityTensorsARM: return "TensorsARM";
++ case SpvCapabilityStorageTensorArrayDynamicIndexingARM: return "StorageTensorArrayDynamicIndexingARM";
++ case SpvCapabilityStorageTensorArrayNonUniformIndexingARM: return "StorageTensorArrayNonUniformIndexingARM";
++ case SpvCapabilityGraphARM: return "GraphARM";
++ case SpvCapabilityCooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM";
++ case SpvCapabilityFloat8EXT: return "Float8EXT";
++ case SpvCapabilityFloat8CooperativeMatrixEXT: return "Float8CooperativeMatrixEXT";
++ case SpvCapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR";
++ case SpvCapabilitySubgroupBallotKHR: return "SubgroupBallotKHR";
++ case SpvCapabilityDrawParameters: return "DrawParameters";
++ case SpvCapabilityWorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR";
++ case SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
++ case SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
++ case SpvCapabilitySubgroupVoteKHR: return "SubgroupVoteKHR";
++ case SpvCapabilityStorageBuffer16BitAccess: return "StorageBuffer16BitAccess";
++ case SpvCapabilityStorageUniform16: return "StorageUniform16";
++ case SpvCapabilityStoragePushConstant16: return "StoragePushConstant16";
++ case SpvCapabilityStorageInputOutput16: return "StorageInputOutput16";
++ case SpvCapabilityDeviceGroup: return "DeviceGroup";
++ case SpvCapabilityMultiView: return "MultiView";
++ case SpvCapabilityVariablePointersStorageBuffer: return "VariablePointersStorageBuffer";
++ case SpvCapabilityVariablePointers: return "VariablePointers";
++ case SpvCapabilityAtomicStorageOps: return "AtomicStorageOps";
++ case SpvCapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage";
++ case SpvCapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess";
++ case SpvCapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess";
++ case SpvCapabilityStoragePushConstant8: return "StoragePushConstant8";
++ case SpvCapabilityDenormPreserve: return "DenormPreserve";
++ case SpvCapabilityDenormFlushToZero: return "DenormFlushToZero";
++ case SpvCapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
++ case SpvCapabilityRoundingModeRTE: return "RoundingModeRTE";
++ case SpvCapabilityRoundingModeRTZ: return "RoundingModeRTZ";
++ case SpvCapabilityRayQueryProvisionalKHR: return "RayQueryProvisionalKHR";
++ case SpvCapabilityRayQueryKHR: return "RayQueryKHR";
++ case SpvCapabilityUntypedPointersKHR: return "UntypedPointersKHR";
++ case SpvCapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
++ case SpvCapabilityRayTracingKHR: return "RayTracingKHR";
++ case SpvCapabilityTextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM";
++ case SpvCapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM";
++ case SpvCapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM";
++ case SpvCapabilityTileShadingQCOM: return "TileShadingQCOM";
++ case SpvCapabilityCooperativeMatrixConversionQCOM: return "CooperativeMatrixConversionQCOM";
++ case SpvCapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM";
++ case SpvCapabilityFloat16ImageAMD: return "Float16ImageAMD";
++ case SpvCapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD";
++ case SpvCapabilityFragmentMaskAMD: return "FragmentMaskAMD";
++ case SpvCapabilityStencilExportEXT: return "StencilExportEXT";
++ case SpvCapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD";
++ case SpvCapabilityInt64ImageEXT: return "Int64ImageEXT";
++ case SpvCapabilityShaderClockKHR: return "ShaderClockKHR";
++ case SpvCapabilityShaderEnqueueAMDX: return "ShaderEnqueueAMDX";
++ case SpvCapabilityQuadControlKHR: return "QuadControlKHR";
++ case SpvCapabilityInt4TypeINTEL: return "Int4TypeINTEL";
++ case SpvCapabilityInt4CooperativeMatrixINTEL: return "Int4CooperativeMatrixINTEL";
++ case SpvCapabilityBFloat16TypeKHR: return "BFloat16TypeKHR";
++ case SpvCapabilityBFloat16DotProductKHR: return "BFloat16DotProductKHR";
++ case SpvCapabilityBFloat16CooperativeMatrixKHR: return "BFloat16CooperativeMatrixKHR";
++ case SpvCapabilityAbortKHR: return "AbortKHR";
++ case SpvCapabilityDescriptorHeapEXT: return "DescriptorHeapEXT";
++ case SpvCapabilityConstantDataKHR: return "ConstantDataKHR";
++ case SpvCapabilityPoisonFreezeKHR: return "PoisonFreezeKHR";
++ 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 SpvCapabilityGroupNonUniformPartitionedEXT: return "GroupNonUniformPartitionedEXT";
++ 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 SpvCapabilityShaderInvocationReorderEXT: return "ShaderInvocationReorderEXT";
++ case SpvCapabilityBindlessTextureNV: return "BindlessTextureNV";
++ case SpvCapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR";
++ case SpvCapabilityCooperativeVectorNV: return "CooperativeVectorNV";
++ case SpvCapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV";
++ case SpvCapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
++ case SpvCapabilityRawAccessChainsNV: return "RawAccessChainsNV";
++ case SpvCapabilityRayTracingSpheresGeometryNV: return "RayTracingSpheresGeometryNV";
++ case SpvCapabilityRayTracingLinearSweptSpheresGeometryNV: return "RayTracingLinearSweptSpheresGeometryNV";
++ case SpvCapabilityPushConstantBanksNV: return "PushConstantBanksNV";
++ case SpvCapabilityLongVectorEXT: return "LongVectorEXT";
++ case SpvCapabilityShader64BitIndexingEXT: return "Shader64BitIndexingEXT";
++ case SpvCapabilityCooperativeMatrixReductionsNV: return "CooperativeMatrixReductionsNV";
++ case SpvCapabilityCooperativeMatrixConversionsNV: return "CooperativeMatrixConversionsNV";
++ case SpvCapabilityCooperativeMatrixPerElementOperationsNV: return "CooperativeMatrixPerElementOperationsNV";
++ case SpvCapabilityCooperativeMatrixTensorAddressingNV: return "CooperativeMatrixTensorAddressingNV";
++ case SpvCapabilityCooperativeMatrixBlockLoadsNV: return "CooperativeMatrixBlockLoadsNV";
++ case SpvCapabilityCooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV";
++ case SpvCapabilityRayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV";
++ case SpvCapabilityTensorAddressingNV: return "TensorAddressingNV";
++ case SpvCapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
++ case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
++ case SpvCapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
++ case SpvCapabilitySubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL";
++ case SpvCapabilityRoundToInfinityINTEL: return "RoundToInfinityINTEL";
++ case SpvCapabilityFloatingPointModeINTEL: return "FloatingPointModeINTEL";
++ case SpvCapabilityIntegerFunctions2INTEL: return "IntegerFunctions2INTEL";
++ case SpvCapabilityFunctionPointersINTEL: return "FunctionPointersINTEL";
++ case SpvCapabilityIndirectReferencesINTEL: return "IndirectReferencesINTEL";
++ case SpvCapabilityAsmINTEL: return "AsmINTEL";
++ case SpvCapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT";
++ case SpvCapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT";
++ case SpvCapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT";
++ case SpvCapabilityVectorComputeINTEL: return "VectorComputeINTEL";
++ case SpvCapabilityVectorAnyINTEL: return "VectorAnyINTEL";
++ case SpvCapabilityExpectAssumeKHR: return "ExpectAssumeKHR";
++ case SpvCapabilitySubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL";
++ case SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL";
++ case SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL";
++ case SpvCapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL";
++ case SpvCapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL";
++ case SpvCapabilityFPGAMemoryAttributesALTERA: return "FPGAMemoryAttributesALTERA";
++ case SpvCapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL";
++ case SpvCapabilityArbitraryPrecisionIntegersALTERA: return "ArbitraryPrecisionIntegersALTERA";
++ case SpvCapabilityArbitraryPrecisionFloatingPointALTERA: return "ArbitraryPrecisionFloatingPointALTERA";
++ case SpvCapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL";
++ case SpvCapabilityFPGALoopControlsALTERA: return "FPGALoopControlsALTERA";
++ case SpvCapabilityKernelAttributesINTEL: return "KernelAttributesINTEL";
++ case SpvCapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL";
++ case SpvCapabilityFPGAMemoryAccessesALTERA: return "FPGAMemoryAccessesALTERA";
++ case SpvCapabilityFPGAClusterAttributesALTERA: return "FPGAClusterAttributesALTERA";
++ case SpvCapabilityLoopFuseALTERA: return "LoopFuseALTERA";
++ case SpvCapabilityFPGADSPControlALTERA: return "FPGADSPControlALTERA";
++ case SpvCapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL";
++ case SpvCapabilityFPGAInvocationPipeliningAttributesALTERA: return "FPGAInvocationPipeliningAttributesALTERA";
++ case SpvCapabilityFPGABufferLocationALTERA: return "FPGABufferLocationALTERA";
++ case SpvCapabilityArbitraryPrecisionFixedPointALTERA: return "ArbitraryPrecisionFixedPointALTERA";
++ case SpvCapabilityUSMStorageClassesALTERA: return "USMStorageClassesALTERA";
++ case SpvCapabilityRuntimeAlignedAttributeALTERA: return "RuntimeAlignedAttributeALTERA";
++ case SpvCapabilityIOPipesALTERA: return "IOPipesALTERA";
++ case SpvCapabilityBlockingPipesALTERA: return "BlockingPipesALTERA";
++ case SpvCapabilityFPGARegALTERA: return "FPGARegALTERA";
++ 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 SpvCapabilityFMAKHR: return "FMAKHR";
++ 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 SpvCapabilityFPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA";
++ case SpvCapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
++ case SpvCapabilityTaskSequenceALTERA: return "TaskSequenceALTERA";
++ case SpvCapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL";
++ case SpvCapabilityFPGALatencyControlALTERA: return "FPGALatencyControlALTERA";
++ case SpvCapabilityFPGAArgumentInterfacesALTERA: return "FPGAArgumentInterfacesALTERA";
++ case SpvCapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL";
++ case SpvCapabilityGlobalVariableFPGADecorationsALTERA: return "GlobalVariableFPGADecorationsALTERA";
++ case SpvCapabilitySubgroupBufferPrefetchINTEL: return "SubgroupBufferPrefetchINTEL";
++ case SpvCapabilitySubgroup2DBlockIOINTEL: return "Subgroup2DBlockIOINTEL";
++ case SpvCapabilitySubgroup2DBlockTransformINTEL: return "Subgroup2DBlockTransformINTEL";
++ case SpvCapabilitySubgroup2DBlockTransposeINTEL: return "Subgroup2DBlockTransposeINTEL";
++ case SpvCapabilitySubgroupMatrixMultiplyAccumulateINTEL: return "SubgroupMatrixMultiplyAccumulateINTEL";
++ case SpvCapabilityTernaryBitwiseFunctionINTEL: return "TernaryBitwiseFunctionINTEL";
++ case SpvCapabilityUntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL";
++ case SpvCapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
++ case SpvCapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
++ case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
++ case SpvCapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
++ case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
++ case SpvCapabilityCacheControlsINTEL: return "CacheControlsINTEL";
++ case SpvCapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL";
++ case SpvCapabilityBindlessImagesINTEL: return "BindlessImagesINTEL";
++ case SpvCapabilityDotProductFloat16AccFloat32VALVE: return "DotProductFloat16AccFloat32VALVE";
++ case SpvCapabilityDotProductFloat16AccFloat16VALVE: return "DotProductFloat16AccFloat16VALVE";
++ case SpvCapabilityDotProductBFloat16AccVALVE: return "DotProductBFloat16AccVALVE";
++ case SpvCapabilityDotProductFloat8AccFloat32VALVE: return "DotProductFloat8AccFloat32VALVE";
++ 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 SpvInitializationModeQualifierInitOnDeviceReprogramALTERA: return "InitOnDeviceReprogramALTERA";
++ case SpvInitializationModeQualifierInitOnDeviceResetALTERA: return "InitOnDeviceResetALTERA";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvHostAccessQualifierToString(SpvHostAccessQualifier value) {
++ switch (value) {
++ case SpvHostAccessQualifierNoneINTEL: return "NoneINTEL";
++ case SpvHostAccessQualifierReadINTEL: return "ReadINTEL";
++ case SpvHostAccessQualifierWriteINTEL: return "WriteINTEL";
++ case SpvHostAccessQualifierReadWriteINTEL: return "ReadWriteINTEL";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvLoadCacheControlToString(SpvLoadCacheControl value) {
++ switch (value) {
++ case SpvLoadCacheControlUncachedINTEL: return "UncachedINTEL";
++ case SpvLoadCacheControlCachedINTEL: return "CachedINTEL";
++ case SpvLoadCacheControlStreamingINTEL: return "StreamingINTEL";
++ case SpvLoadCacheControlInvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL";
++ case SpvLoadCacheControlConstCachedINTEL: return "ConstCachedINTEL";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvStoreCacheControlToString(SpvStoreCacheControl value) {
++ switch (value) {
++ case SpvStoreCacheControlUncachedINTEL: return "UncachedINTEL";
++ case SpvStoreCacheControlWriteThroughINTEL: return "WriteThroughINTEL";
++ case SpvStoreCacheControlWriteBackINTEL: return "WriteBackINTEL";
++ case SpvStoreCacheControlStreamingINTEL: return "StreamingINTEL";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvNamedMaximumNumberOfRegistersToString(SpvNamedMaximumNumberOfRegisters value) {
++ switch (value) {
++ case SpvNamedMaximumNumberOfRegistersAutoINTEL: return "AutoINTEL";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvFPEncodingToString(SpvFPEncoding value) {
++ switch (value) {
++ case SpvFPEncodingBFloat16KHR: return "BFloat16KHR";
++ case SpvFPEncodingFloat8E4M3EXT: return "Float8E4M3EXT";
++ case SpvFPEncodingFloat8E5M2EXT: return "Float8E5M2EXT";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvCooperativeVectorMatrixLayoutToString(SpvCooperativeVectorMatrixLayout value) {
++ switch (value) {
++ case SpvCooperativeVectorMatrixLayoutRowMajorNV: return "RowMajorNV";
++ case SpvCooperativeVectorMatrixLayoutColumnMajorNV: return "ColumnMajorNV";
++ case SpvCooperativeVectorMatrixLayoutInferencingOptimalNV: return "InferencingOptimalNV";
++ case SpvCooperativeVectorMatrixLayoutTrainingOptimalNV: return "TrainingOptimalNV";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvComponentTypeToString(SpvComponentType value) {
++ switch (value) {
++ case SpvComponentTypeFloat16NV: return "Float16NV";
++ case SpvComponentTypeFloat32NV: return "Float32NV";
++ case SpvComponentTypeFloat64NV: return "Float64NV";
++ case SpvComponentTypeSignedInt8NV: return "SignedInt8NV";
++ case SpvComponentTypeSignedInt16NV: return "SignedInt16NV";
++ case SpvComponentTypeSignedInt32NV: return "SignedInt32NV";
++ case SpvComponentTypeSignedInt64NV: return "SignedInt64NV";
++ case SpvComponentTypeUnsignedInt8NV: return "UnsignedInt8NV";
++ case SpvComponentTypeUnsignedInt16NV: return "UnsignedInt16NV";
++ case SpvComponentTypeUnsignedInt32NV: return "UnsignedInt32NV";
++ case SpvComponentTypeUnsignedInt64NV: return "UnsignedInt64NV";
++ case SpvComponentTypeSignedInt8PackedNV: return "SignedInt8PackedNV";
++ case SpvComponentTypeUnsignedInt8PackedNV: return "UnsignedInt8PackedNV";
++ case SpvComponentTypeFloatE4M3NV: return "FloatE4M3NV";
++ case SpvComponentTypeFloatE5M2NV: return "FloatE5M2NV";
++ default: return "Unknown";
++ }
++ }
++
++ inline const char* SpvOpToString(SpvOp value) {
++ switch (value) {
++ case SpvOpNop: return "OpNop";
++ case SpvOpUndef: return "OpUndef";
++ case SpvOpSourceContinued: return "OpSourceContinued";
++ case SpvOpSource: return "OpSource";
++ case SpvOpSourceExtension: return "OpSourceExtension";
++ case SpvOpName: return "OpName";
++ case SpvOpMemberName: return "OpMemberName";
++ case SpvOpString: return "OpString";
++ case SpvOpLine: return "OpLine";
++ case SpvOpExtension: return "OpExtension";
++ case SpvOpExtInstImport: return "OpExtInstImport";
++ case SpvOpExtInst: return "OpExtInst";
++ case SpvOpMemoryModel: return "OpMemoryModel";
++ case SpvOpEntryPoint: return "OpEntryPoint";
++ case SpvOpExecutionMode: return "OpExecutionMode";
++ case SpvOpCapability: return "OpCapability";
++ case SpvOpTypeVoid: return "OpTypeVoid";
++ case SpvOpTypeBool: return "OpTypeBool";
++ case SpvOpTypeInt: return "OpTypeInt";
++ case SpvOpTypeFloat: return "OpTypeFloat";
++ case SpvOpTypeVector: return "OpTypeVector";
++ case SpvOpTypeMatrix: return "OpTypeMatrix";
++ case SpvOpTypeImage: return "OpTypeImage";
++ case SpvOpTypeSampler: return "OpTypeSampler";
++ case SpvOpTypeSampledImage: return "OpTypeSampledImage";
++ case SpvOpTypeArray: return "OpTypeArray";
++ case SpvOpTypeRuntimeArray: return "OpTypeRuntimeArray";
++ case SpvOpTypeStruct: return "OpTypeStruct";
++ case SpvOpTypeOpaque: return "OpTypeOpaque";
++ case SpvOpTypePointer: return "OpTypePointer";
++ case SpvOpTypeFunction: return "OpTypeFunction";
++ case SpvOpTypeEvent: return "OpTypeEvent";
++ case SpvOpTypeDeviceEvent: return "OpTypeDeviceEvent";
++ case SpvOpTypeReserveId: return "OpTypeReserveId";
++ case SpvOpTypeQueue: return "OpTypeQueue";
++ case SpvOpTypePipe: return "OpTypePipe";
++ case SpvOpTypeForwardPointer: return "OpTypeForwardPointer";
++ case SpvOpConstantTrue: return "OpConstantTrue";
++ case SpvOpConstantFalse: return "OpConstantFalse";
++ case SpvOpConstant: return "OpConstant";
++ case SpvOpConstantComposite: return "OpConstantComposite";
++ case SpvOpConstantSampler: return "OpConstantSampler";
++ case SpvOpConstantNull: return "OpConstantNull";
++ case SpvOpSpecConstantTrue: return "OpSpecConstantTrue";
++ case SpvOpSpecConstantFalse: return "OpSpecConstantFalse";
++ case SpvOpSpecConstant: return "OpSpecConstant";
++ case SpvOpSpecConstantComposite: return "OpSpecConstantComposite";
++ case SpvOpSpecConstantOp: return "OpSpecConstantOp";
++ case SpvOpFunction: return "OpFunction";
++ case SpvOpFunctionParameter: return "OpFunctionParameter";
++ case SpvOpFunctionEnd: return "OpFunctionEnd";
++ case SpvOpFunctionCall: return "OpFunctionCall";
++ case SpvOpVariable: return "OpVariable";
++ case SpvOpImageTexelPointer: return "OpImageTexelPointer";
++ case SpvOpLoad: return "OpLoad";
++ case SpvOpStore: return "OpStore";
++ case SpvOpCopyMemory: return "OpCopyMemory";
++ case SpvOpCopyMemorySized: return "OpCopyMemorySized";
++ case SpvOpAccessChain: return "OpAccessChain";
++ case SpvOpInBoundsAccessChain: return "OpInBoundsAccessChain";
++ case SpvOpPtrAccessChain: return "OpPtrAccessChain";
++ case SpvOpArrayLength: return "OpArrayLength";
++ case SpvOpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics";
++ case SpvOpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain";
++ case SpvOpDecorate: return "OpDecorate";
++ case SpvOpMemberDecorate: return "OpMemberDecorate";
++ case SpvOpDecorationGroup: return "OpDecorationGroup";
++ case SpvOpGroupDecorate: return "OpGroupDecorate";
++ case SpvOpGroupMemberDecorate: return "OpGroupMemberDecorate";
++ case SpvOpVectorExtractDynamic: return "OpVectorExtractDynamic";
++ case SpvOpVectorInsertDynamic: return "OpVectorInsertDynamic";
++ case SpvOpVectorShuffle: return "OpVectorShuffle";
++ case SpvOpCompositeConstruct: return "OpCompositeConstruct";
++ case SpvOpCompositeExtract: return "OpCompositeExtract";
++ case SpvOpCompositeInsert: return "OpCompositeInsert";
++ case SpvOpCopyObject: return "OpCopyObject";
++ case SpvOpTranspose: return "OpTranspose";
++ case SpvOpSampledImage: return "OpSampledImage";
++ case SpvOpImageSampleImplicitLod: return "OpImageSampleImplicitLod";
++ case SpvOpImageSampleExplicitLod: return "OpImageSampleExplicitLod";
++ case SpvOpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod";
++ case SpvOpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod";
++ case SpvOpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod";
++ case SpvOpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod";
++ case SpvOpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod";
++ case SpvOpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod";
++ case SpvOpImageFetch: return "OpImageFetch";
++ case SpvOpImageGather: return "OpImageGather";
++ case SpvOpImageDrefGather: return "OpImageDrefGather";
++ case SpvOpImageRead: return "OpImageRead";
++ case SpvOpImageWrite: return "OpImageWrite";
++ case SpvOpImage: return "OpImage";
++ case SpvOpImageQueryFormat: return "OpImageQueryFormat";
++ case SpvOpImageQueryOrder: return "OpImageQueryOrder";
++ case SpvOpImageQuerySizeLod: return "OpImageQuerySizeLod";
++ case SpvOpImageQuerySize: return "OpImageQuerySize";
++ case SpvOpImageQueryLod: return "OpImageQueryLod";
++ case SpvOpImageQueryLevels: return "OpImageQueryLevels";
++ case SpvOpImageQuerySamples: return "OpImageQuerySamples";
++ case SpvOpConvertFToU: return "OpConvertFToU";
++ case SpvOpConvertFToS: return "OpConvertFToS";
++ case SpvOpConvertSToF: return "OpConvertSToF";
++ case SpvOpConvertUToF: return "OpConvertUToF";
++ case SpvOpUConvert: return "OpUConvert";
++ case SpvOpSConvert: return "OpSConvert";
++ case SpvOpFConvert: return "OpFConvert";
++ case SpvOpQuantizeToF16: return "OpQuantizeToF16";
++ case SpvOpConvertPtrToU: return "OpConvertPtrToU";
++ case SpvOpSatConvertSToU: return "OpSatConvertSToU";
++ case SpvOpSatConvertUToS: return "OpSatConvertUToS";
++ case SpvOpConvertUToPtr: return "OpConvertUToPtr";
++ case SpvOpPtrCastToGeneric: return "OpPtrCastToGeneric";
++ case SpvOpGenericCastToPtr: return "OpGenericCastToPtr";
++ case SpvOpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit";
++ case SpvOpBitcast: return "OpBitcast";
++ case SpvOpSNegate: return "OpSNegate";
++ case SpvOpFNegate: return "OpFNegate";
++ case SpvOpIAdd: return "OpIAdd";
++ case SpvOpFAdd: return "OpFAdd";
++ case SpvOpISub: return "OpISub";
++ case SpvOpFSub: return "OpFSub";
++ case SpvOpIMul: return "OpIMul";
++ case SpvOpFMul: return "OpFMul";
++ case SpvOpUDiv: return "OpUDiv";
++ case SpvOpSDiv: return "OpSDiv";
++ case SpvOpFDiv: return "OpFDiv";
++ case SpvOpUMod: return "OpUMod";
++ case SpvOpSRem: return "OpSRem";
++ case SpvOpSMod: return "OpSMod";
++ case SpvOpFRem: return "OpFRem";
++ case SpvOpFMod: return "OpFMod";
++ case SpvOpVectorTimesScalar: return "OpVectorTimesScalar";
++ case SpvOpMatrixTimesScalar: return "OpMatrixTimesScalar";
++ case SpvOpVectorTimesMatrix: return "OpVectorTimesMatrix";
++ case SpvOpMatrixTimesVector: return "OpMatrixTimesVector";
++ case SpvOpMatrixTimesMatrix: return "OpMatrixTimesMatrix";
++ case SpvOpOuterProduct: return "OpOuterProduct";
++ case SpvOpDot: return "OpDot";
++ case SpvOpIAddCarry: return "OpIAddCarry";
++ case SpvOpISubBorrow: return "OpISubBorrow";
++ case SpvOpUMulExtended: return "OpUMulExtended";
++ case SpvOpSMulExtended: return "OpSMulExtended";
++ case SpvOpAny: return "OpAny";
++ case SpvOpAll: return "OpAll";
++ case SpvOpIsNan: return "OpIsNan";
++ case SpvOpIsInf: return "OpIsInf";
++ case SpvOpIsFinite: return "OpIsFinite";
++ case SpvOpIsNormal: return "OpIsNormal";
++ case SpvOpSignBitSet: return "OpSignBitSet";
++ case SpvOpLessOrGreater: return "OpLessOrGreater";
++ case SpvOpOrdered: return "OpOrdered";
++ case SpvOpUnordered: return "OpUnordered";
++ case SpvOpLogicalEqual: return "OpLogicalEqual";
++ case SpvOpLogicalNotEqual: return "OpLogicalNotEqual";
++ case SpvOpLogicalOr: return "OpLogicalOr";
++ case SpvOpLogicalAnd: return "OpLogicalAnd";
++ case SpvOpLogicalNot: return "OpLogicalNot";
++ case SpvOpSelect: return "OpSelect";
++ case SpvOpIEqual: return "OpIEqual";
++ case SpvOpINotEqual: return "OpINotEqual";
++ case SpvOpUGreaterThan: return "OpUGreaterThan";
++ case SpvOpSGreaterThan: return "OpSGreaterThan";
++ case SpvOpUGreaterThanEqual: return "OpUGreaterThanEqual";
++ case SpvOpSGreaterThanEqual: return "OpSGreaterThanEqual";
++ case SpvOpULessThan: return "OpULessThan";
++ case SpvOpSLessThan: return "OpSLessThan";
++ case SpvOpULessThanEqual: return "OpULessThanEqual";
++ case SpvOpSLessThanEqual: return "OpSLessThanEqual";
++ case SpvOpFOrdEqual: return "OpFOrdEqual";
++ case SpvOpFUnordEqual: return "OpFUnordEqual";
++ case SpvOpFOrdNotEqual: return "OpFOrdNotEqual";
++ case SpvOpFUnordNotEqual: return "OpFUnordNotEqual";
++ case SpvOpFOrdLessThan: return "OpFOrdLessThan";
++ case SpvOpFUnordLessThan: return "OpFUnordLessThan";
++ case SpvOpFOrdGreaterThan: return "OpFOrdGreaterThan";
++ case SpvOpFUnordGreaterThan: return "OpFUnordGreaterThan";
++ case SpvOpFOrdLessThanEqual: return "OpFOrdLessThanEqual";
++ case SpvOpFUnordLessThanEqual: return "OpFUnordLessThanEqual";
++ case SpvOpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual";
++ case SpvOpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual";
++ case SpvOpShiftRightLogical: return "OpShiftRightLogical";
++ case SpvOpShiftRightArithmetic: return "OpShiftRightArithmetic";
++ case SpvOpShiftLeftLogical: return "OpShiftLeftLogical";
++ case SpvOpBitwiseOr: return "OpBitwiseOr";
++ case SpvOpBitwiseXor: return "OpBitwiseXor";
++ case SpvOpBitwiseAnd: return "OpBitwiseAnd";
++ case SpvOpNot: return "OpNot";
++ case SpvOpBitFieldInsert: return "OpBitFieldInsert";
++ case SpvOpBitFieldSExtract: return "OpBitFieldSExtract";
++ case SpvOpBitFieldUExtract: return "OpBitFieldUExtract";
++ case SpvOpBitReverse: return "OpBitReverse";
++ case SpvOpBitCount: return "OpBitCount";
++ case SpvOpDPdx: return "OpDPdx";
++ case SpvOpDPdy: return "OpDPdy";
++ case SpvOpFwidth: return "OpFwidth";
++ case SpvOpDPdxFine: return "OpDPdxFine";
++ case SpvOpDPdyFine: return "OpDPdyFine";
++ case SpvOpFwidthFine: return "OpFwidthFine";
++ case SpvOpDPdxCoarse: return "OpDPdxCoarse";
++ case SpvOpDPdyCoarse: return "OpDPdyCoarse";
++ case SpvOpFwidthCoarse: return "OpFwidthCoarse";
++ case SpvOpEmitVertex: return "OpEmitVertex";
++ case SpvOpEndPrimitive: return "OpEndPrimitive";
++ case SpvOpEmitStreamVertex: return "OpEmitStreamVertex";
++ case SpvOpEndStreamPrimitive: return "OpEndStreamPrimitive";
++ case SpvOpControlBarrier: return "OpControlBarrier";
++ case SpvOpMemoryBarrier: return "OpMemoryBarrier";
++ case SpvOpAtomicLoad: return "OpAtomicLoad";
++ case SpvOpAtomicStore: return "OpAtomicStore";
++ case SpvOpAtomicExchange: return "OpAtomicExchange";
++ case SpvOpAtomicCompareExchange: return "OpAtomicCompareExchange";
++ case SpvOpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak";
++ case SpvOpAtomicIIncrement: return "OpAtomicIIncrement";
++ case SpvOpAtomicIDecrement: return "OpAtomicIDecrement";
++ case SpvOpAtomicIAdd: return "OpAtomicIAdd";
++ case SpvOpAtomicISub: return "OpAtomicISub";
++ case SpvOpAtomicSMin: return "OpAtomicSMin";
++ case SpvOpAtomicUMin: return "OpAtomicUMin";
++ case SpvOpAtomicSMax: return "OpAtomicSMax";
++ case SpvOpAtomicUMax: return "OpAtomicUMax";
++ case SpvOpAtomicAnd: return "OpAtomicAnd";
++ case SpvOpAtomicOr: return "OpAtomicOr";
++ case SpvOpAtomicXor: return "OpAtomicXor";
++ case SpvOpPhi: return "OpPhi";
++ case SpvOpLoopMerge: return "OpLoopMerge";
++ case SpvOpSelectionMerge: return "OpSelectionMerge";
++ case SpvOpLabel: return "OpLabel";
++ case SpvOpBranch: return "OpBranch";
++ case SpvOpBranchConditional: return "OpBranchConditional";
++ case SpvOpSwitch: return "OpSwitch";
++ case SpvOpKill: return "OpKill";
++ case SpvOpReturn: return "OpReturn";
++ case SpvOpReturnValue: return "OpReturnValue";
++ case SpvOpUnreachable: return "OpUnreachable";
++ case SpvOpLifetimeStart: return "OpLifetimeStart";
++ case SpvOpLifetimeStop: return "OpLifetimeStop";
++ case SpvOpGroupAsyncCopy: return "OpGroupAsyncCopy";
++ case SpvOpGroupWaitEvents: return "OpGroupWaitEvents";
++ case SpvOpGroupAll: return "OpGroupAll";
++ case SpvOpGroupAny: return "OpGroupAny";
++ case SpvOpGroupBroadcast: return "OpGroupBroadcast";
++ case SpvOpGroupIAdd: return "OpGroupIAdd";
++ case SpvOpGroupFAdd: return "OpGroupFAdd";
++ case SpvOpGroupFMin: return "OpGroupFMin";
++ case SpvOpGroupUMin: return "OpGroupUMin";
++ case SpvOpGroupSMin: return "OpGroupSMin";
++ case SpvOpGroupFMax: return "OpGroupFMax";
++ case SpvOpGroupUMax: return "OpGroupUMax";
++ case SpvOpGroupSMax: return "OpGroupSMax";
++ case SpvOpReadPipe: return "OpReadPipe";
++ case SpvOpWritePipe: return "OpWritePipe";
++ case SpvOpReservedReadPipe: return "OpReservedReadPipe";
++ case SpvOpReservedWritePipe: return "OpReservedWritePipe";
++ case SpvOpReserveReadPipePackets: return "OpReserveReadPipePackets";
++ case SpvOpReserveWritePipePackets: return "OpReserveWritePipePackets";
++ case SpvOpCommitReadPipe: return "OpCommitReadPipe";
++ case SpvOpCommitWritePipe: return "OpCommitWritePipe";
++ case SpvOpIsValidReserveId: return "OpIsValidReserveId";
++ case SpvOpGetNumPipePackets: return "OpGetNumPipePackets";
++ case SpvOpGetMaxPipePackets: return "OpGetMaxPipePackets";
++ case SpvOpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets";
++ case SpvOpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets";
++ case SpvOpGroupCommitReadPipe: return "OpGroupCommitReadPipe";
++ case SpvOpGroupCommitWritePipe: return "OpGroupCommitWritePipe";
++ case SpvOpEnqueueMarker: return "OpEnqueueMarker";
++ case SpvOpEnqueueKernel: return "OpEnqueueKernel";
++ case SpvOpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount";
++ case SpvOpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize";
++ case SpvOpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize";
++ case SpvOpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple";
++ case SpvOpRetainEvent: return "OpRetainEvent";
++ case SpvOpReleaseEvent: return "OpReleaseEvent";
++ case SpvOpCreateUserEvent: return "OpCreateUserEvent";
++ case SpvOpIsValidEvent: return "OpIsValidEvent";
++ case SpvOpSetUserEventStatus: return "OpSetUserEventStatus";
++ case SpvOpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo";
++ case SpvOpGetDefaultQueue: return "OpGetDefaultQueue";
++ case SpvOpBuildNDRange: return "OpBuildNDRange";
++ case SpvOpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod";
++ case SpvOpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod";
++ case SpvOpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod";
++ case SpvOpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod";
++ case SpvOpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod";
++ case SpvOpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod";
++ case SpvOpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod";
++ case SpvOpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod";
++ case SpvOpImageSparseFetch: return "OpImageSparseFetch";
++ case SpvOpImageSparseGather: return "OpImageSparseGather";
++ case SpvOpImageSparseDrefGather: return "OpImageSparseDrefGather";
++ case SpvOpImageSparseTexelsResident: return "OpImageSparseTexelsResident";
++ case SpvOpNoLine: return "OpNoLine";
++ case SpvOpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet";
++ case SpvOpAtomicFlagClear: return "OpAtomicFlagClear";
++ case SpvOpImageSparseRead: return "OpImageSparseRead";
++ case SpvOpSizeOf: return "OpSizeOf";
++ case SpvOpTypePipeStorage: return "OpTypePipeStorage";
++ case SpvOpConstantPipeStorage: return "OpConstantPipeStorage";
++ case SpvOpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage";
++ case SpvOpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount";
++ case SpvOpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups";
++ case SpvOpTypeNamedBarrier: return "OpTypeNamedBarrier";
++ case SpvOpNamedBarrierInitialize: return "OpNamedBarrierInitialize";
++ case SpvOpMemoryNamedBarrier: return "OpMemoryNamedBarrier";
++ case SpvOpModuleProcessed: return "OpModuleProcessed";
++ case SpvOpExecutionModeId: return "OpExecutionModeId";
++ case SpvOpDecorateId: return "OpDecorateId";
++ case SpvOpGroupNonUniformElect: return "OpGroupNonUniformElect";
++ case SpvOpGroupNonUniformAll: return "OpGroupNonUniformAll";
++ case SpvOpGroupNonUniformAny: return "OpGroupNonUniformAny";
++ case SpvOpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual";
++ case SpvOpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast";
++ case SpvOpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst";
++ case SpvOpGroupNonUniformBallot: return "OpGroupNonUniformBallot";
++ case SpvOpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot";
++ case SpvOpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract";
++ case SpvOpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount";
++ case SpvOpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB";
++ case SpvOpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB";
++ case SpvOpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle";
++ case SpvOpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor";
++ case SpvOpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp";
++ case SpvOpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown";
++ case SpvOpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd";
++ case SpvOpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd";
++ case SpvOpGroupNonUniformIMul: return "OpGroupNonUniformIMul";
++ case SpvOpGroupNonUniformFMul: return "OpGroupNonUniformFMul";
++ case SpvOpGroupNonUniformSMin: return "OpGroupNonUniformSMin";
++ case SpvOpGroupNonUniformUMin: return "OpGroupNonUniformUMin";
++ case SpvOpGroupNonUniformFMin: return "OpGroupNonUniformFMin";
++ case SpvOpGroupNonUniformSMax: return "OpGroupNonUniformSMax";
++ case SpvOpGroupNonUniformUMax: return "OpGroupNonUniformUMax";
++ case SpvOpGroupNonUniformFMax: return "OpGroupNonUniformFMax";
++ case SpvOpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd";
++ case SpvOpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr";
++ case SpvOpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor";
++ case SpvOpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd";
++ case SpvOpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr";
++ case SpvOpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor";
++ case SpvOpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast";
++ case SpvOpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap";
++ case SpvOpCopyLogical: return "OpCopyLogical";
++ case SpvOpPtrEqual: return "OpPtrEqual";
++ case SpvOpPtrNotEqual: return "OpPtrNotEqual";
++ case SpvOpPtrDiff: return "OpPtrDiff";
++ case SpvOpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
++ case SpvOpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
++ case SpvOpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
++ case SpvOpTypeTensorARM: return "OpTypeTensorARM";
++ case SpvOpTensorReadARM: return "OpTensorReadARM";
++ case SpvOpTensorWriteARM: return "OpTensorWriteARM";
++ case SpvOpTensorQuerySizeARM: return "OpTensorQuerySizeARM";
++ case SpvOpGraphConstantARM: return "OpGraphConstantARM";
++ case SpvOpGraphEntryPointARM: return "OpGraphEntryPointARM";
++ case SpvOpGraphARM: return "OpGraphARM";
++ case SpvOpGraphInputARM: return "OpGraphInputARM";
++ case SpvOpGraphSetOutputARM: return "OpGraphSetOutputARM";
++ case SpvOpGraphEndARM: return "OpGraphEndARM";
++ case SpvOpTypeGraphARM: return "OpTypeGraphARM";
++ case SpvOpTerminateInvocation: return "OpTerminateInvocation";
++ case SpvOpTypeUntypedPointerKHR: return "OpTypeUntypedPointerKHR";
++ case SpvOpUntypedVariableKHR: return "OpUntypedVariableKHR";
++ case SpvOpUntypedAccessChainKHR: return "OpUntypedAccessChainKHR";
++ case SpvOpUntypedInBoundsAccessChainKHR: return "OpUntypedInBoundsAccessChainKHR";
++ case SpvOpSubgroupBallotKHR: return "OpSubgroupBallotKHR";
++ case SpvOpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR";
++ case SpvOpUntypedPtrAccessChainKHR: return "OpUntypedPtrAccessChainKHR";
++ case SpvOpUntypedInBoundsPtrAccessChainKHR: return "OpUntypedInBoundsPtrAccessChainKHR";
++ case SpvOpUntypedArrayLengthKHR: return "OpUntypedArrayLengthKHR";
++ case SpvOpUntypedPrefetchKHR: return "OpUntypedPrefetchKHR";
++ case SpvOpFmaKHR: return "OpFmaKHR";
++ case SpvOpSubgroupAllKHR: return "OpSubgroupAllKHR";
++ case SpvOpSubgroupAnyKHR: return "OpSubgroupAnyKHR";
++ case SpvOpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR";
++ case SpvOpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR";
++ case SpvOpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR";
++ case SpvOpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR";
++ case SpvOpUntypedGroupAsyncCopyKHR: return "OpUntypedGroupAsyncCopyKHR";
++ case SpvOpTraceRayKHR: return "OpTraceRayKHR";
++ case SpvOpExecuteCallableKHR: return "OpExecuteCallableKHR";
++ case SpvOpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR";
++ case SpvOpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR";
++ case SpvOpTerminateRayKHR: return "OpTerminateRayKHR";
++ case SpvOpSDot: return "OpSDot";
++ case SpvOpUDot: return "OpUDot";
++ case SpvOpSUDot: return "OpSUDot";
++ case SpvOpSDotAccSat: return "OpSDotAccSat";
++ case SpvOpUDotAccSat: return "OpUDotAccSat";
++ case SpvOpSUDotAccSat: return "OpSUDotAccSat";
++ case SpvOpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR";
++ case SpvOpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR";
++ case SpvOpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
++ case SpvOpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
++ case SpvOpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
++ case SpvOpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT";
++ case SpvOpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT";
++ case SpvOpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT";
++ case SpvOpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
++ case SpvOpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
++ case SpvOpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";
++ case SpvOpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR";
++ case SpvOpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR";
++ case SpvOpRayQueryProceedKHR: return "OpRayQueryProceedKHR";
++ case SpvOpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR";
++ case SpvOpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM";
++ case SpvOpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM";
++ case SpvOpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM";
++ case SpvOpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM";
++ case SpvOpBitCastArrayQCOM: return "OpBitCastArrayQCOM";
++ case SpvOpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM";
++ case SpvOpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM";
++ case SpvOpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM";
++ case SpvOpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM";
++ case SpvOpCompositeConstructCoopMatQCOM: return "OpCompositeConstructCoopMatQCOM";
++ case SpvOpCompositeExtractCoopMatQCOM: return "OpCompositeExtractCoopMatQCOM";
++ case SpvOpExtractSubArrayQCOM: return "OpExtractSubArrayQCOM";
++ case SpvOpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD";
++ case SpvOpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD";
++ case SpvOpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD";
++ case SpvOpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD";
++ case SpvOpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD";
++ case SpvOpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD";
++ case SpvOpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD";
++ case SpvOpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD";
++ case SpvOpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD";
++ case SpvOpFragmentFetchAMD: return "OpFragmentFetchAMD";
++ case SpvOpReadClockKHR: return "OpReadClockKHR";
++ case SpvOpAllocateNodePayloadsAMDX: return "OpAllocateNodePayloadsAMDX";
++ case SpvOpEnqueueNodePayloadsAMDX: return "OpEnqueueNodePayloadsAMDX";
++ case SpvOpTypeNodePayloadArrayAMDX: return "OpTypeNodePayloadArrayAMDX";
++ case SpvOpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX";
++ case SpvOpNodePayloadArrayLengthAMDX: return "OpNodePayloadArrayLengthAMDX";
++ case SpvOpIsNodePayloadValidAMDX: return "OpIsNodePayloadValidAMDX";
++ case SpvOpConstantStringAMDX: return "OpConstantStringAMDX";
++ case SpvOpSpecConstantStringAMDX: return "OpSpecConstantStringAMDX";
++ case SpvOpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR";
++ case SpvOpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
++ case SpvOpTypeBufferEXT: return "OpTypeBufferEXT";
++ case SpvOpBufferPointerEXT: return "OpBufferPointerEXT";
++ case SpvOpAbortKHR: return "OpAbortKHR";
++ case SpvOpUntypedImageTexelPointerEXT: return "OpUntypedImageTexelPointerEXT";
++ case SpvOpMemberDecorateIdEXT: return "OpMemberDecorateIdEXT";
++ case SpvOpConstantSizeOfEXT: return "OpConstantSizeOfEXT";
++ case SpvOpConstantDataKHR: return "OpConstantDataKHR";
++ case SpvOpSpecConstantDataKHR: return "OpSpecConstantDataKHR";
++ case SpvOpPoisonKHR: return "OpPoisonKHR";
++ case SpvOpFreezeKHR: return "OpFreezeKHR";
++ case SpvOpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV";
++ case SpvOpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
++ case SpvOpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV";
++ case SpvOpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV";
++ case SpvOpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV";
++ case SpvOpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV";
++ case SpvOpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV";
++ case SpvOpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV";
++ case SpvOpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV";
++ case SpvOpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
++ case SpvOpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV";
++ case SpvOpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV";
++ case SpvOpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV";
++ case SpvOpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV";
++ case SpvOpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV";
++ case SpvOpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV";
++ case SpvOpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV";
++ case SpvOpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV";
++ case SpvOpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV";
++ case SpvOpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV";
++ case SpvOpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV";
++ case SpvOpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV";
++ case SpvOpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV";
++ case SpvOpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV";
++ case SpvOpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV";
++ case SpvOpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV";
++ case SpvOpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV";
++ case SpvOpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV";
++ case SpvOpHitObjectIsHitNV: return "OpHitObjectIsHitNV";
++ case SpvOpHitObjectIsMissNV: return "OpHitObjectIsMissNV";
++ case SpvOpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV";
++ case SpvOpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV";
++ case SpvOpTypeHitObjectNV: return "OpTypeHitObjectNV";
++ case SpvOpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
++ case SpvOpTypeCooperativeVectorNV: return "OpTypeCooperativeVectorNV";
++ case SpvOpCooperativeVectorMatrixMulNV: return "OpCooperativeVectorMatrixMulNV";
++ case SpvOpCooperativeVectorOuterProductAccumulateNV: return "OpCooperativeVectorOuterProductAccumulateNV";
++ case SpvOpCooperativeVectorReduceSumAccumulateNV: return "OpCooperativeVectorReduceSumAccumulateNV";
++ case SpvOpCooperativeVectorMatrixMulAddNV: return "OpCooperativeVectorMatrixMulAddNV";
++ case SpvOpCooperativeMatrixConvertNV: return "OpCooperativeMatrixConvertNV";
++ case SpvOpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT";
++ case SpvOpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT";
++ case SpvOpGroupNonUniformPartitionEXT: return "OpGroupNonUniformPartitionEXT";
++ case SpvOpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
++ case SpvOpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV";
++ case SpvOpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV";
++ case SpvOpCooperativeVectorLoadNV: return "OpCooperativeVectorLoadNV";
++ case SpvOpCooperativeVectorStoreNV: return "OpCooperativeVectorStoreNV";
++ case SpvOpHitObjectRecordFromQueryEXT: return "OpHitObjectRecordFromQueryEXT";
++ case SpvOpHitObjectRecordMissEXT: return "OpHitObjectRecordMissEXT";
++ case SpvOpHitObjectRecordMissMotionEXT: return "OpHitObjectRecordMissMotionEXT";
++ case SpvOpHitObjectGetIntersectionTriangleVertexPositionsEXT: return "OpHitObjectGetIntersectionTriangleVertexPositionsEXT";
++ case SpvOpHitObjectGetRayFlagsEXT: return "OpHitObjectGetRayFlagsEXT";
++ case SpvOpHitObjectSetShaderBindingTableRecordIndexEXT: return "OpHitObjectSetShaderBindingTableRecordIndexEXT";
++ case SpvOpHitObjectReorderExecuteShaderEXT: return "OpHitObjectReorderExecuteShaderEXT";
++ case SpvOpHitObjectTraceReorderExecuteEXT: return "OpHitObjectTraceReorderExecuteEXT";
++ case SpvOpHitObjectTraceMotionReorderExecuteEXT: return "OpHitObjectTraceMotionReorderExecuteEXT";
++ case SpvOpTypeHitObjectEXT: return "OpTypeHitObjectEXT";
++ case SpvOpReorderThreadWithHintEXT: return "OpReorderThreadWithHintEXT";
++ case SpvOpReorderThreadWithHitObjectEXT: return "OpReorderThreadWithHitObjectEXT";
++ case SpvOpHitObjectTraceRayEXT: return "OpHitObjectTraceRayEXT";
++ case SpvOpHitObjectTraceRayMotionEXT: return "OpHitObjectTraceRayMotionEXT";
++ case SpvOpHitObjectRecordEmptyEXT: return "OpHitObjectRecordEmptyEXT";
++ case SpvOpHitObjectExecuteShaderEXT: return "OpHitObjectExecuteShaderEXT";
++ case SpvOpHitObjectGetCurrentTimeEXT: return "OpHitObjectGetCurrentTimeEXT";
++ case SpvOpHitObjectGetAttributesEXT: return "OpHitObjectGetAttributesEXT";
++ case SpvOpHitObjectGetHitKindEXT: return "OpHitObjectGetHitKindEXT";
++ case SpvOpHitObjectGetPrimitiveIndexEXT: return "OpHitObjectGetPrimitiveIndexEXT";
++ case SpvOpHitObjectGetGeometryIndexEXT: return "OpHitObjectGetGeometryIndexEXT";
++ case SpvOpHitObjectGetInstanceIdEXT: return "OpHitObjectGetInstanceIdEXT";
++ case SpvOpHitObjectGetInstanceCustomIndexEXT: return "OpHitObjectGetInstanceCustomIndexEXT";
++ case SpvOpHitObjectGetObjectRayOriginEXT: return "OpHitObjectGetObjectRayOriginEXT";
++ case SpvOpHitObjectGetObjectRayDirectionEXT: return "OpHitObjectGetObjectRayDirectionEXT";
++ case SpvOpHitObjectGetWorldRayDirectionEXT: return "OpHitObjectGetWorldRayDirectionEXT";
++ case SpvOpHitObjectGetWorldRayOriginEXT: return "OpHitObjectGetWorldRayOriginEXT";
++ case SpvOpHitObjectGetObjectToWorldEXT: return "OpHitObjectGetObjectToWorldEXT";
++ case SpvOpHitObjectGetWorldToObjectEXT: return "OpHitObjectGetWorldToObjectEXT";
++ case SpvOpHitObjectGetRayTMaxEXT: return "OpHitObjectGetRayTMaxEXT";
++ case SpvOpReportIntersectionKHR: return "OpReportIntersectionKHR";
++ case SpvOpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV";
++ case SpvOpTerminateRayNV: return "OpTerminateRayNV";
++ case SpvOpTraceNV: return "OpTraceNV";
++ case SpvOpTraceMotionNV: return "OpTraceMotionNV";
++ case SpvOpTraceRayMotionNV: return "OpTraceRayMotionNV";
++ case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR";
++ case SpvOpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
++ case SpvOpExecuteCallableNV: return "OpExecuteCallableNV";
++ case SpvOpRayQueryGetClusterIdNV: return "OpRayQueryGetClusterIdNV";
++ case SpvOpHitObjectGetClusterIdNV: return "OpHitObjectGetClusterIdNV";
++ case SpvOpHitObjectGetRayTMinEXT: return "OpHitObjectGetRayTMinEXT";
++ case SpvOpHitObjectGetShaderBindingTableRecordIndexEXT: return "OpHitObjectGetShaderBindingTableRecordIndexEXT";
++ case SpvOpHitObjectGetShaderRecordBufferHandleEXT: return "OpHitObjectGetShaderRecordBufferHandleEXT";
++ case SpvOpHitObjectIsEmptyEXT: return "OpHitObjectIsEmptyEXT";
++ case SpvOpHitObjectIsHitEXT: return "OpHitObjectIsHitEXT";
++ case SpvOpHitObjectIsMissEXT: return "OpHitObjectIsMissEXT";
++ case SpvOpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV";
++ case SpvOpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV";
++ case SpvOpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
++ case SpvOpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
++ case SpvOpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
++ case SpvOpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
++ case SpvOpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
++ case SpvOpCooperativeMatrixReduceNV: return "OpCooperativeMatrixReduceNV";
++ case SpvOpCooperativeMatrixLoadTensorNV: return "OpCooperativeMatrixLoadTensorNV";
++ case SpvOpCooperativeMatrixStoreTensorNV: return "OpCooperativeMatrixStoreTensorNV";
++ case SpvOpCooperativeMatrixPerElementOpNV: return "OpCooperativeMatrixPerElementOpNV";
++ case SpvOpTypeTensorLayoutNV: return "OpTypeTensorLayoutNV";
++ case SpvOpTypeTensorViewNV: return "OpTypeTensorViewNV";
++ case SpvOpCreateTensorLayoutNV: return "OpCreateTensorLayoutNV";
++ case SpvOpTensorLayoutSetDimensionNV: return "OpTensorLayoutSetDimensionNV";
++ case SpvOpTensorLayoutSetStrideNV: return "OpTensorLayoutSetStrideNV";
++ case SpvOpTensorLayoutSliceNV: return "OpTensorLayoutSliceNV";
++ case SpvOpTensorLayoutSetClampValueNV: return "OpTensorLayoutSetClampValueNV";
++ case SpvOpCreateTensorViewNV: return "OpCreateTensorViewNV";
++ case SpvOpTensorViewSetDimensionNV: return "OpTensorViewSetDimensionNV";
++ case SpvOpTensorViewSetStrideNV: return "OpTensorViewSetStrideNV";
++ case SpvOpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation";
++ case SpvOpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT";
++ case SpvOpTensorViewSetClipNV: return "OpTensorViewSetClipNV";
++ case SpvOpTensorLayoutSetBlockSizeNV: return "OpTensorLayoutSetBlockSizeNV";
++ case SpvOpCooperativeMatrixTransposeNV: return "OpCooperativeMatrixTransposeNV";
++ case SpvOpConvertUToImageNV: return "OpConvertUToImageNV";
++ case SpvOpConvertUToSamplerNV: return "OpConvertUToSamplerNV";
++ case SpvOpConvertImageToUNV: return "OpConvertImageToUNV";
++ case SpvOpConvertSamplerToUNV: return "OpConvertSamplerToUNV";
++ case SpvOpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV";
++ case SpvOpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV";
++ case SpvOpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV";
++ case SpvOpRawAccessChainNV: return "OpRawAccessChainNV";
++ case SpvOpRayQueryGetIntersectionSpherePositionNV: return "OpRayQueryGetIntersectionSpherePositionNV";
++ case SpvOpRayQueryGetIntersectionSphereRadiusNV: return "OpRayQueryGetIntersectionSphereRadiusNV";
++ case SpvOpRayQueryGetIntersectionLSSPositionsNV: return "OpRayQueryGetIntersectionLSSPositionsNV";
++ case SpvOpRayQueryGetIntersectionLSSRadiiNV: return "OpRayQueryGetIntersectionLSSRadiiNV";
++ case SpvOpRayQueryGetIntersectionLSSHitValueNV: return "OpRayQueryGetIntersectionLSSHitValueNV";
++ case SpvOpHitObjectGetSpherePositionNV: return "OpHitObjectGetSpherePositionNV";
++ case SpvOpHitObjectGetSphereRadiusNV: return "OpHitObjectGetSphereRadiusNV";
++ case SpvOpHitObjectGetLSSPositionsNV: return "OpHitObjectGetLSSPositionsNV";
++ case SpvOpHitObjectGetLSSRadiiNV: return "OpHitObjectGetLSSRadiiNV";
++ case SpvOpHitObjectIsSphereHitNV: return "OpHitObjectIsSphereHitNV";
++ case SpvOpHitObjectIsLSSHitNV: return "OpHitObjectIsLSSHitNV";
++ case SpvOpRayQueryIsSphereHitNV: return "OpRayQueryIsSphereHitNV";
++ case SpvOpRayQueryIsLSSHitNV: return "OpRayQueryIsLSSHitNV";
++ case SpvOpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL";
++ case SpvOpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL";
++ case SpvOpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL";
++ case SpvOpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL";
++ case SpvOpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL";
++ case SpvOpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL";
++ case SpvOpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL";
++ case SpvOpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL";
++ case SpvOpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL";
++ case SpvOpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL";
++ case SpvOpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL";
++ case SpvOpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL";
++ case SpvOpAbsISubINTEL: return "OpAbsISubINTEL";
++ case SpvOpAbsUSubINTEL: return "OpAbsUSubINTEL";
++ case SpvOpIAddSatINTEL: return "OpIAddSatINTEL";
++ case SpvOpUAddSatINTEL: return "OpUAddSatINTEL";
++ case SpvOpIAverageINTEL: return "OpIAverageINTEL";
++ case SpvOpUAverageINTEL: return "OpUAverageINTEL";
++ case SpvOpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL";
++ case SpvOpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL";
++ case SpvOpISubSatINTEL: return "OpISubSatINTEL";
++ case SpvOpUSubSatINTEL: return "OpUSubSatINTEL";
++ case SpvOpIMul32x16INTEL: return "OpIMul32x16INTEL";
++ case SpvOpUMul32x16INTEL: return "OpUMul32x16INTEL";
++ case SpvOpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL";
++ case SpvOpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL";
++ case SpvOpAsmTargetINTEL: return "OpAsmTargetINTEL";
++ case SpvOpAsmINTEL: return "OpAsmINTEL";
++ case SpvOpAsmCallINTEL: return "OpAsmCallINTEL";
++ case SpvOpAtomicFMinEXT: return "OpAtomicFMinEXT";
++ case SpvOpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
++ case SpvOpAssumeTrueKHR: return "OpAssumeTrueKHR";
++ case SpvOpExpectKHR: return "OpExpectKHR";
++ case SpvOpDecorateString: return "OpDecorateString";
++ case SpvOpMemberDecorateString: return "OpMemberDecorateString";
++ case SpvOpVmeImageINTEL: return "OpVmeImageINTEL";
++ case SpvOpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL";
++ case SpvOpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL";
++ case SpvOpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL";
++ case SpvOpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL";
++ case SpvOpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL";
++ case SpvOpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL";
++ case SpvOpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL";
++ case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL";
++ case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL";
++ case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL";
++ case SpvOpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL";
++ case SpvOpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL";
++ case SpvOpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
++ case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
++ case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
++ case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
++ case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
++ case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
++ case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL";
++ case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
++ case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
++ case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
++ case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL";
++ case SpvOpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL";
++ case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL";
++ case SpvOpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL";
++ case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL";
++ case SpvOpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL";
++ case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL";
++ case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL";
++ case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL";
++ case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL";
++ case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL";
++ case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL";
++ case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL";
++ case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL";
++ case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
++ case SpvOpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL";
++ case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL";
++ case SpvOpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL";
++ case SpvOpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL";
++ case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL";
++ case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL";
++ case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
++ case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
++ case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
++ case SpvOpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL";
++ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
++ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
++ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
++ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
++ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
++ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
++ case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
++ case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
++ case SpvOpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL";
++ case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
++ case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL";
++ case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
++ case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
++ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
++ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
++ case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
++ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
++ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
++ case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
++ case SpvOpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL";
++ case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
++ case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
++ case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
++ case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
++ case SpvOpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL";
++ case SpvOpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL";
++ case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL";
++ case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
++ case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL";
++ case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
++ case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
++ case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
++ case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
++ case SpvOpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL";
++ case SpvOpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL";
++ case SpvOpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL";
++ case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL";
++ case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
++ case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL";
++ case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL";
++ case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
++ case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
++ case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
++ case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL";
++ case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
++ case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
++ case SpvOpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL";
++ case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
++ case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
++ case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
++ case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
++ case SpvOpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL";
++ case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL";
++ case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
++ case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
++ case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
++ case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL";
++ case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
++ case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
++ case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL";
++ case SpvOpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL";
++ case SpvOpSaveMemoryINTEL: return "OpSaveMemoryINTEL";
++ case SpvOpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL";
++ case SpvOpArbitraryFloatSinCosPiALTERA: return "OpArbitraryFloatSinCosPiALTERA";
++ case SpvOpArbitraryFloatCastALTERA: return "OpArbitraryFloatCastALTERA";
++ case SpvOpArbitraryFloatCastFromIntALTERA: return "OpArbitraryFloatCastFromIntALTERA";
++ case SpvOpArbitraryFloatCastToIntALTERA: return "OpArbitraryFloatCastToIntALTERA";
++ case SpvOpArbitraryFloatAddALTERA: return "OpArbitraryFloatAddALTERA";
++ case SpvOpArbitraryFloatSubALTERA: return "OpArbitraryFloatSubALTERA";
++ case SpvOpArbitraryFloatMulALTERA: return "OpArbitraryFloatMulALTERA";
++ case SpvOpArbitraryFloatDivALTERA: return "OpArbitraryFloatDivALTERA";
++ case SpvOpArbitraryFloatGTALTERA: return "OpArbitraryFloatGTALTERA";
++ case SpvOpArbitraryFloatGEALTERA: return "OpArbitraryFloatGEALTERA";
++ case SpvOpArbitraryFloatLTALTERA: return "OpArbitraryFloatLTALTERA";
++ case SpvOpArbitraryFloatLEALTERA: return "OpArbitraryFloatLEALTERA";
++ case SpvOpArbitraryFloatEQALTERA: return "OpArbitraryFloatEQALTERA";
++ case SpvOpArbitraryFloatRecipALTERA: return "OpArbitraryFloatRecipALTERA";
++ case SpvOpArbitraryFloatRSqrtALTERA: return "OpArbitraryFloatRSqrtALTERA";
++ case SpvOpArbitraryFloatCbrtALTERA: return "OpArbitraryFloatCbrtALTERA";
++ case SpvOpArbitraryFloatHypotALTERA: return "OpArbitraryFloatHypotALTERA";
++ case SpvOpArbitraryFloatSqrtALTERA: return "OpArbitraryFloatSqrtALTERA";
++ 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 SpvOpFixedSqrtALTERA: return "OpFixedSqrtALTERA";
++ case SpvOpFixedRecipALTERA: return "OpFixedRecipALTERA";
++ case SpvOpFixedRsqrtALTERA: return "OpFixedRsqrtALTERA";
++ case SpvOpFixedSinALTERA: return "OpFixedSinALTERA";
++ case SpvOpFixedCosALTERA: return "OpFixedCosALTERA";
++ case SpvOpFixedSinCosALTERA: return "OpFixedSinCosALTERA";
++ case SpvOpFixedSinPiALTERA: return "OpFixedSinPiALTERA";
++ case SpvOpFixedCosPiALTERA: return "OpFixedCosPiALTERA";
++ case SpvOpFixedSinCosPiALTERA: return "OpFixedSinCosPiALTERA";
++ case SpvOpFixedLogALTERA: return "OpFixedLogALTERA";
++ case SpvOpFixedExpALTERA: return "OpFixedExpALTERA";
++ case SpvOpPtrCastToCrossWorkgroupALTERA: return "OpPtrCastToCrossWorkgroupALTERA";
++ case SpvOpCrossWorkgroupCastToPtrALTERA: return "OpCrossWorkgroupCastToPtrALTERA";
++ case SpvOpReadPipeBlockingALTERA: return "OpReadPipeBlockingALTERA";
++ case SpvOpWritePipeBlockingALTERA: return "OpWritePipeBlockingALTERA";
++ case SpvOpFPGARegALTERA: return "OpFPGARegALTERA";
++ 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 SpvOpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA";
++ case SpvOpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA";
++ case SpvOpTaskSequenceGetALTERA: return "OpTaskSequenceGetALTERA";
++ case SpvOpTaskSequenceReleaseALTERA: return "OpTaskSequenceReleaseALTERA";
++ case SpvOpTypeTaskSequenceALTERA: return "OpTypeTaskSequenceALTERA";
++ case SpvOpSubgroupBlockPrefetchINTEL: return "OpSubgroupBlockPrefetchINTEL";
++ case SpvOpSubgroup2DBlockLoadINTEL: return "OpSubgroup2DBlockLoadINTEL";
++ case SpvOpSubgroup2DBlockLoadTransformINTEL: return "OpSubgroup2DBlockLoadTransformINTEL";
++ case SpvOpSubgroup2DBlockLoadTransposeINTEL: return "OpSubgroup2DBlockLoadTransposeINTEL";
++ case SpvOpSubgroup2DBlockPrefetchINTEL: return "OpSubgroup2DBlockPrefetchINTEL";
++ case SpvOpSubgroup2DBlockStoreINTEL: return "OpSubgroup2DBlockStoreINTEL";
++ case SpvOpSubgroupMatrixMultiplyAccumulateINTEL: return "OpSubgroupMatrixMultiplyAccumulateINTEL";
++ case SpvOpBitwiseFunctionINTEL: return "OpBitwiseFunctionINTEL";
++ case SpvOpUntypedVariableLengthArrayINTEL: return "OpUntypedVariableLengthArrayINTEL";
++ case SpvOpConditionalExtensionINTEL: return "OpConditionalExtensionINTEL";
++ case SpvOpConditionalEntryPointINTEL: return "OpConditionalEntryPointINTEL";
++ case SpvOpConditionalCapabilityINTEL: return "OpConditionalCapabilityINTEL";
++ case SpvOpSpecConstantTargetINTEL: return "OpSpecConstantTargetINTEL";
++ case SpvOpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
++ case SpvOpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
++ case SpvOpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
++ case SpvOpGroupIMulKHR: return "OpGroupIMulKHR";
++ case SpvOpGroupFMulKHR: return "OpGroupFMulKHR";
++ case SpvOpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
++ case SpvOpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR";
++ case SpvOpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR";
++ case SpvOpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR";
++ case SpvOpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR";
++ case SpvOpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR";
++ case SpvOpRoundFToTF32INTEL: return "OpRoundFToTF32INTEL";
++ case SpvOpMaskedGatherINTEL: return "OpMaskedGatherINTEL";
++ case SpvOpMaskedScatterINTEL: return "OpMaskedScatterINTEL";
++ case SpvOpConvertHandleToImageINTEL: return "OpConvertHandleToImageINTEL";
++ case SpvOpConvertHandleToSamplerINTEL: return "OpConvertHandleToSamplerINTEL";
++ case SpvOpConvertHandleToSampledImageINTEL: return "OpConvertHandleToSampledImageINTEL";
++ case SpvOpFDot2MixAcc32VALVE: return "OpFDot2MixAcc32VALVE";
++ case SpvOpFDot2MixAcc16VALVE: return "OpFDot2MixAcc16VALVE";
++ case SpvOpFDot4MixAcc32VALVE: return "OpFDot4MixAcc32VALVE";
++ default: return "Unknown";
++ }
++ }
++
++ #endif /* SPV_ENABLE_UTILITY_CODE */
++
++ #endif
++