chromium/third_party/spirv-headers/src/include/spirv/unified1/spirv.h

/*
** Copyright (c) 2014-2024 The Khronos Group Inc.
** 
** Permission is hereby granted, free of charge, to any person obtaining a copy
** of this software and/or associated documentation files (the "Materials"),
** to deal in the Materials without restriction, including without limitation
** the rights to use, copy, modify, merge, publish, distribute, sublicense,
** and/or sell copies of the Materials, and to permit persons to whom the
** Materials are furnished to do so, subject to the following conditions:
** 
** The above copyright notice and this permission notice shall be included in
** all copies or substantial portions of the Materials.
** 
** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 
** 
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
** IN THE MATERIALS.
*/

/*
** This header is automatically generated by the same tool that creates
** the Binary Section of the SPIR-V specification.
*/

/*
** Enumeration tokens for SPIR-V, in various styles:
**   C, C++, C++11, JSON, Lua, Python, C#, D, Beef
** 
** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
** - C# will use enum classes in the Specification class located in the "Spv" namespace,
**     e.g.: Spv.Specification.SourceLanguage.GLSL
** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
** - Beef will use enum classes in the Specification class located in the "Spv" namespace,
**     e.g.: Spv.Specification.SourceLanguage.GLSL
** 
** Some tokens act like mask values, which can be OR'd together,
** while others are mutually exclusive.  The mask-like ones have
** "Mask" in their name, and a parallel enum that has the shift
** amount (1 << x) for each corresponding enumerant.
*/

#ifndef spirv_H
#define spirv_H

SpvId;

#define SPV_VERSION
#define SPV_REVISION

static const unsigned int SpvMagicNumber =;
static const unsigned int SpvVersion =;
static const unsigned int SpvRevision =;
static const unsigned int SpvOpCodeMask =;
static const unsigned int SpvWordCountShift =;

SpvSourceLanguage;

SpvExecutionModel;

SpvAddressingModel;

SpvMemoryModel;

SpvExecutionMode;

SpvStorageClass;

SpvDim;

SpvSamplerAddressingMode;

SpvSamplerFilterMode;

SpvImageFormat;

SpvImageChannelOrder;

SpvImageChannelDataType;

SpvImageOperandsShift;

SpvImageOperandsMask;

SpvFPFastMathModeShift;

SpvFPFastMathModeMask;

SpvFPRoundingMode;

SpvLinkageType;

SpvAccessQualifier;

SpvFunctionParameterAttribute;

SpvDecoration;

SpvBuiltIn;

SpvSelectionControlShift;

SpvSelectionControlMask;

SpvLoopControlShift;

SpvLoopControlMask;

SpvFunctionControlShift;

SpvFunctionControlMask;

SpvMemorySemanticsShift;

SpvMemorySemanticsMask;

SpvMemoryAccessShift;

SpvMemoryAccessMask;

SpvScope;

SpvGroupOperation;

SpvKernelEnqueueFlags;

SpvKernelProfilingInfoShift;

SpvKernelProfilingInfoMask;

SpvCapability;

SpvRayFlagsShift;

SpvRayFlagsMask;

SpvRayQueryIntersection;

SpvRayQueryCommittedIntersectionType;

SpvRayQueryCandidateIntersectionType;

SpvFragmentShadingRateShift;

SpvFragmentShadingRateMask;

SpvFPDenormMode;

SpvFPOperationMode;

SpvQuantizationModes;

SpvOverflowModes;

SpvPackedVectorFormat;

SpvCooperativeMatrixOperandsShift;

SpvCooperativeMatrixOperandsMask;

SpvCooperativeMatrixLayout;

SpvCooperativeMatrixUse;

SpvInitializationModeQualifier;

SpvHostAccessQualifier;

SpvLoadCacheControl;

SpvStoreCacheControl;

SpvNamedMaximumNumberOfRegisters;

SpvRawAccessChainOperandsShift;

SpvRawAccessChainOperandsMask;

SpvFPEncoding;

SpvOp;

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

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

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

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

inline const char* SpvExecutionModeToString(SpvExecutionMode value) {
    switch (value) {
    case SpvExecutionModeInvocations: return "Invocations";
    case SpvExecutionModeSpacingEqual: return "SpacingEqual";
    case SpvExecutionModeSpacingFractionalEven: return "SpacingFractionalEven";
    case SpvExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd";
    case SpvExecutionModeVertexOrderCw: return "VertexOrderCw";
    case SpvExecutionModeVertexOrderCcw: return "VertexOrderCcw";
    case SpvExecutionModePixelCenterInteger: return "PixelCenterInteger";
    case SpvExecutionModeOriginUpperLeft: return "OriginUpperLeft";
    case SpvExecutionModeOriginLowerLeft: return "OriginLowerLeft";
    case SpvExecutionModeEarlyFragmentTests: return "EarlyFragmentTests";
    case SpvExecutionModePointMode: return "PointMode";
    case SpvExecutionModeXfb: return "Xfb";
    case SpvExecutionModeDepthReplacing: return "DepthReplacing";
    case SpvExecutionModeDepthGreater: return "DepthGreater";
    case SpvExecutionModeDepthLess: return "DepthLess";
    case SpvExecutionModeDepthUnchanged: return "DepthUnchanged";
    case SpvExecutionModeLocalSize: return "LocalSize";
    case SpvExecutionModeLocalSizeHint: return "LocalSizeHint";
    case SpvExecutionModeInputPoints: return "InputPoints";
    case SpvExecutionModeInputLines: return "InputLines";
    case SpvExecutionModeInputLinesAdjacency: return "InputLinesAdjacency";
    case SpvExecutionModeTriangles: return "Triangles";
    case SpvExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency";
    case SpvExecutionModeQuads: return "Quads";
    case SpvExecutionModeIsolines: return "Isolines";
    case SpvExecutionModeOutputVertices: return "OutputVertices";
    case SpvExecutionModeOutputPoints: return "OutputPoints";
    case SpvExecutionModeOutputLineStrip: return "OutputLineStrip";
    case SpvExecutionModeOutputTriangleStrip: return "OutputTriangleStrip";
    case SpvExecutionModeVecTypeHint: return "VecTypeHint";
    case SpvExecutionModeContractionOff: return "ContractionOff";
    case SpvExecutionModeInitializer: return "Initializer";
    case SpvExecutionModeFinalizer: return "Finalizer";
    case SpvExecutionModeSubgroupSize: return "SubgroupSize";
    case SpvExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup";
    case SpvExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId";
    case SpvExecutionModeLocalSizeId: return "LocalSizeId";
    case SpvExecutionModeLocalSizeHintId: return "LocalSizeHintId";
    case SpvExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT";
    case SpvExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT";
    case SpvExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT";
    case SpvExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR";
    case SpvExecutionModePostDepthCoverage: return "PostDepthCoverage";
    case SpvExecutionModeDenormPreserve: return "DenormPreserve";
    case SpvExecutionModeDenormFlushToZero: return "DenormFlushToZero";
    case SpvExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
    case SpvExecutionModeRoundingModeRTE: return "RoundingModeRTE";
    case SpvExecutionModeRoundingModeRTZ: return "RoundingModeRTZ";
    case SpvExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD";
    case SpvExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT";
    case SpvExecutionModeCoalescingAMDX: return "CoalescingAMDX";
    case 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 SpvExecutionModeOutputLinesEXT: return "OutputLinesEXT";
    case SpvExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT";
    case SpvExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV";
    case SpvExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV";
    case SpvExecutionModeOutputTrianglesEXT: return "OutputTrianglesEXT";
    case SpvExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT";
    case SpvExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT";
    case SpvExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT";
    case SpvExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT";
    case SpvExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT";
    case SpvExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
    case SpvExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL";
    case SpvExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL";
    case SpvExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL";
    case SpvExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL";
    case SpvExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL";
    case SpvExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL";
    case SpvExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL";
    case SpvExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL";
    case SpvExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL";
    case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
    case SpvExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
    case SpvExecutionModeFPFastMathDefault: return "FPFastMathDefault";
    case SpvExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
    case SpvExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
    case SpvExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
    case SpvExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL";
    case SpvExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL";
    case SpvExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL";
    default: return "Unknown";
    }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

inline const char* SpvFPEncodingToString(SpvFPEncoding value) {
    switch (value) {
    default: return "Unknown";
    }
}

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

#endif /* SPV_ENABLE_UTILITY_CODE */

#endif