/* DO NOT EDIT - This file is generated automatically by spirv_info_c.py script */

/*
 * Copyright (C) 2017 Intel Corporation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 */
#include "spirv_info.h"

const char *
spirv_capability_to_string(SpvCapability v)
{
   switch (v) {
   case SpvCapabilityMatrix: return "SpvCapabilityMatrix";
   case SpvCapabilityShader: return "SpvCapabilityShader";
   case SpvCapabilityGeometry: return "SpvCapabilityGeometry";
   case SpvCapabilityTessellation: return "SpvCapabilityTessellation";
   case SpvCapabilityAddresses: return "SpvCapabilityAddresses";
   case SpvCapabilityLinkage: return "SpvCapabilityLinkage";
   case SpvCapabilityKernel: return "SpvCapabilityKernel";
   case SpvCapabilityVector16: return "SpvCapabilityVector16";
   case SpvCapabilityFloat16Buffer: return "SpvCapabilityFloat16Buffer";
   case SpvCapabilityFloat16: return "SpvCapabilityFloat16";
   case SpvCapabilityFloat64: return "SpvCapabilityFloat64";
   case SpvCapabilityInt64: return "SpvCapabilityInt64";
   case SpvCapabilityInt64Atomics: return "SpvCapabilityInt64Atomics";
   case SpvCapabilityImageBasic: return "SpvCapabilityImageBasic";
   case SpvCapabilityImageReadWrite: return "SpvCapabilityImageReadWrite";
   case SpvCapabilityImageMipmap: return "SpvCapabilityImageMipmap";
   case SpvCapabilityPipes: return "SpvCapabilityPipes";
   case SpvCapabilityGroups: return "SpvCapabilityGroups";
   case SpvCapabilityDeviceEnqueue: return "SpvCapabilityDeviceEnqueue";
   case SpvCapabilityLiteralSampler: return "SpvCapabilityLiteralSampler";
   case SpvCapabilityAtomicStorage: return "SpvCapabilityAtomicStorage";
   case SpvCapabilityInt16: return "SpvCapabilityInt16";
   case SpvCapabilityTessellationPointSize: return "SpvCapabilityTessellationPointSize";
   case SpvCapabilityGeometryPointSize: return "SpvCapabilityGeometryPointSize";
   case SpvCapabilityImageGatherExtended: return "SpvCapabilityImageGatherExtended";
   case SpvCapabilityStorageImageMultisample: return "SpvCapabilityStorageImageMultisample";
   case SpvCapabilityUniformBufferArrayDynamicIndexing: return "SpvCapabilityUniformBufferArrayDynamicIndexing";
   case SpvCapabilitySampledImageArrayDynamicIndexing: return "SpvCapabilitySampledImageArrayDynamicIndexing";
   case SpvCapabilityStorageBufferArrayDynamicIndexing: return "SpvCapabilityStorageBufferArrayDynamicIndexing";
   case SpvCapabilityStorageImageArrayDynamicIndexing: return "SpvCapabilityStorageImageArrayDynamicIndexing";
   case SpvCapabilityClipDistance: return "SpvCapabilityClipDistance";
   case SpvCapabilityCullDistance: return "SpvCapabilityCullDistance";
   case SpvCapabilityImageCubeArray: return "SpvCapabilityImageCubeArray";
   case SpvCapabilitySampleRateShading: return "SpvCapabilitySampleRateShading";
   case SpvCapabilityImageRect: return "SpvCapabilityImageRect";
   case SpvCapabilitySampledRect: return "SpvCapabilitySampledRect";
   case SpvCapabilityGenericPointer: return "SpvCapabilityGenericPointer";
   case SpvCapabilityInt8: return "SpvCapabilityInt8";
   case SpvCapabilityInputAttachment: return "SpvCapabilityInputAttachment";
   case SpvCapabilitySparseResidency: return "SpvCapabilitySparseResidency";
   case SpvCapabilityMinLod: return "SpvCapabilityMinLod";
   case SpvCapabilitySampled1D: return "SpvCapabilitySampled1D";
   case SpvCapabilityImage1D: return "SpvCapabilityImage1D";
   case SpvCapabilitySampledCubeArray: return "SpvCapabilitySampledCubeArray";
   case SpvCapabilitySampledBuffer: return "SpvCapabilitySampledBuffer";
   case SpvCapabilityImageBuffer: return "SpvCapabilityImageBuffer";
   case SpvCapabilityImageMSArray: return "SpvCapabilityImageMSArray";
   case SpvCapabilityStorageImageExtendedFormats: return "SpvCapabilityStorageImageExtendedFormats";
   case SpvCapabilityImageQuery: return "SpvCapabilityImageQuery";
   case SpvCapabilityDerivativeControl: return "SpvCapabilityDerivativeControl";
   case SpvCapabilityInterpolationFunction: return "SpvCapabilityInterpolationFunction";
   case SpvCapabilityTransformFeedback: return "SpvCapabilityTransformFeedback";
   case SpvCapabilityGeometryStreams: return "SpvCapabilityGeometryStreams";
   case SpvCapabilityStorageImageReadWithoutFormat: return "SpvCapabilityStorageImageReadWithoutFormat";
   case SpvCapabilityStorageImageWriteWithoutFormat: return "SpvCapabilityStorageImageWriteWithoutFormat";
   case SpvCapabilityMultiViewport: return "SpvCapabilityMultiViewport";
   case SpvCapabilitySubgroupDispatch: return "SpvCapabilitySubgroupDispatch";
   case SpvCapabilityNamedBarrier: return "SpvCapabilityNamedBarrier";
   case SpvCapabilityPipeStorage: return "SpvCapabilityPipeStorage";
   case SpvCapabilityGroupNonUniform: return "SpvCapabilityGroupNonUniform";
   case SpvCapabilityGroupNonUniformVote: return "SpvCapabilityGroupNonUniformVote";
   case SpvCapabilityGroupNonUniformArithmetic: return "SpvCapabilityGroupNonUniformArithmetic";
   case SpvCapabilityGroupNonUniformBallot: return "SpvCapabilityGroupNonUniformBallot";
   case SpvCapabilityGroupNonUniformShuffle: return "SpvCapabilityGroupNonUniformShuffle";
   case SpvCapabilityGroupNonUniformShuffleRelative: return "SpvCapabilityGroupNonUniformShuffleRelative";
   case SpvCapabilityGroupNonUniformClustered: return "SpvCapabilityGroupNonUniformClustered";
   case SpvCapabilityGroupNonUniformQuad: return "SpvCapabilityGroupNonUniformQuad";
   case SpvCapabilitySubgroupBallotKHR: return "SpvCapabilitySubgroupBallotKHR";
   case SpvCapabilityDrawParameters: return "SpvCapabilityDrawParameters";
   case SpvCapabilitySubgroupVoteKHR: return "SpvCapabilitySubgroupVoteKHR";
   case SpvCapabilityStorageBuffer16BitAccess: return "SpvCapabilityStorageBuffer16BitAccess";
   case SpvCapabilityUniformAndStorageBuffer16BitAccess: return "SpvCapabilityUniformAndStorageBuffer16BitAccess";
   case SpvCapabilityStoragePushConstant16: return "SpvCapabilityStoragePushConstant16";
   case SpvCapabilityStorageInputOutput16: return "SpvCapabilityStorageInputOutput16";
   case SpvCapabilityDeviceGroup: return "SpvCapabilityDeviceGroup";
   case SpvCapabilityMultiView: return "SpvCapabilityMultiView";
   case SpvCapabilityVariablePointersStorageBuffer: return "SpvCapabilityVariablePointersStorageBuffer";
   case SpvCapabilityVariablePointers: return "SpvCapabilityVariablePointers";
   case SpvCapabilityAtomicStorageOps: return "SpvCapabilityAtomicStorageOps";
   case SpvCapabilitySampleMaskPostDepthCoverage: return "SpvCapabilitySampleMaskPostDepthCoverage";
   case SpvCapabilityStorageBuffer8BitAccess: return "SpvCapabilityStorageBuffer8BitAccess";
   case SpvCapabilityUniformAndStorageBuffer8BitAccess: return "SpvCapabilityUniformAndStorageBuffer8BitAccess";
   case SpvCapabilityStoragePushConstant8: return "SpvCapabilityStoragePushConstant8";
   case SpvCapabilityFloat16ImageAMD: return "SpvCapabilityFloat16ImageAMD";
   case SpvCapabilityImageGatherBiasLodAMD: return "SpvCapabilityImageGatherBiasLodAMD";
   case SpvCapabilityFragmentMaskAMD: return "SpvCapabilityFragmentMaskAMD";
   case SpvCapabilityStencilExportEXT: return "SpvCapabilityStencilExportEXT";
   case SpvCapabilityImageReadWriteLodAMD: return "SpvCapabilityImageReadWriteLodAMD";
   case SpvCapabilitySampleMaskOverrideCoverageNV: return "SpvCapabilitySampleMaskOverrideCoverageNV";
   case SpvCapabilityGeometryShaderPassthroughNV: return "SpvCapabilityGeometryShaderPassthroughNV";
   case SpvCapabilityShaderViewportIndexLayerEXT: return "SpvCapabilityShaderViewportIndexLayerEXT";
   case SpvCapabilityShaderViewportMaskNV: return "SpvCapabilityShaderViewportMaskNV";
   case SpvCapabilityShaderStereoViewNV: return "SpvCapabilityShaderStereoViewNV";
   case SpvCapabilityPerViewAttributesNV: return "SpvCapabilityPerViewAttributesNV";
   case SpvCapabilityFragmentFullyCoveredEXT: return "SpvCapabilityFragmentFullyCoveredEXT";
   case SpvCapabilityMeshShadingNV: return "SpvCapabilityMeshShadingNV";
   case SpvCapabilityShaderNonUniformEXT: return "SpvCapabilityShaderNonUniformEXT";
   case SpvCapabilityRuntimeDescriptorArrayEXT: return "SpvCapabilityRuntimeDescriptorArrayEXT";
   case SpvCapabilityInputAttachmentArrayDynamicIndexingEXT: return "SpvCapabilityInputAttachmentArrayDynamicIndexingEXT";
   case SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT: return "SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT";
   case SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT: return "SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT";
   case SpvCapabilityUniformBufferArrayNonUniformIndexingEXT: return "SpvCapabilityUniformBufferArrayNonUniformIndexingEXT";
   case SpvCapabilitySampledImageArrayNonUniformIndexingEXT: return "SpvCapabilitySampledImageArrayNonUniformIndexingEXT";
   case SpvCapabilityStorageBufferArrayNonUniformIndexingEXT: return "SpvCapabilityStorageBufferArrayNonUniformIndexingEXT";
   case SpvCapabilityStorageImageArrayNonUniformIndexingEXT: return "SpvCapabilityStorageImageArrayNonUniformIndexingEXT";
   case SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT: return "SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT";
   case SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT: return "SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT";
   case SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT: return "SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT";
   case SpvCapabilityRaytracingNVX: return "SpvCapabilityRaytracingNVX";
   case SpvCapabilitySubgroupShuffleINTEL: return "SpvCapabilitySubgroupShuffleINTEL";
   case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SpvCapabilitySubgroupBufferBlockIOINTEL";
   case SpvCapabilitySubgroupImageBlockIOINTEL: return "SpvCapabilitySubgroupImageBlockIOINTEL";
   case SpvCapabilityGroupNonUniformPartitionedNV: return "SpvCapabilityGroupNonUniformPartitionedNV";
   case SpvCapabilityVulkanMemoryModelKHR: return "SpvCapabilityVulkanMemoryModelKHR";
   case SpvCapabilityVulkanMemoryModelDeviceScopeKHR: return "SpvCapabilityVulkanMemoryModelDeviceScopeKHR";
   case SpvCapabilityImageFootprintNV: return "SpvCapabilityImageFootprintNV";
   case SpvCapabilityFragmentBarycentricNV: return "SpvCapabilityFragmentBarycentricNV";
   case SpvCapabilityComputeDerivativeGroupQuadsNV: return "SpvCapabilityComputeDerivativeGroupQuadsNV";
   case SpvCapabilityComputeDerivativeGroupLinearNV: return "SpvCapabilityComputeDerivativeGroupLinearNV";
   case SpvCapabilityShadingRateNV: return "SpvCapabilityShadingRateNV";
   case SpvCapabilityMax: break; /* silence warnings about unhandled enums. */
   }

   return "unknown";
}

const char *
spirv_decoration_to_string(SpvDecoration v)
{
   switch (v) {
   case SpvDecorationRelaxedPrecision: return "SpvDecorationRelaxedPrecision";
   case SpvDecorationSpecId: return "SpvDecorationSpecId";
   case SpvDecorationBlock: return "SpvDecorationBlock";
   case SpvDecorationBufferBlock: return "SpvDecorationBufferBlock";
   case SpvDecorationRowMajor: return "SpvDecorationRowMajor";
   case SpvDecorationColMajor: return "SpvDecorationColMajor";
   case SpvDecorationArrayStride: return "SpvDecorationArrayStride";
   case SpvDecorationMatrixStride: return "SpvDecorationMatrixStride";
   case SpvDecorationGLSLShared: return "SpvDecorationGLSLShared";
   case SpvDecorationGLSLPacked: return "SpvDecorationGLSLPacked";
   case SpvDecorationCPacked: return "SpvDecorationCPacked";
   case SpvDecorationBuiltIn: return "SpvDecorationBuiltIn";
   case SpvDecorationNoPerspective: return "SpvDecorationNoPerspective";
   case SpvDecorationFlat: return "SpvDecorationFlat";
   case SpvDecorationPatch: return "SpvDecorationPatch";
   case SpvDecorationCentroid: return "SpvDecorationCentroid";
   case SpvDecorationSample: return "SpvDecorationSample";
   case SpvDecorationInvariant: return "SpvDecorationInvariant";
   case SpvDecorationRestrict: return "SpvDecorationRestrict";
   case SpvDecorationAliased: return "SpvDecorationAliased";
   case SpvDecorationVolatile: return "SpvDecorationVolatile";
   case SpvDecorationConstant: return "SpvDecorationConstant";
   case SpvDecorationCoherent: return "SpvDecorationCoherent";
   case SpvDecorationNonWritable: return "SpvDecorationNonWritable";
   case SpvDecorationNonReadable: return "SpvDecorationNonReadable";
   case SpvDecorationUniform: return "SpvDecorationUniform";
   case SpvDecorationSaturatedConversion: return "SpvDecorationSaturatedConversion";
   case SpvDecorationStream: return "SpvDecorationStream";
   case SpvDecorationLocation: return "SpvDecorationLocation";
   case SpvDecorationComponent: return "SpvDecorationComponent";
   case SpvDecorationIndex: return "SpvDecorationIndex";
   case SpvDecorationBinding: return "SpvDecorationBinding";
   case SpvDecorationDescriptorSet: return "SpvDecorationDescriptorSet";
   case SpvDecorationOffset: return "SpvDecorationOffset";
   case SpvDecorationXfbBuffer: return "SpvDecorationXfbBuffer";
   case SpvDecorationXfbStride: return "SpvDecorationXfbStride";
   case SpvDecorationFuncParamAttr: return "SpvDecorationFuncParamAttr";
   case SpvDecorationFPRoundingMode: return "SpvDecorationFPRoundingMode";
   case SpvDecorationFPFastMathMode: return "SpvDecorationFPFastMathMode";
   case SpvDecorationLinkageAttributes: return "SpvDecorationLinkageAttributes";
   case SpvDecorationNoContraction: return "SpvDecorationNoContraction";
   case SpvDecorationInputAttachmentIndex: return "SpvDecorationInputAttachmentIndex";
   case SpvDecorationAlignment: return "SpvDecorationAlignment";
   case SpvDecorationMaxByteOffset: return "SpvDecorationMaxByteOffset";
   case SpvDecorationAlignmentId: return "SpvDecorationAlignmentId";
   case SpvDecorationMaxByteOffsetId: return "SpvDecorationMaxByteOffsetId";
   case SpvDecorationExplicitInterpAMD: return "SpvDecorationExplicitInterpAMD";
   case SpvDecorationOverrideCoverageNV: return "SpvDecorationOverrideCoverageNV";
   case SpvDecorationPassthroughNV: return "SpvDecorationPassthroughNV";
   case SpvDecorationViewportRelativeNV: return "SpvDecorationViewportRelativeNV";
   case SpvDecorationSecondaryViewportRelativeNV: return "SpvDecorationSecondaryViewportRelativeNV";
   case SpvDecorationPerPrimitiveNV: return "SpvDecorationPerPrimitiveNV";
   case SpvDecorationPerViewNV: return "SpvDecorationPerViewNV";
   case SpvDecorationPerTaskNV: return "SpvDecorationPerTaskNV";
   case SpvDecorationPerVertexNV: return "SpvDecorationPerVertexNV";
   case SpvDecorationNonUniformEXT: return "SpvDecorationNonUniformEXT";
   case SpvDecorationHlslCounterBufferGOOGLE: return "SpvDecorationHlslCounterBufferGOOGLE";
   case SpvDecorationHlslSemanticGOOGLE: return "SpvDecorationHlslSemanticGOOGLE";
   case SpvDecorationMax: break; /* silence warnings about unhandled enums. */
   }

   return "unknown";
}

const char *
spirv_op_to_string(SpvOp v)
{
   switch (v) {
   case SpvOpNop: return "SpvOpNop";
   case SpvOpUndef: return "SpvOpUndef";
   case SpvOpSourceContinued: return "SpvOpSourceContinued";
   case SpvOpSource: return "SpvOpSource";
   case SpvOpSourceExtension: return "SpvOpSourceExtension";
   case SpvOpName: return "SpvOpName";
   case SpvOpMemberName: return "SpvOpMemberName";
   case SpvOpString: return "SpvOpString";
   case SpvOpLine: return "SpvOpLine";
   case SpvOpExtension: return "SpvOpExtension";
   case SpvOpExtInstImport: return "SpvOpExtInstImport";
   case SpvOpExtInst: return "SpvOpExtInst";
   case SpvOpMemoryModel: return "SpvOpMemoryModel";
   case SpvOpEntryPoint: return "SpvOpEntryPoint";
   case SpvOpExecutionMode: return "SpvOpExecutionMode";
   case SpvOpCapability: return "SpvOpCapability";
   case SpvOpTypeVoid: return "SpvOpTypeVoid";
   case SpvOpTypeBool: return "SpvOpTypeBool";
   case SpvOpTypeInt: return "SpvOpTypeInt";
   case SpvOpTypeFloat: return "SpvOpTypeFloat";
   case SpvOpTypeVector: return "SpvOpTypeVector";
   case SpvOpTypeMatrix: return "SpvOpTypeMatrix";
   case SpvOpTypeImage: return "SpvOpTypeImage";
   case SpvOpTypeSampler: return "SpvOpTypeSampler";
   case SpvOpTypeSampledImage: return "SpvOpTypeSampledImage";
   case SpvOpTypeArray: return "SpvOpTypeArray";
   case SpvOpTypeRuntimeArray: return "SpvOpTypeRuntimeArray";
   case SpvOpTypeStruct: return "SpvOpTypeStruct";
   case SpvOpTypeOpaque: return "SpvOpTypeOpaque";
   case SpvOpTypePointer: return "SpvOpTypePointer";
   case SpvOpTypeFunction: return "SpvOpTypeFunction";
   case SpvOpTypeEvent: return "SpvOpTypeEvent";
   case SpvOpTypeDeviceEvent: return "SpvOpTypeDeviceEvent";
   case SpvOpTypeReserveId: return "SpvOpTypeReserveId";
   case SpvOpTypeQueue: return "SpvOpTypeQueue";
   case SpvOpTypePipe: return "SpvOpTypePipe";
   case SpvOpTypeForwardPointer: return "SpvOpTypeForwardPointer";
   case SpvOpConstantTrue: return "SpvOpConstantTrue";
   case SpvOpConstantFalse: return "SpvOpConstantFalse";
   case SpvOpConstant: return "SpvOpConstant";
   case SpvOpConstantComposite: return "SpvOpConstantComposite";
   case SpvOpConstantSampler: return "SpvOpConstantSampler";
   case SpvOpConstantNull: return "SpvOpConstantNull";
   case SpvOpSpecConstantTrue: return "SpvOpSpecConstantTrue";
   case SpvOpSpecConstantFalse: return "SpvOpSpecConstantFalse";
   case SpvOpSpecConstant: return "SpvOpSpecConstant";
   case SpvOpSpecConstantComposite: return "SpvOpSpecConstantComposite";
   case SpvOpSpecConstantOp: return "SpvOpSpecConstantOp";
   case SpvOpFunction: return "SpvOpFunction";
   case SpvOpFunctionParameter: return "SpvOpFunctionParameter";
   case SpvOpFunctionEnd: return "SpvOpFunctionEnd";
   case SpvOpFunctionCall: return "SpvOpFunctionCall";
   case SpvOpVariable: return "SpvOpVariable";
   case SpvOpImageTexelPointer: return "SpvOpImageTexelPointer";
   case SpvOpLoad: return "SpvOpLoad";
   case SpvOpStore: return "SpvOpStore";
   case SpvOpCopyMemory: return "SpvOpCopyMemory";
   case SpvOpCopyMemorySized: return "SpvOpCopyMemorySized";
   case SpvOpAccessChain: return "SpvOpAccessChain";
   case SpvOpInBoundsAccessChain: return "SpvOpInBoundsAccessChain";
   case SpvOpPtrAccessChain: return "SpvOpPtrAccessChain";
   case SpvOpArrayLength: return "SpvOpArrayLength";
   case SpvOpGenericPtrMemSemantics: return "SpvOpGenericPtrMemSemantics";
   case SpvOpInBoundsPtrAccessChain: return "SpvOpInBoundsPtrAccessChain";
   case SpvOpDecorate: return "SpvOpDecorate";
   case SpvOpMemberDecorate: return "SpvOpMemberDecorate";
   case SpvOpDecorationGroup: return "SpvOpDecorationGroup";
   case SpvOpGroupDecorate: return "SpvOpGroupDecorate";
   case SpvOpGroupMemberDecorate: return "SpvOpGroupMemberDecorate";
   case SpvOpVectorExtractDynamic: return "SpvOpVectorExtractDynamic";
   case SpvOpVectorInsertDynamic: return "SpvOpVectorInsertDynamic";
   case SpvOpVectorShuffle: return "SpvOpVectorShuffle";
   case SpvOpCompositeConstruct: return "SpvOpCompositeConstruct";
   case SpvOpCompositeExtract: return "SpvOpCompositeExtract";
   case SpvOpCompositeInsert: return "SpvOpCompositeInsert";
   case SpvOpCopyObject: return "SpvOpCopyObject";
   case SpvOpTranspose: return "SpvOpTranspose";
   case SpvOpSampledImage: return "SpvOpSampledImage";
   case SpvOpImageSampleImplicitLod: return "SpvOpImageSampleImplicitLod";
   case SpvOpImageSampleExplicitLod: return "SpvOpImageSampleExplicitLod";
   case SpvOpImageSampleDrefImplicitLod: return "SpvOpImageSampleDrefImplicitLod";
   case SpvOpImageSampleDrefExplicitLod: return "SpvOpImageSampleDrefExplicitLod";
   case SpvOpImageSampleProjImplicitLod: return "SpvOpImageSampleProjImplicitLod";
   case SpvOpImageSampleProjExplicitLod: return "SpvOpImageSampleProjExplicitLod";
   case SpvOpImageSampleProjDrefImplicitLod: return "SpvOpImageSampleProjDrefImplicitLod";
   case SpvOpImageSampleProjDrefExplicitLod: return "SpvOpImageSampleProjDrefExplicitLod";
   case SpvOpImageFetch: return "SpvOpImageFetch";
   case SpvOpImageGather: return "SpvOpImageGather";
   case SpvOpImageDrefGather: return "SpvOpImageDrefGather";
   case SpvOpImageRead: return "SpvOpImageRead";
   case SpvOpImageWrite: return "SpvOpImageWrite";
   case SpvOpImage: return "SpvOpImage";
   case SpvOpImageQueryFormat: return "SpvOpImageQueryFormat";
   case SpvOpImageQueryOrder: return "SpvOpImageQueryOrder";
   case SpvOpImageQuerySizeLod: return "SpvOpImageQuerySizeLod";
   case SpvOpImageQuerySize: return "SpvOpImageQuerySize";
   case SpvOpImageQueryLod: return "SpvOpImageQueryLod";
   case SpvOpImageQueryLevels: return "SpvOpImageQueryLevels";
   case SpvOpImageQuerySamples: return "SpvOpImageQuerySamples";
   case SpvOpConvertFToU: return "SpvOpConvertFToU";
   case SpvOpConvertFToS: return "SpvOpConvertFToS";
   case SpvOpConvertSToF: return "SpvOpConvertSToF";
   case SpvOpConvertUToF: return "SpvOpConvertUToF";
   case SpvOpUConvert: return "SpvOpUConvert";
   case SpvOpSConvert: return "SpvOpSConvert";
   case SpvOpFConvert: return "SpvOpFConvert";
   case SpvOpQuantizeToF16: return "SpvOpQuantizeToF16";
   case SpvOpConvertPtrToU: return "SpvOpConvertPtrToU";
   case SpvOpSatConvertSToU: return "SpvOpSatConvertSToU";
   case SpvOpSatConvertUToS: return "SpvOpSatConvertUToS";
   case SpvOpConvertUToPtr: return "SpvOpConvertUToPtr";
   case SpvOpPtrCastToGeneric: return "SpvOpPtrCastToGeneric";
   case SpvOpGenericCastToPtr: return "SpvOpGenericCastToPtr";
   case SpvOpGenericCastToPtrExplicit: return "SpvOpGenericCastToPtrExplicit";
   case SpvOpBitcast: return "SpvOpBitcast";
   case SpvOpSNegate: return "SpvOpSNegate";
   case SpvOpFNegate: return "SpvOpFNegate";
   case SpvOpIAdd: return "SpvOpIAdd";
   case SpvOpFAdd: return "SpvOpFAdd";
   case SpvOpISub: return "SpvOpISub";
   case SpvOpFSub: return "SpvOpFSub";
   case SpvOpIMul: return "SpvOpIMul";
   case SpvOpFMul: return "SpvOpFMul";
   case SpvOpUDiv: return "SpvOpUDiv";
   case SpvOpSDiv: return "SpvOpSDiv";
   case SpvOpFDiv: return "SpvOpFDiv";
   case SpvOpUMod: return "SpvOpUMod";
   case SpvOpSRem: return "SpvOpSRem";
   case SpvOpSMod: return "SpvOpSMod";
   case SpvOpFRem: return "SpvOpFRem";
   case SpvOpFMod: return "SpvOpFMod";
   case SpvOpVectorTimesScalar: return "SpvOpVectorTimesScalar";
   case SpvOpMatrixTimesScalar: return "SpvOpMatrixTimesScalar";
   case SpvOpVectorTimesMatrix: return "SpvOpVectorTimesMatrix";
   case SpvOpMatrixTimesVector: return "SpvOpMatrixTimesVector";
   case SpvOpMatrixTimesMatrix: return "SpvOpMatrixTimesMatrix";
   case SpvOpOuterProduct: return "SpvOpOuterProduct";
   case SpvOpDot: return "SpvOpDot";
   case SpvOpIAddCarry: return "SpvOpIAddCarry";
   case SpvOpISubBorrow: return "SpvOpISubBorrow";
   case SpvOpUMulExtended: return "SpvOpUMulExtended";
   case SpvOpSMulExtended: return "SpvOpSMulExtended";
   case SpvOpAny: return "SpvOpAny";
   case SpvOpAll: return "SpvOpAll";
   case SpvOpIsNan: return "SpvOpIsNan";
   case SpvOpIsInf: return "SpvOpIsInf";
   case SpvOpIsFinite: return "SpvOpIsFinite";
   case SpvOpIsNormal: return "SpvOpIsNormal";
   case SpvOpSignBitSet: return "SpvOpSignBitSet";
   case SpvOpLessOrGreater: return "SpvOpLessOrGreater";
   case SpvOpOrdered: return "SpvOpOrdered";
   case SpvOpUnordered: return "SpvOpUnordered";
   case SpvOpLogicalEqual: return "SpvOpLogicalEqual";
   case SpvOpLogicalNotEqual: return "SpvOpLogicalNotEqual";
   case SpvOpLogicalOr: return "SpvOpLogicalOr";
   case SpvOpLogicalAnd: return "SpvOpLogicalAnd";
   case SpvOpLogicalNot: return "SpvOpLogicalNot";
   case SpvOpSelect: return "SpvOpSelect";
   case SpvOpIEqual: return "SpvOpIEqual";
   case SpvOpINotEqual: return "SpvOpINotEqual";
   case SpvOpUGreaterThan: return "SpvOpUGreaterThan";
   case SpvOpSGreaterThan: return "SpvOpSGreaterThan";
   case SpvOpUGreaterThanEqual: return "SpvOpUGreaterThanEqual";
   case SpvOpSGreaterThanEqual: return "SpvOpSGreaterThanEqual";
   case SpvOpULessThan: return "SpvOpULessThan";
   case SpvOpSLessThan: return "SpvOpSLessThan";
   case SpvOpULessThanEqual: return "SpvOpULessThanEqual";
   case SpvOpSLessThanEqual: return "SpvOpSLessThanEqual";
   case SpvOpFOrdEqual: return "SpvOpFOrdEqual";
   case SpvOpFUnordEqual: return "SpvOpFUnordEqual";
   case SpvOpFOrdNotEqual: return "SpvOpFOrdNotEqual";
   case SpvOpFUnordNotEqual: return "SpvOpFUnordNotEqual";
   case SpvOpFOrdLessThan: return "SpvOpFOrdLessThan";
   case SpvOpFUnordLessThan: return "SpvOpFUnordLessThan";
   case SpvOpFOrdGreaterThan: return "SpvOpFOrdGreaterThan";
   case SpvOpFUnordGreaterThan: return "SpvOpFUnordGreaterThan";
   case SpvOpFOrdLessThanEqual: return "SpvOpFOrdLessThanEqual";
   case SpvOpFUnordLessThanEqual: return "SpvOpFUnordLessThanEqual";
   case SpvOpFOrdGreaterThanEqual: return "SpvOpFOrdGreaterThanEqual";
   case SpvOpFUnordGreaterThanEqual: return "SpvOpFUnordGreaterThanEqual";
   case SpvOpShiftRightLogical: return "SpvOpShiftRightLogical";
   case SpvOpShiftRightArithmetic: return "SpvOpShiftRightArithmetic";
   case SpvOpShiftLeftLogical: return "SpvOpShiftLeftLogical";
   case SpvOpBitwiseOr: return "SpvOpBitwiseOr";
   case SpvOpBitwiseXor: return "SpvOpBitwiseXor";
   case SpvOpBitwiseAnd: return "SpvOpBitwiseAnd";
   case SpvOpNot: return "SpvOpNot";
   case SpvOpBitFieldInsert: return "SpvOpBitFieldInsert";
   case SpvOpBitFieldSExtract: return "SpvOpBitFieldSExtract";
   case SpvOpBitFieldUExtract: return "SpvOpBitFieldUExtract";
   case SpvOpBitReverse: return "SpvOpBitReverse";
   case SpvOpBitCount: return "SpvOpBitCount";
   case SpvOpDPdx: return "SpvOpDPdx";
   case SpvOpDPdy: return "SpvOpDPdy";
   case SpvOpFwidth: return "SpvOpFwidth";
   case SpvOpDPdxFine: return "SpvOpDPdxFine";
   case SpvOpDPdyFine: return "SpvOpDPdyFine";
   case SpvOpFwidthFine: return "SpvOpFwidthFine";
   case SpvOpDPdxCoarse: return "SpvOpDPdxCoarse";
   case SpvOpDPdyCoarse: return "SpvOpDPdyCoarse";
   case SpvOpFwidthCoarse: return "SpvOpFwidthCoarse";
   case SpvOpEmitVertex: return "SpvOpEmitVertex";
   case SpvOpEndPrimitive: return "SpvOpEndPrimitive";
   case SpvOpEmitStreamVertex: return "SpvOpEmitStreamVertex";
   case SpvOpEndStreamPrimitive: return "SpvOpEndStreamPrimitive";
   case SpvOpControlBarrier: return "SpvOpControlBarrier";
   case SpvOpMemoryBarrier: return "SpvOpMemoryBarrier";
   case SpvOpAtomicLoad: return "SpvOpAtomicLoad";
   case SpvOpAtomicStore: return "SpvOpAtomicStore";
   case SpvOpAtomicExchange: return "SpvOpAtomicExchange";
   case SpvOpAtomicCompareExchange: return "SpvOpAtomicCompareExchange";
   case SpvOpAtomicCompareExchangeWeak: return "SpvOpAtomicCompareExchangeWeak";
   case SpvOpAtomicIIncrement: return "SpvOpAtomicIIncrement";
   case SpvOpAtomicIDecrement: return "SpvOpAtomicIDecrement";
   case SpvOpAtomicIAdd: return "SpvOpAtomicIAdd";
   case SpvOpAtomicISub: return "SpvOpAtomicISub";
   case SpvOpAtomicSMin: return "SpvOpAtomicSMin";
   case SpvOpAtomicUMin: return "SpvOpAtomicUMin";
   case SpvOpAtomicSMax: return "SpvOpAtomicSMax";
   case SpvOpAtomicUMax: return "SpvOpAtomicUMax";
   case SpvOpAtomicAnd: return "SpvOpAtomicAnd";
   case SpvOpAtomicOr: return "SpvOpAtomicOr";
   case SpvOpAtomicXor: return "SpvOpAtomicXor";
   case SpvOpPhi: return "SpvOpPhi";
   case SpvOpLoopMerge: return "SpvOpLoopMerge";
   case SpvOpSelectionMerge: return "SpvOpSelectionMerge";
   case SpvOpLabel: return "SpvOpLabel";
   case SpvOpBranch: return "SpvOpBranch";
   case SpvOpBranchConditional: return "SpvOpBranchConditional";
   case SpvOpSwitch: return "SpvOpSwitch";
   case SpvOpKill: return "SpvOpKill";
   case SpvOpReturn: return "SpvOpReturn";
   case SpvOpReturnValue: return "SpvOpReturnValue";
   case SpvOpUnreachable: return "SpvOpUnreachable";
   case SpvOpLifetimeStart: return "SpvOpLifetimeStart";
   case SpvOpLifetimeStop: return "SpvOpLifetimeStop";
   case SpvOpGroupAsyncCopy: return "SpvOpGroupAsyncCopy";
   case SpvOpGroupWaitEvents: return "SpvOpGroupWaitEvents";
   case SpvOpGroupAll: return "SpvOpGroupAll";
   case SpvOpGroupAny: return "SpvOpGroupAny";
   case SpvOpGroupBroadcast: return "SpvOpGroupBroadcast";
   case SpvOpGroupIAdd: return "SpvOpGroupIAdd";
   case SpvOpGroupFAdd: return "SpvOpGroupFAdd";
   case SpvOpGroupFMin: return "SpvOpGroupFMin";
   case SpvOpGroupUMin: return "SpvOpGroupUMin";
   case SpvOpGroupSMin: return "SpvOpGroupSMin";
   case SpvOpGroupFMax: return "SpvOpGroupFMax";
   case SpvOpGroupUMax: return "SpvOpGroupUMax";
   case SpvOpGroupSMax: return "SpvOpGroupSMax";
   case SpvOpReadPipe: return "SpvOpReadPipe";
   case SpvOpWritePipe: return "SpvOpWritePipe";
   case SpvOpReservedReadPipe: return "SpvOpReservedReadPipe";
   case SpvOpReservedWritePipe: return "SpvOpReservedWritePipe";
   case SpvOpReserveReadPipePackets: return "SpvOpReserveReadPipePackets";
   case SpvOpReserveWritePipePackets: return "SpvOpReserveWritePipePackets";
   case SpvOpCommitReadPipe: return "SpvOpCommitReadPipe";
   case SpvOpCommitWritePipe: return "SpvOpCommitWritePipe";
   case SpvOpIsValidReserveId: return "SpvOpIsValidReserveId";
   case SpvOpGetNumPipePackets: return "SpvOpGetNumPipePackets";
   case SpvOpGetMaxPipePackets: return "SpvOpGetMaxPipePackets";
   case SpvOpGroupReserveReadPipePackets: return "SpvOpGroupReserveReadPipePackets";
   case SpvOpGroupReserveWritePipePackets: return "SpvOpGroupReserveWritePipePackets";
   case SpvOpGroupCommitReadPipe: return "SpvOpGroupCommitReadPipe";
   case SpvOpGroupCommitWritePipe: return "SpvOpGroupCommitWritePipe";
   case SpvOpEnqueueMarker: return "SpvOpEnqueueMarker";
   case SpvOpEnqueueKernel: return "SpvOpEnqueueKernel";
   case SpvOpGetKernelNDrangeSubGroupCount: return "SpvOpGetKernelNDrangeSubGroupCount";
   case SpvOpGetKernelNDrangeMaxSubGroupSize: return "SpvOpGetKernelNDrangeMaxSubGroupSize";
   case SpvOpGetKernelWorkGroupSize: return "SpvOpGetKernelWorkGroupSize";
   case SpvOpGetKernelPreferredWorkGroupSizeMultiple: return "SpvOpGetKernelPreferredWorkGroupSizeMultiple";
   case SpvOpRetainEvent: return "SpvOpRetainEvent";
   case SpvOpReleaseEvent: return "SpvOpReleaseEvent";
   case SpvOpCreateUserEvent: return "SpvOpCreateUserEvent";
   case SpvOpIsValidEvent: return "SpvOpIsValidEvent";
   case SpvOpSetUserEventStatus: return "SpvOpSetUserEventStatus";
   case SpvOpCaptureEventProfilingInfo: return "SpvOpCaptureEventProfilingInfo";
   case SpvOpGetDefaultQueue: return "SpvOpGetDefaultQueue";
   case SpvOpBuildNDRange: return "SpvOpBuildNDRange";
   case SpvOpImageSparseSampleImplicitLod: return "SpvOpImageSparseSampleImplicitLod";
   case SpvOpImageSparseSampleExplicitLod: return "SpvOpImageSparseSampleExplicitLod";
   case SpvOpImageSparseSampleDrefImplicitLod: return "SpvOpImageSparseSampleDrefImplicitLod";
   case SpvOpImageSparseSampleDrefExplicitLod: return "SpvOpImageSparseSampleDrefExplicitLod";
   case SpvOpImageSparseSampleProjImplicitLod: return "SpvOpImageSparseSampleProjImplicitLod";
   case SpvOpImageSparseSampleProjExplicitLod: return "SpvOpImageSparseSampleProjExplicitLod";
   case SpvOpImageSparseSampleProjDrefImplicitLod: return "SpvOpImageSparseSampleProjDrefImplicitLod";
   case SpvOpImageSparseSampleProjDrefExplicitLod: return "SpvOpImageSparseSampleProjDrefExplicitLod";
   case SpvOpImageSparseFetch: return "SpvOpImageSparseFetch";
   case SpvOpImageSparseGather: return "SpvOpImageSparseGather";
   case SpvOpImageSparseDrefGather: return "SpvOpImageSparseDrefGather";
   case SpvOpImageSparseTexelsResident: return "SpvOpImageSparseTexelsResident";
   case SpvOpNoLine: return "SpvOpNoLine";
   case SpvOpAtomicFlagTestAndSet: return "SpvOpAtomicFlagTestAndSet";
   case SpvOpAtomicFlagClear: return "SpvOpAtomicFlagClear";
   case SpvOpImageSparseRead: return "SpvOpImageSparseRead";
   case SpvOpSizeOf: return "SpvOpSizeOf";
   case SpvOpTypePipeStorage: return "SpvOpTypePipeStorage";
   case SpvOpConstantPipeStorage: return "SpvOpConstantPipeStorage";
   case SpvOpCreatePipeFromPipeStorage: return "SpvOpCreatePipeFromPipeStorage";
   case SpvOpGetKernelLocalSizeForSubgroupCount: return "SpvOpGetKernelLocalSizeForSubgroupCount";
   case SpvOpGetKernelMaxNumSubgroups: return "SpvOpGetKernelMaxNumSubgroups";
   case SpvOpTypeNamedBarrier: return "SpvOpTypeNamedBarrier";
   case SpvOpNamedBarrierInitialize: return "SpvOpNamedBarrierInitialize";
   case SpvOpMemoryNamedBarrier: return "SpvOpMemoryNamedBarrier";
   case SpvOpModuleProcessed: return "SpvOpModuleProcessed";
   case SpvOpExecutionModeId: return "SpvOpExecutionModeId";
   case SpvOpDecorateId: return "SpvOpDecorateId";
   case SpvOpGroupNonUniformElect: return "SpvOpGroupNonUniformElect";
   case SpvOpGroupNonUniformAll: return "SpvOpGroupNonUniformAll";
   case SpvOpGroupNonUniformAny: return "SpvOpGroupNonUniformAny";
   case SpvOpGroupNonUniformAllEqual: return "SpvOpGroupNonUniformAllEqual";
   case SpvOpGroupNonUniformBroadcast: return "SpvOpGroupNonUniformBroadcast";
   case SpvOpGroupNonUniformBroadcastFirst: return "SpvOpGroupNonUniformBroadcastFirst";
   case SpvOpGroupNonUniformBallot: return "SpvOpGroupNonUniformBallot";
   case SpvOpGroupNonUniformInverseBallot: return "SpvOpGroupNonUniformInverseBallot";
   case SpvOpGroupNonUniformBallotBitExtract: return "SpvOpGroupNonUniformBallotBitExtract";
   case SpvOpGroupNonUniformBallotBitCount: return "SpvOpGroupNonUniformBallotBitCount";
   case SpvOpGroupNonUniformBallotFindLSB: return "SpvOpGroupNonUniformBallotFindLSB";
   case SpvOpGroupNonUniformBallotFindMSB: return "SpvOpGroupNonUniformBallotFindMSB";
   case SpvOpGroupNonUniformShuffle: return "SpvOpGroupNonUniformShuffle";
   case SpvOpGroupNonUniformShuffleXor: return "SpvOpGroupNonUniformShuffleXor";
   case SpvOpGroupNonUniformShuffleUp: return "SpvOpGroupNonUniformShuffleUp";
   case SpvOpGroupNonUniformShuffleDown: return "SpvOpGroupNonUniformShuffleDown";
   case SpvOpGroupNonUniformIAdd: return "SpvOpGroupNonUniformIAdd";
   case SpvOpGroupNonUniformFAdd: return "SpvOpGroupNonUniformFAdd";
   case SpvOpGroupNonUniformIMul: return "SpvOpGroupNonUniformIMul";
   case SpvOpGroupNonUniformFMul: return "SpvOpGroupNonUniformFMul";
   case SpvOpGroupNonUniformSMin: return "SpvOpGroupNonUniformSMin";
   case SpvOpGroupNonUniformUMin: return "SpvOpGroupNonUniformUMin";
   case SpvOpGroupNonUniformFMin: return "SpvOpGroupNonUniformFMin";
   case SpvOpGroupNonUniformSMax: return "SpvOpGroupNonUniformSMax";
   case SpvOpGroupNonUniformUMax: return "SpvOpGroupNonUniformUMax";
   case SpvOpGroupNonUniformFMax: return "SpvOpGroupNonUniformFMax";
   case SpvOpGroupNonUniformBitwiseAnd: return "SpvOpGroupNonUniformBitwiseAnd";
   case SpvOpGroupNonUniformBitwiseOr: return "SpvOpGroupNonUniformBitwiseOr";
   case SpvOpGroupNonUniformBitwiseXor: return "SpvOpGroupNonUniformBitwiseXor";
   case SpvOpGroupNonUniformLogicalAnd: return "SpvOpGroupNonUniformLogicalAnd";
   case SpvOpGroupNonUniformLogicalOr: return "SpvOpGroupNonUniformLogicalOr";
   case SpvOpGroupNonUniformLogicalXor: return "SpvOpGroupNonUniformLogicalXor";
   case SpvOpGroupNonUniformQuadBroadcast: return "SpvOpGroupNonUniformQuadBroadcast";
   case SpvOpGroupNonUniformQuadSwap: return "SpvOpGroupNonUniformQuadSwap";
   case SpvOpSubgroupBallotKHR: return "SpvOpSubgroupBallotKHR";
   case SpvOpSubgroupFirstInvocationKHR: return "SpvOpSubgroupFirstInvocationKHR";
   case SpvOpSubgroupAllKHR: return "SpvOpSubgroupAllKHR";
   case SpvOpSubgroupAnyKHR: return "SpvOpSubgroupAnyKHR";
   case SpvOpSubgroupAllEqualKHR: return "SpvOpSubgroupAllEqualKHR";
   case SpvOpSubgroupReadInvocationKHR: return "SpvOpSubgroupReadInvocationKHR";
   case SpvOpGroupIAddNonUniformAMD: return "SpvOpGroupIAddNonUniformAMD";
   case SpvOpGroupFAddNonUniformAMD: return "SpvOpGroupFAddNonUniformAMD";
   case SpvOpGroupFMinNonUniformAMD: return "SpvOpGroupFMinNonUniformAMD";
   case SpvOpGroupUMinNonUniformAMD: return "SpvOpGroupUMinNonUniformAMD";
   case SpvOpGroupSMinNonUniformAMD: return "SpvOpGroupSMinNonUniformAMD";
   case SpvOpGroupFMaxNonUniformAMD: return "SpvOpGroupFMaxNonUniformAMD";
   case SpvOpGroupUMaxNonUniformAMD: return "SpvOpGroupUMaxNonUniformAMD";
   case SpvOpGroupSMaxNonUniformAMD: return "SpvOpGroupSMaxNonUniformAMD";
   case SpvOpFragmentMaskFetchAMD: return "SpvOpFragmentMaskFetchAMD";
   case SpvOpFragmentFetchAMD: return "SpvOpFragmentFetchAMD";
   case SpvOpWritePackedPrimitiveIndices4x8NV: return "SpvOpWritePackedPrimitiveIndices4x8NV";
   case SpvOpReportIntersectionNVX: return "SpvOpReportIntersectionNVX";
   case SpvOpIgnoreIntersectionNVX: return "SpvOpIgnoreIntersectionNVX";
   case SpvOpTerminateRayNVX: return "SpvOpTerminateRayNVX";
   case SpvOpTraceNVX: return "SpvOpTraceNVX";
   case SpvOpTypeAccelerationStructureNVX: return "SpvOpTypeAccelerationStructureNVX";
   case SpvOpSubgroupShuffleINTEL: return "SpvOpSubgroupShuffleINTEL";
   case SpvOpSubgroupShuffleDownINTEL: return "SpvOpSubgroupShuffleDownINTEL";
   case SpvOpSubgroupShuffleUpINTEL: return "SpvOpSubgroupShuffleUpINTEL";
   case SpvOpSubgroupShuffleXorINTEL: return "SpvOpSubgroupShuffleXorINTEL";
   case SpvOpSubgroupBlockReadINTEL: return "SpvOpSubgroupBlockReadINTEL";
   case SpvOpSubgroupBlockWriteINTEL: return "SpvOpSubgroupBlockWriteINTEL";
   case SpvOpSubgroupImageBlockReadINTEL: return "SpvOpSubgroupImageBlockReadINTEL";
   case SpvOpSubgroupImageBlockWriteINTEL: return "SpvOpSubgroupImageBlockWriteINTEL";
   case SpvOpDecorateStringGOOGLE: return "SpvOpDecorateStringGOOGLE";
   case SpvOpMemberDecorateStringGOOGLE: return "SpvOpMemberDecorateStringGOOGLE";
   case SpvOpGroupNonUniformPartitionNV: return "SpvOpGroupNonUniformPartitionNV";
   case SpvOpImageSampleFootprintNV: return "SpvOpImageSampleFootprintNV";
   case SpvOpMax: break; /* silence warnings about unhandled enums. */
   }

   return "unknown";
}
