https://github.com/shader-slang/slang
Raw File
Tip revision: 5902acdabc4445a65741a7a6a3a95f223e301059 authored by Yong He on 23 January 2024, 07:19:40 UTC
[LSP] Fetch configs directly from didConfigurationChanged message. (#3478)
Tip revision: 5902acd
slang-spirv-core-grammar-embed.cpp
// Source embedding for SPIR-V core grammar
//
// This file was carefully generated by a machine,
// don't even think about modifying it yourself!
//

#include "../core/slang-smart-pointer.h"
#include "../compiler-core/slang-spirv-core-grammar.h"
namespace Slang
{
using OperandKind = SPIRVCoreGrammarInfo::OperandKind;
using QualifiedEnumName = SPIRVCoreGrammarInfo::QualifiedEnumName;
using QualifiedEnumValue = SPIRVCoreGrammarInfo::QualifiedEnumValue;
static bool lookupSpvOp(const UnownedStringSlice& str, SpvOp& value)
{
    static const unsigned tableSalt[724] = {
        1, 0, 1, 1, 0, 0, 1, 3, 1, 0, 0, 7, 4, 2, 1, 2,
        0, 5, 0, 0, 2, 2, 2, 0, 3, 4, 2, 3, 0, 4, 5, 0,
        1, 1, 0, 0, 0, 1, 0, 3, 3, 0, 1, 4, 3, 0, 8, 3,
        1, 1, 0, 0, 0, 3, 0, 0, 4, 2, 0, 0, 9, 1, 0, 0,
        1, 1, 2, 1, 7, 4, 0, 0, 1, 3, 1, 1, 1, 0, 2, 0,
        0, 1, 3, 1, 3, 1, 0, 3, 3, 2, 0, 0, 0, 2, 0, 4,
        2, 4, 0, 0, 4, 0, 4, 0, 1, 1, 2, 11, 1, 0, 1, 1,
        0, 7, 7, 4, 0, 5, 0, 8, 1, 6, 1, 2, 1, 0, 1, 9,
        0, 0, 2, 7, 2, 2, 3, 1, 0, 0, 2, 3, 0, 0, 0, 0,
        0, 1, 4, 1, 3, 1, 1, 1, 1, 0, 0, 0, 1, 2, 3, 1,
        1, 3, 0, 0, 3, 0, 1, 0, 0, 4, 1, 11, 4, 3, 0, 0,
        0, 0, 2, 2, 7, 2, 0, 0, 3, 0, 3, 1, 1, 0, 0, 0,
        0, 1, 1, 1, 2, 0, 0, 0, 3, 1, 1, 0, 3, 0, 0, 1,
        0, 0, 1, 6, 0, 3, 4, 4, 0, 4, 1, 0, 3, 1, 0, 1,
        2, 0, 2, 0, 2, 5, 0, 0, 0, 1, 7, 0, 4, 0, 1, 0,
        1, 2, 0, 1, 3, 1, 2, 5, 0, 0, 0, 0, 0, 0, 3, 0,
        0, 0, 1, 0, 0, 4, 4, 0, 2, 0, 5, 1, 2, 0, 0, 1,
        0, 1, 7, 0, 6, 1, 3, 0, 1, 7, 2, 9, 3, 0, 1, 1,
        1, 7, 2, 4, 0, 3, 0, 0, 1, 1, 8, 5, 3, 1, 0, 0,
        1, 1, 2, 4, 1, 6, 0, 10, 7, 0, 3, 5, 0, 2, 0, 0,
        0, 4, 4, 5, 0, 2, 1, 1, 4, 1, 2, 0, 0, 0, 5, 0,
        7, 0, 1, 0, 0, 0, 1, 4, 2, 0, 1, 2, 0, 17, 2, 3,
        3, 3, 0, 0, 9, 7, 1, 1, 3, 13, 9, 0, 0, 4, 3, 2,
        0, 0, 7, 1, 0, 0, 0, 1, 6, 1, 2, 0, 2, 9, 1, 1,
        4, 5, 0, 1, 1, 1, 0, 10, 1, 3, 1, 2, 1, 1, 0, 2,
        8, 3, 0, 0, 5, 2, 4, 2, 14, 4, 0, 0, 0, 2, 0, 0,
        8, 1, 1, 0, 0, 0, 6, 7, 7, 1, 0, 0, 12, 3, 0, 0,
        10, 2, 5, 3, 7, 2, 0, 1, 1, 1, 0, 0, 0, 16, 1, 2,
        1, 0, 9, 2, 9, 9, 13, 3, 4, 0, 12, 6, 1, 1, 0, 1,
        3, 0, 1, 10, 13, 1, 0, 4, 5, 5, 22, 0, 3, 0, 5, 10,
        6, 5, 1, 0, 7, 0, 0, 0, 4, 2, 1, 23, 6, 0, 11, 0,
        0, 1, 6, 12, 0, 0, 0, 4, 4, 0, 8, 10, 2, 2, 6, 1,
        1, 0, 1, 17, 4, 0, 0, 9, 0, 2, 0, 1, 2, 1, 0, 0,
        3, 0, 13, 38, 2, 3, 30, 0, 4, 0, 0, 0, 0, 1, 13, 18,
        4, 14, 0, 2, 0, 10, 3, 1, 0, 0, 0, 0, 9, 41, 15, 31,
        0, 2, 0, 8, 1, 0, 1, 0, 4, 4, 0, 5, 48, 10, 0, 5,
        12, 62, 0, 1, 1, 0, 0, 0, 0, 0, 1, 12, 0, 14, 1, 3,
        8, 0, 0, 19, 2, 0, 39, 15, 21, 50, 15, 8, 0, 8, 4, 1,
        0, 0, 1, 0, 6, 0, 0, 7, 11, 14, 5, 0, 0, 1, 0, 14,
        0, 5, 0, 6, 15, 4, 40, 0, 12, 0, 14, 38, 20, 1, 0, 0,
        57, 0, 8, 6, 12, 0, 0, 14, 2, 2, 0, 0, 1, 3, 1, 1,
        26, 0, 8, 38, 0, 12, 0, 0, 4, 22, 6, 4, 0, 1, 46, 56,
        0, 5, 0, 0, 5, 14, 6, 0, 0, 1, 0, 37, 223, 0, 29, 2,
        0, 0, 2, 4, 0, 42, 96, 144, 146, 60, 19, 0, 208, 1, 0, 150,
        141, 1, 4, 1, 0, 0, 0, 2, 0, 5, 52, 7, 0, 1, 195, 31,
        0, 108, 992, 119
    };

    using KV = std::pair<const char*, SpvOp>;

    static const KV words[724] =
    {
        {"OpGroupNonUniformPartitionNV", static_cast<SpvOp>(5296)},
        {"OpGroupCommitWritePipe", static_cast<SpvOp>(288)},
        {"OpImageGather", static_cast<SpvOp>(96)},
        {"OpFunction", static_cast<SpvOp>(54)},
        {"OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL", static_cast<SpvOp>(5807)},
        {"OpImageSparseDrefGather", static_cast<SpvOp>(315)},
        {"OpConstantTrue", static_cast<SpvOp>(41)},
        {"OpSubgroupAvcSicConfigureSkcINTEL", static_cast<SpvOp>(5792)},
        {"OpGroupSMaxNonUniformAMD", static_cast<SpvOp>(5007)},
        {"OpTypeQueue", static_cast<SpvOp>(37)},
        {"OpTypeSampledImage", static_cast<SpvOp>(27)},
        {"OpFOrdNotEqual", static_cast<SpvOp>(182)},
        {"OpLabel", static_cast<SpvOp>(248)},
        {"OpShiftLeftLogical", static_cast<SpvOp>(196)},
        {"OpTraceRayMotionNV", static_cast<SpvOp>(5339)},
        {"OpFUnordGreaterThan", static_cast<SpvOp>(187)},
        {"OpTypeAccelerationStructureKHR", static_cast<SpvOp>(5341)},
        {"OpArbitraryFloatExpm1INTEL", static_cast<SpvOp>(5867)},
        {"OpTraceRayKHR", static_cast<SpvOp>(4445)},
        {"OpBitFieldInsert", static_cast<SpvOp>(201)},
        {"OpTypeCooperativeMatrixNV", static_cast<SpvOp>(5358)},
        {"OpBitFieldSExtract", static_cast<SpvOp>(202)},
        {"OpGroupFMulKHR", static_cast<SpvOp>(6402)},
        {"OpSubgroupShuffleXorINTEL", static_cast<SpvOp>(5574)},
        {"OpArbitraryFloatACosPiINTEL", static_cast<SpvOp>(5876)},
        {"OpConstant", static_cast<SpvOp>(43)},
        {"OpNoLine", static_cast<SpvOp>(317)},
        {"OpArbitraryFloatRecipINTEL", static_cast<SpvOp>(5855)},
        {"OpIAverageINTEL", static_cast<SpvOp>(5591)},
        {"OpHitObjectGetShaderRecordBufferHandleNV", static_cast<SpvOp>(5257)},
        {"OpSubgroupBallotKHR", static_cast<SpvOp>(4421)},
        {"OpGroupFMax", static_cast<SpvOp>(269)},
        {"OpSourceContinued", static_cast<SpvOp>(2)},
        {"OpImageBlockMatchSADQCOM", static_cast<SpvOp>(4483)},
        {"OpULessThan", static_cast<SpvOp>(176)},
        {"OpMatrixTimesVector", static_cast<SpvOp>(145)},
        {"OpSConvert", static_cast<SpvOp>(114)},
        {"OpIAddCarry", static_cast<SpvOp>(149)},
        {"OpFunctionCall", static_cast<SpvOp>(57)},
        {"OpArbitraryFloatCastToIntINTEL", static_cast<SpvOp>(5843)},
        {"OpImageSampleProjDrefExplicitLod", static_cast<SpvOp>(94)},
        {"OpAny", static_cast<SpvOp>(154)},
        {"OpImageSparseSampleImplicitLod", static_cast<SpvOp>(305)},
        {"OpSNegate", static_cast<SpvOp>(126)},
        {"OpGroupFMaxNonUniformAMD", static_cast<SpvOp>(5005)},
        {"OpGroupDecorate", static_cast<SpvOp>(74)},
        {"OpFragmentFetchAMD", static_cast<SpvOp>(5012)},
        {"OpSubgroupAllKHR", static_cast<SpvOp>(4428)},
        {"OpGetKernelNDrangeSubGroupCount", static_cast<SpvOp>(293)},
        {"OpHitObjectGetAttributesNV", static_cast<SpvOp>(5266)},
        {"OpRayQueryGetIntersectionObjectRayDirectionKHR", static_cast<SpvOp>(6027)},
        {"OpTypeRuntimeArray", static_cast<SpvOp>(29)},
        {"OpImageQuerySizeLod", static_cast<SpvOp>(103)},
        {"OpArbitraryFloatExp2INTEL", static_cast<SpvOp>(5865)},
        {"OpArbitraryFloatCosPiINTEL", static_cast<SpvOp>(5872)},
        {"OpArbitraryFloatLEINTEL", static_cast<SpvOp>(5853)},
        {"OpTypeEvent", static_cast<SpvOp>(34)},
        {"OpBitFieldUExtract", static_cast<SpvOp>(203)},
        {"OpHitObjectGetWorldRayDirectionNV", static_cast<SpvOp>(5272)},
        {"OpGroupFAdd", static_cast<SpvOp>(265)},
        {"OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL", static_cast<SpvOp>(5754)},
        {"OpEndStreamPrimitive", static_cast<SpvOp>(221)},
        {"OpPtrAccessChain", static_cast<SpvOp>(67)},
        {"OpFixedSinCosPiINTEL", static_cast<SpvOp>(5931)},
        {"OpImageSampleProjExplicitLod", static_cast<SpvOp>(92)},
        {"OpConvertFToBF16INTEL", static_cast<SpvOp>(6116)},
        {"OpGroupNonUniformLogicalXor", static_cast<SpvOp>(364)},
        {"OpSubgroupAvcMceGetInterDirectionsINTEL", static_cast<SpvOp>(5743)},
        {"OpRayQueryGetIntersectionWorldToObjectKHR", static_cast<SpvOp>(6032)},
        {"OpFOrdLessThanEqual", static_cast<SpvOp>(188)},
        {"OpAtomicISub", static_cast<SpvOp>(235)},
        {"OpCooperativeMatrixLoadKHR", static_cast<SpvOp>(4457)},
        {"OpMatrixTimesScalar", static_cast<SpvOp>(143)},
        {"OpAsmINTEL", static_cast<SpvOp>(5610)},
        {"OpFwidth", static_cast<SpvOp>(209)},
        {"OpAtomicFlagTestAndSet", static_cast<SpvOp>(318)},
        {"OpReadPipeBlockingINTEL", static_cast<SpvOp>(5946)},
        {"OpArbitraryFloatPowNINTEL", static_cast<SpvOp>(5882)},
        {"OpGroupLogicalOrKHR", static_cast<SpvOp>(6407)},
        {"OpGroupNonUniformBroadcastFirst", static_cast<SpvOp>(338)},
        {"OpTypeAvcImeResultINTEL", static_cast<SpvOp>(5706)},
        {"OpFDiv", static_cast<SpvOp>(136)},
        {"OpTerminateRayKHR", static_cast<SpvOp>(4449)},
        {"OpGetNumPipePackets", static_cast<SpvOp>(283)},
        {"OpDPdxFine", static_cast<SpvOp>(210)},
        {"OpDecorate", static_cast<SpvOp>(71)},
        {"OpGroupBitwiseXorKHR", static_cast<SpvOp>(6405)},
        {"OpCompositeConstruct", static_cast<SpvOp>(80)},
        {"OpSpecConstantComposite", static_cast<SpvOp>(51)},
        {"OpVectorTimesScalar", static_cast<SpvOp>(142)},
        {"OpConvertPtrToU", static_cast<SpvOp>(117)},
        {"OpCooperativeMatrixLengthKHR", static_cast<SpvOp>(4460)},
        {"OpImageSparseSampleDrefExplicitLod", static_cast<SpvOp>(308)},
        {"OpCaptureEventProfilingInfo", static_cast<SpvOp>(302)},
        {"OpCooperativeMatrixMulAddKHR", static_cast<SpvOp>(4459)},
        {"OpLogicalEqual", static_cast<SpvOp>(164)},
        {"OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL", static_cast<SpvOp>(5786)},
        {"OpUCountTrailingZerosINTEL", static_cast<SpvOp>(5586)},
        {"OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL", static_cast<SpvOp>(5762)},
        {"OpImageWrite", static_cast<SpvOp>(99)},
        {"OpFUnordLessThanEqual", static_cast<SpvOp>(189)},
        {"OpSubgroupAllEqualKHR", static_cast<SpvOp>(4430)},
        {"OpLessOrGreater", static_cast<SpvOp>(161)},
        {"OpSLessThanEqual", static_cast<SpvOp>(179)},
        {"OpFMul", static_cast<SpvOp>(133)},
        {"OpRayQueryConfirmIntersectionKHR", static_cast<SpvOp>(4476)},
        {"OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL", static_cast<SpvOp>(5725)},
        {"OpTraceNV", static_cast<SpvOp>(5337)},
        {"OpFixedRecipINTEL", static_cast<SpvOp>(5924)},
        {"OpTypePointer", static_cast<SpvOp>(32)},
        {"OpHitObjectGetInstanceCustomIndexNV", static_cast<SpvOp>(5271)},
        {"OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL", static_cast<SpvOp>(5729)},
        {"OpTypeAvcImeSingleReferenceStreaminINTEL", static_cast<SpvOp>(5709)},
        {"OpGroupNonUniformFMin", static_cast<SpvOp>(355)},
        {"OpArbitraryFloatACosINTEL", static_cast<SpvOp>(5875)},
        {"OpRayQueryInitializeKHR", static_cast<SpvOp>(4473)},
        {"OpSubgroupAvcImeGetDualReferenceStreaminINTEL", static_cast<SpvOp>(5767)},
        {"OpSubgroupAvcSicGetInterRawSadsINTEL", static_cast<SpvOp>(5816)},
        {"OpSubgroupReadInvocationKHR", static_cast<SpvOp>(4432)},
        {"OpISubSatINTEL", static_cast<SpvOp>(5595)},
        {"OpGroupNonUniformElect", static_cast<SpvOp>(333)},
        {"OpConvertUToPtr", static_cast<SpvOp>(120)},
        {"OpUnreachable", static_cast<SpvOp>(255)},
        {"OpUMul32x16INTEL", static_cast<SpvOp>(5598)},
        {"OpFixedLogINTEL", static_cast<SpvOp>(5932)},
        {"OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL", static_cast<SpvOp>(5788)},
        {"OpIgnoreIntersectionKHR", static_cast<SpvOp>(4448)},
        {"OpConstantNull", static_cast<SpvOp>(46)},
        {"OpEnqueueMarker", static_cast<SpvOp>(291)},
        {"OpConvertFToS", static_cast<SpvOp>(110)},
        {"OpCooperativeMatrixMulAddNV", static_cast<SpvOp>(5361)},
        {"OpImageSparseGather", static_cast<SpvOp>(314)},
        {"OpSubgroupAvcSicConfigureIpeLumaINTEL", static_cast<SpvOp>(5793)},
        {"OpReservedWritePipe", static_cast<SpvOp>(277)},
        {"OpVectorTimesMatrix", static_cast<SpvOp>(144)},
        {"OpGroupAsyncCopy", static_cast<SpvOp>(259)},
        {"OpNamedBarrierInitialize", static_cast<SpvOp>(328)},
        {"OpDecorateStringGOOGLE", static_cast<SpvOp>(5632)},
        {"OpRayQueryGetIntersectionTriangleVertexPositionsKHR", static_cast<SpvOp>(5340)},
        {"OpFPGARegINTEL", static_cast<SpvOp>(5949)},
        {"OpRayQueryGetIntersectionObjectToWorldKHR", static_cast<SpvOp>(6031)},
        {"OpArbitraryFloatLog10INTEL", static_cast<SpvOp>(5862)},
        {"OpArbitraryFloatATanINTEL", static_cast<SpvOp>(5877)},
        {"OpRayQueryProceedKHR", static_cast<SpvOp>(4477)},
        {"OpControlBarrier", static_cast<SpvOp>(224)},
        {"OpRayQueryGetIntersectionInstanceIdKHR", static_cast<SpvOp>(6020)},
        {"OpGroupBroadcast", static_cast<SpvOp>(263)},
        {"OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL", static_cast<SpvOp>(5730)},
        {"OpVariableLengthArrayINTEL", static_cast<SpvOp>(5818)},
        {"OpEmitVertex", static_cast<SpvOp>(218)},
        {"OpArbitraryFloatSinINTEL", static_cast<SpvOp>(5868)},
        {"OpSubgroupAvcImeSetDualReferenceINTEL", static_cast<SpvOp>(5749)},
        {"OpGetKernelLocalSizeForSubgroupCount", static_cast<SpvOp>(325)},
        {"OpDPdxCoarse", static_cast<SpvOp>(213)},
        {"OpAssumeTrueKHR", static_cast<SpvOp>(5630)},
        {"OpIAverageRoundedINTEL", static_cast<SpvOp>(5593)},
        {"OpFMod", static_cast<SpvOp>(141)},
        {"OpSubgroupAvcSicConvertToMcePayloadINTEL", static_cast<SpvOp>(5796)},
        {"OpGroupUMin", static_cast<SpvOp>(267)},
        {"OpCommitReadPipe", static_cast<SpvOp>(280)},
        {"OpAtomicSMin", static_cast<SpvOp>(236)},
        {"OpGroupNonUniformBallotFindMSB", static_cast<SpvOp>(344)},
        {"OpImageRead", static_cast<SpvOp>(98)},
        {"OpGroupNonUniformBallot", static_cast<SpvOp>(339)},
        {"OpArbitraryFloatCastFromIntINTEL", static_cast<SpvOp>(5842)},
        {"OpRestoreMemoryINTEL", static_cast<SpvOp>(5820)},
        {"OpMemoryBarrier", static_cast<SpvOp>(225)},
        {"OpTypePipeStorage", static_cast<SpvOp>(322)},
        {"OpRayQueryGetWorldRayOriginKHR", static_cast<SpvOp>(6030)},
        {"OpSubgroupBlockReadINTEL", static_cast<SpvOp>(5575)},
        {"OpIsValidEvent", static_cast<SpvOp>(300)},
        {"OpImageSparseRead", static_cast<SpvOp>(320)},
        {"OpSMulExtended", static_cast<SpvOp>(152)},
        {"OpConstantSampler", static_cast<SpvOp>(45)},
        {"OpRayQueryGetIntersectionTKHR", static_cast<SpvOp>(6018)},
        {"OpAliasDomainDeclINTEL", static_cast<SpvOp>(5911)},
        {"OpISub", static_cast<SpvOp>(130)},
        {"OpGroupIMulKHR", static_cast<SpvOp>(6401)},
        {"OpSubgroupAvcImeInitializeINTEL", static_cast<SpvOp>(5747)},
        {"OpReservedReadPipe", static_cast<SpvOp>(276)},
        {"OpEmitStreamVertex", static_cast<SpvOp>(220)},
        {"OpArbitraryFloatLogINTEL", static_cast<SpvOp>(5860)},
        {"OpCooperativeMatrixStoreNV", static_cast<SpvOp>(5360)},
        {"OpSubgroupAvcMceGetInterReferenceIdsINTEL", static_cast<SpvOp>(5745)},
        {"OpHitObjectGetHitKindNV", static_cast<SpvOp>(5267)},
        {"OpSRem", static_cast<SpvOp>(138)},
        {"OpDecorateId", static_cast<SpvOp>(332)},
        {"OpSatConvertUToS", static_cast<SpvOp>(119)},
        {"OpINotEqual", static_cast<SpvOp>(171)},
        {"OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL", static_cast<SpvOp>(5717)},
        {"OpLogicalOr", static_cast<SpvOp>(166)},
        {"OpPtrCastToGeneric", static_cast<SpvOp>(121)},
        {"OpGroupNonUniformBroadcast", static_cast<SpvOp>(337)},
        {"OpSUDot", static_cast<SpvOp>(4452)},
        {"OpBitwiseOr", static_cast<SpvOp>(197)},
        {"OpSubgroupAvcMceConvertToSicPayloadINTEL", static_cast<SpvOp>(5736)},
        {"OpBranch", static_cast<SpvOp>(249)},
        {"OpAtomicSMax", static_cast<SpvOp>(238)},
        {"OpTypeAvcMceResultINTEL", static_cast<SpvOp>(5705)},
        {"OpAtomicExchange", static_cast<SpvOp>(229)},
        {"OpSubgroupAvcMceConvertToSicResultINTEL", static_cast<SpvOp>(5737)},
        {"OpDPdyFine", static_cast<SpvOp>(211)},
        {"OpCapability", static_cast<SpvOp>(17)},
        {"OpTypeVoid", static_cast<SpvOp>(19)},
        {"OpWritePackedPrimitiveIndices4x8NV", static_cast<SpvOp>(5299)},
        {"OpStencilAttachmentReadEXT", static_cast<SpvOp>(4162)},
        {"OpSubgroupAvcMceGetInterMajorShapeINTEL", static_cast<SpvOp>(5741)},
        {"OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL", static_cast<SpvOp>(5797)},
        {"OpDemoteToHelperInvocationEXT", static_cast<SpvOp>(5380)},
        {"OpDemoteToHelperInvocation", static_cast<SpvOp>(5380)},
        {"OpAtomicAnd", static_cast<SpvOp>(240)},
        {"OpMemberDecorate", static_cast<SpvOp>(72)},
        {"OpSubgroupAvcImeRefWindowSizeINTEL", static_cast<SpvOp>(5750)},
        {"OpArbitraryFloatCastINTEL", static_cast<SpvOp>(5841)},
        {"OpAtomicUMin", static_cast<SpvOp>(237)},
        {"OpReleaseEvent", static_cast<SpvOp>(298)},
        {"OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL", static_cast<SpvOp>(5799)},
        {"OpGroupReserveReadPipePackets", static_cast<SpvOp>(285)},
        {"OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL", static_cast<SpvOp>(5771)},
        {"OpImageSampleProjDrefImplicitLod", static_cast<SpvOp>(93)},
        {"OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL", static_cast<SpvOp>(5777)},
        {"OpAccessChain", static_cast<SpvOp>(65)},
        {"OpGroupUMinNonUniformAMD", static_cast<SpvOp>(5003)},
        {"OpArbitraryFloatAddINTEL", static_cast<SpvOp>(5846)},
        {"OpCooperativeMatrixStoreKHR", static_cast<SpvOp>(4458)},
        {"OpSLessThan", static_cast<SpvOp>(177)},
        {"OpFUnordEqual", static_cast<SpvOp>(181)},
        {"OpNot", static_cast<SpvOp>(200)},
        {"OpUConvert", static_cast<SpvOp>(113)},
        {"OpCreatePipeFromPipeStorage", static_cast<SpvOp>(324)},
        {"OpArbitraryFloatSqrtINTEL", static_cast<SpvOp>(5859)},
        {"OpImage", static_cast<SpvOp>(100)},
        {"OpSubgroupAvcMceSetAcOnlyHaarINTEL", static_cast<SpvOp>(5728)},
        {"OpVmeImageINTEL", static_cast<SpvOp>(5699)},
        {"OpSUDotKHR", static_cast<SpvOp>(4452)},
        {"OpFwidthCoarse", static_cast<SpvOp>(215)},
        {"OpWritePipe", static_cast<SpvOp>(275)},
        {"OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL", static_cast<SpvOp>(5759)},
        {"OpAsmTargetINTEL", static_cast<SpvOp>(5609)},
        {"OpTypeStruct", static_cast<SpvOp>(30)},
        {"OpRayQueryGetRayTMinKHR", static_cast<SpvOp>(6016)},
        {"OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL", static_cast<SpvOp>(5731)},
        {"OpSUDotAccSatKHR", static_cast<SpvOp>(4455)},
        {"OpSubgroupAvcFmeInitializeINTEL", static_cast<SpvOp>(5781)},
        {"OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL", static_cast<SpvOp>(5722)},
        {"OpTypeReserveId", static_cast<SpvOp>(36)},
        {"OpUDot", static_cast<SpvOp>(4451)},
        {"OpFAdd", static_cast<SpvOp>(129)},
        {"OpArbitraryFloatRSqrtINTEL", static_cast<SpvOp>(5856)},
        {"OpImageTexelPointer", static_cast<SpvOp>(60)},
        {"OpSaveMemoryINTEL", static_cast<SpvOp>(5819)},
        {"OpLoopControlINTEL", static_cast<SpvOp>(5887)},
        {"OpLogicalNotEqual", static_cast<SpvOp>(165)},
        {"OpGroupIAdd", static_cast<SpvOp>(264)},
        {"OpMemoryModel", static_cast<SpvOp>(14)},
        {"OpIgnoreIntersectionNV", static_cast<SpvOp>(5335)},
        {"OpFixedExpINTEL", static_cast<SpvOp>(5933)},
        {"OpArbitraryFloatSinPiINTEL", static_cast<SpvOp>(5871)},
        {"OpRayQueryTerminateKHR", static_cast<SpvOp>(4474)},
        {"OpLogicalAnd", static_cast<SpvOp>(167)},
        {"OpFNegate", static_cast<SpvOp>(127)},
        {"OpConstantComposite", static_cast<SpvOp>(44)},
        {"OpUMulExtended", static_cast<SpvOp>(151)},
        {"OpSubgroupAvcBmeInitializeINTEL", static_cast<SpvOp>(5782)},
        {"OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL", static_cast<SpvOp>(5723)},
        {"OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL", static_cast<SpvOp>(5746)},
        {"OpSubgroupShuffleDownINTEL", static_cast<SpvOp>(5572)},
        {"OpGroupLogicalAndKHR", static_cast<SpvOp>(6406)},
        {"OpCrossWorkgroupCastToPtrINTEL", static_cast<SpvOp>(5938)},
        {"OpSubgroupAvcSicEvaluateIpeINTEL", static_cast<SpvOp>(5803)},
        {"OpSubgroupAvcMceConvertToImeResultINTEL", static_cast<SpvOp>(5733)},
        {"OpImageSparseSampleProjExplicitLod", static_cast<SpvOp>(310)},
        {"OpSubgroupAvcSicGetMotionVectorMaskINTEL", static_cast<SpvOp>(5795)},
        {"OpFetchMicroTriangleVertexPositionNV", static_cast<SpvOp>(5300)},
        {"OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL", static_cast<SpvOp>(5814)},
        {"OpReadClockKHR", static_cast<SpvOp>(5056)},
        {"OpSizeOf", static_cast<SpvOp>(321)},
        {"OpGroupFAddNonUniformAMD", static_cast<SpvOp>(5001)},
        {"OpSubgroupAvcSicGetIpeLumaShapeINTEL", static_cast<SpvOp>(5809)},
        {"OpCooperativeMatrixLoadNV", static_cast<SpvOp>(5359)},
        {"OpFixedSqrtINTEL", static_cast<SpvOp>(5923)},
        {"OpHitObjectRecordHitWithIndexMotionNV", static_cast<SpvOp>(5250)},
        {"OpExecutionMode", static_cast<SpvOp>(16)},
        {"OpIEqual", static_cast<SpvOp>(170)},
        {"OpFUnordNotEqual", static_cast<SpvOp>(183)},
        {"OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL", static_cast<SpvOp>(5720)},
        {"OpDot", static_cast<SpvOp>(148)},
        {"OpHitObjectTraceRayNV", static_cast<SpvOp>(5260)},
        {"OpGenericCastToPtr", static_cast<SpvOp>(122)},
        {"OpLifetimeStop", static_cast<SpvOp>(257)},
        {"OpReportIntersectionNV", static_cast<SpvOp>(5334)},
        {"OpReturnValue", static_cast<SpvOp>(254)},
        {"OpHitObjectRecordHitNV", static_cast<SpvOp>(5261)},
        {"OpFinalizeNodePayloadsAMDX", static_cast<SpvOp>(5075)},
        {"OpGroupAll", static_cast<SpvOp>(261)},
        {"OpReserveReadPipePackets", static_cast<SpvOp>(278)},
        {"OpPtrEqual", static_cast<SpvOp>(401)},
        {"OpHitObjectGetObjectRayOriginNV", static_cast<SpvOp>(5255)},
        {"OpBuildNDRange", static_cast<SpvOp>(304)},
        {"OpGroupSMax", static_cast<SpvOp>(271)},
        {"OpBranchConditional", static_cast<SpvOp>(250)},
        {"OpMemberDecorateStringGOOGLE", static_cast<SpvOp>(5633)},
        {"OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL", static_cast<SpvOp>(5755)},
        {"OpAtomicUMax", static_cast<SpvOp>(239)},
        {"OpArbitraryFloatLTINTEL", static_cast<SpvOp>(5852)},
        {"OpTypeAvcImeResultDualReferenceStreamoutINTEL", static_cast<SpvOp>(5708)},
        {"OpTypePipe", static_cast<SpvOp>(38)},
        {"OpConvertSToF", static_cast<SpvOp>(111)},
        {"OpFRem", static_cast<SpvOp>(140)},
        {"OpTranspose", static_cast<SpvOp>(84)},
        {"OpAtomicFlagClear", static_cast<SpvOp>(319)},
        {"OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL", static_cast<SpvOp>(5801)},
        {"OpUGreaterThanEqual", static_cast<SpvOp>(174)},
        {"OpTypeAvcRefPayloadINTEL", static_cast<SpvOp>(5702)},
        {"OpHitObjectRecordMissNV", static_cast<SpvOp>(5263)},
        {"OpSubgroupAvcImeAdjustRefOffsetINTEL", static_cast<SpvOp>(5751)},
        {"OpGroupNonUniformAny", static_cast<SpvOp>(335)},
        {"OpSubgroupFirstInvocationKHR", static_cast<SpvOp>(4422)},
        {"OpReserveWritePipePackets", static_cast<SpvOp>(279)},
        {"OpImageFetch", static_cast<SpvOp>(95)},
        {"OpGetDefaultQueue", static_cast<SpvOp>(303)},
        {"OpExecuteCallableNV", static_cast<SpvOp>(5344)},
        {"OpImageSparseSampleProjImplicitLod", static_cast<SpvOp>(309)},
        {"OpSpecConstantFalse", static_cast<SpvOp>(49)},
        {"OpGroupNonUniformLogicalOr", static_cast<SpvOp>(363)},
        {"OpReorderThreadWithHitObjectNV", static_cast<SpvOp>(5279)},
        {"OpGroupFMin", static_cast<SpvOp>(266)},
        {"OpIsNan", static_cast<SpvOp>(156)},
        {"OpAsmCallINTEL", static_cast<SpvOp>(5611)},
        {"OpTypeBool", static_cast<SpvOp>(20)},
        {"OpArbitraryFloatEQINTEL", static_cast<SpvOp>(5854)},
        {"OpExtInst", static_cast<SpvOp>(12)},
        {"OpHitObjectRecordEmptyNV", static_cast<SpvOp>(5259)},
        {"OpImageSparseFetch", static_cast<SpvOp>(313)},
        {"OpMatrixTimesMatrix", static_cast<SpvOp>(146)},
        {"OpControlBarrierArriveINTEL", static_cast<SpvOp>(6142)},
        {"OpArbitraryFloatGEINTEL", static_cast<SpvOp>(5851)},
        {"OpRayQueryGetRayFlagsKHR", static_cast<SpvOp>(6017)},
        {"OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL", static_cast<SpvOp>(5763)},
        {"OpSpecConstantCompositeContinuedINTEL", static_cast<SpvOp>(6092)},
        {"OpSubgroupAvcSicConvertToMceResultINTEL", static_cast<SpvOp>(5808)},
        {"OpSpecConstantOp", static_cast<SpvOp>(52)},
        {"OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL", static_cast<SpvOp>(5772)},
        {"OpImageQueryFormat", static_cast<SpvOp>(101)},
        {"OpGroupNonUniformBallotBitExtract", static_cast<SpvOp>(341)},
        {"OpGetKernelPreferredWorkGroupSizeMultiple", static_cast<SpvOp>(296)},
        {"OpSubgroupAvcImeEvaluateWithDualReferenceINTEL", static_cast<SpvOp>(5758)},
        {"OpUDotAccSat", static_cast<SpvOp>(4454)},
        {"OpImageSparseSampleExplicitLod", static_cast<SpvOp>(306)},
        {"OpSubgroupAvcImeConvertToMcePayloadINTEL", static_cast<SpvOp>(5752)},
        {"OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL", static_cast<SpvOp>(5727)},
        {"OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL", static_cast<SpvOp>(5760)},
        {"OpRayQueryGetIntersectionFrontFaceKHR", static_cast<SpvOp>(6025)},
        {"OpIAdd", static_cast<SpvOp>(128)},
        {"OpEndPrimitive", static_cast<SpvOp>(219)},
        {"OpSubgroupAvcMceSetInterShapePenaltyINTEL", static_cast<SpvOp>(5716)},
        {"OpGroupNonUniformFAdd", static_cast<SpvOp>(350)},
        {"OpRetainEvent", static_cast<SpvOp>(297)},
        {"OpHitObjectRecordHitWithIndexNV", static_cast<SpvOp>(5262)},
        {"OpSubgroupAnyKHR", static_cast<SpvOp>(4429)},
        {"OpUDotAccSatKHR", static_cast<SpvOp>(4454)},
        {"OpFUnordLessThan", static_cast<SpvOp>(185)},
        {"OpTypeCooperativeMatrixKHR", static_cast<SpvOp>(4456)},
        {"OpFixedSinCosINTEL", static_cast<SpvOp>(5928)},
        {"OpHitObjectGetObjectToWorldNV", static_cast<SpvOp>(5253)},
        {"OpFOrdLessThan", static_cast<SpvOp>(184)},
        {"OpTypeVmeImageINTEL", static_cast<SpvOp>(5700)},
        {"OpCreateUserEvent", static_cast<SpvOp>(299)},
        {"OpDPdx", static_cast<SpvOp>(207)},
        {"OpGroupBitwiseAndKHR", static_cast<SpvOp>(6403)},
        {"OpGroupNonUniformBitwiseXor", static_cast<SpvOp>(361)},
        {"OpUCountLeadingZerosINTEL", static_cast<SpvOp>(5585)},
        {"OpCopyLogical", static_cast<SpvOp>(400)},
        {"OpFunctionParameter", static_cast<SpvOp>(55)},
        {"OpRayQueryGetIntersectionGeometryIndexKHR", static_cast<SpvOp>(6022)},
        {"OpSubgroupAvcMceGetMotionVectorsINTEL", static_cast<SpvOp>(5738)},
        {"OpControlBarrierWaitINTEL", static_cast<SpvOp>(6143)},
        {"OpGroupNonUniformShuffleDown", static_cast<SpvOp>(348)},
        {"OpFixedRsqrtINTEL", static_cast<SpvOp>(5925)},
        {"OpGroupNonUniformBitwiseOr", static_cast<SpvOp>(360)},
        {"OpGroupSMinNonUniformAMD", static_cast<SpvOp>(5004)},
        {"OpTypeRayQueryKHR", static_cast<SpvOp>(4472)},
        {"OpLine", static_cast<SpvOp>(8)},
        {"OpSubgroupImageMediaBlockReadINTEL", static_cast<SpvOp>(5580)},
        {"OpTypeAvcRefResultINTEL", static_cast<SpvOp>(5711)},
        {"OpImageQuerySize", static_cast<SpvOp>(104)},
        {"OpCommitWritePipe", static_cast<SpvOp>(281)},
        {"OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL", static_cast<SpvOp>(5761)},
        {"OpHitObjectIsEmptyNV", static_cast<SpvOp>(5276)},
        {"OpHitObjectGetShaderBindingTableRecordIndexNV", static_cast<SpvOp>(5258)},
        {"OpSUDotAccSat", static_cast<SpvOp>(4455)},
        {"OpConvertSamplerToUNV", static_cast<SpvOp>(5394)},
        {"OpWritePipeBlockingINTEL", static_cast<SpvOp>(5947)},
        {"OpTraceMotionNV", static_cast<SpvOp>(5338)},
        {"OpShiftRightArithmetic", static_cast<SpvOp>(195)},
        {"OpTypeInt", static_cast<SpvOp>(21)},
        {"OpTypeAvcImeDualReferenceStreaminINTEL", static_cast<SpvOp>(5710)},
        {"OpSubgroupImageBlockWriteINTEL", static_cast<SpvOp>(5578)},
        {"OpImageQuerySamples", static_cast<SpvOp>(107)},
        {"OpAliasScopeDeclINTEL", static_cast<SpvOp>(5912)},
        {"OpFUnordGreaterThanEqual", static_cast<SpvOp>(191)},
        {"OpVectorInsertDynamic", static_cast<SpvOp>(78)},
        {"OpTypeAvcMcePayloadINTEL", static_cast<SpvOp>(5704)},
        {"OpUMod", static_cast<SpvOp>(137)},
        {"OpImageSparseSampleDrefImplicitLod", static_cast<SpvOp>(307)},
        {"OpTypeSampler", static_cast<SpvOp>(26)},
        {"OpConstantCompositeContinuedINTEL", static_cast<SpvOp>(6091)},
        {"OpSignBitSet", static_cast<SpvOp>(160)},
        {"OpGroupNonUniformShuffleXor", static_cast<SpvOp>(346)},
        {"OpSubgroupAvcRefSetBidirectionalMixDisableINTEL", static_cast<SpvOp>(5784)},
        {"OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL", static_cast<SpvOp>(5811)},
        {"OpDPdy", static_cast<SpvOp>(208)},
        {"OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL", static_cast<SpvOp>(5726)},
        {"OpEndInvocationInterlockEXT", static_cast<SpvOp>(5365)},
        {"OpGroupNonUniformQuadSwap", static_cast<SpvOp>(366)},
        {"OpRayQueryGetIntersectionInstanceCustomIndexKHR", static_cast<SpvOp>(6019)},
        {"OpSourceExtension", static_cast<SpvOp>(4)},
        {"OpSelectionMerge", static_cast<SpvOp>(247)},
        {"OpIAddSatINTEL", static_cast<SpvOp>(5589)},
        {"OpColorAttachmentReadEXT", static_cast<SpvOp>(4160)},
        {"OpConvertSampledImageToUNV", static_cast<SpvOp>(5396)},
        {"OpIsFinite", static_cast<SpvOp>(158)},
        {"OpHitObjectGetCurrentTimeNV", static_cast<SpvOp>(5265)},
        {"OpSubgroupAvcRefConvertToMceResultINTEL", static_cast<SpvOp>(5790)},
        {"OpHitObjectGetRayTMaxNV", static_cast<SpvOp>(5274)},
        {"OpSetUserEventStatus", static_cast<SpvOp>(301)},
        {"OpKill", static_cast<SpvOp>(252)},
        {"OpPhi", static_cast<SpvOp>(245)},
        {"OpHitObjectRecordHitMotionNV", static_cast<SpvOp>(5249)},
        {"OpFragmentMaskFetchAMD", static_cast<SpvOp>(5011)},
        {"OpImageSampleExplicitLod", static_cast<SpvOp>(88)},
        {"OpGroupIAddNonUniformAMD", static_cast<SpvOp>(5000)},
        {"OpMemberDecorateString", static_cast<SpvOp>(5633)},
        {"OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL", static_cast<SpvOp>(5721)},
        {"OpArbitraryFloatPowINTEL", static_cast<SpvOp>(5880)},
        {"OpLifetimeStart", static_cast<SpvOp>(256)},
        {"OpImageSampleDrefImplicitLod", static_cast<SpvOp>(89)},
        {"OpShiftRightLogical", static_cast<SpvOp>(194)},
        {"OpSMod", static_cast<SpvOp>(139)},
        {"OpTypeDeviceEvent", static_cast<SpvOp>(35)},
        {"OpModuleProcessed", static_cast<SpvOp>(330)},
        {"OpConstantFunctionPointerINTEL", static_cast<SpvOp>(5600)},
        {"OpHitObjectExecuteShaderNV", static_cast<SpvOp>(5264)},
        {"OpSubgroupAvcSicInitializeINTEL", static_cast<SpvOp>(5791)},
        {"OpIsValidReserveId", static_cast<SpvOp>(282)},
        {"OpTypeBufferSurfaceINTEL", static_cast<SpvOp>(6086)},
        {"OpUAddSatINTEL", static_cast<SpvOp>(5590)},
        {"OpCopyMemory", static_cast<SpvOp>(63)},
        {"OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL", static_cast<SpvOp>(5806)},
        {"OpUDiv", static_cast<SpvOp>(134)},
        {"OpImageSampleWeightedQCOM", static_cast<SpvOp>(4480)},
        {"OpGetMaxPipePackets", static_cast<SpvOp>(284)},
        {"OpHitObjectGetInstanceIdNV", static_cast<SpvOp>(5270)},
        {"OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL", static_cast<SpvOp>(5773)},
        {"OpArbitraryFloatASinINTEL", static_cast<SpvOp>(5873)},
        {"OpAtomicIDecrement", static_cast<SpvOp>(233)},
        {"OpDecorationGroup", static_cast<SpvOp>(73)},
        {"OpSubgroupAvcMceGetInterMotionVectorCountINTEL", static_cast<SpvOp>(5744)},
        {"OpTypeMatrix", static_cast<SpvOp>(24)},
        {"OpTypeFloat", static_cast<SpvOp>(22)},
        {"OpExecutionModeId", static_cast<SpvOp>(331)},
        {"OpSubgroupAvcImeGetBorderReachedINTEL", static_cast<SpvOp>(5776)},
        {"OpGroupNonUniformUMax", static_cast<SpvOp>(357)},
        {"OpGroupSMin", static_cast<SpvOp>(268)},
        {"OpSubgroupAvcSicConfigureIpeLumaChromaINTEL", static_cast<SpvOp>(5794)},
        {"OpGroupUMax", static_cast<SpvOp>(270)},
        {"OpAbsUSubINTEL", static_cast<SpvOp>(5588)},
        {"OpArbitraryFloatCbrtINTEL", static_cast<SpvOp>(5857)},
        {"OpGroupFMinNonUniformAMD", static_cast<SpvOp>(5002)},
        {"OpFinishWritingNodePayloadAMDX", static_cast<SpvOp>(5078)},
        {"OpTypeVector", static_cast<SpvOp>(23)},
        {"OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL", static_cast<SpvOp>(5770)},
        {"OpRayQueryGetWorldRayDirectionKHR", static_cast<SpvOp>(6029)},
        {"OpBitCount", static_cast<SpvOp>(205)},
        {"OpGroupNonUniformAll", static_cast<SpvOp>(334)},
        {"OpImageSampleDrefExplicitLod", static_cast<SpvOp>(90)},
        {"OpHitObjectGetWorldToObjectNV", static_cast<SpvOp>(5252)},
        {"OpRayQueryGetIntersectionBarycentricsKHR", static_cast<SpvOp>(6024)},
        {"OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL", static_cast<SpvOp>(5719)},
        {"OpHitObjectIsMissNV", static_cast<SpvOp>(5278)},
        {"OpSubgroupAvcImeStripDualReferenceStreamoutINTEL", static_cast<SpvOp>(5769)},
        {"OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL", static_cast<SpvOp>(5779)},
        {"OpSubgroupShuffleUpINTEL", static_cast<SpvOp>(5573)},
        {"OpAtomicXor", static_cast<SpvOp>(242)},
        {"OpTypeArray", static_cast<SpvOp>(28)},
        {"OpSpecConstantTrue", static_cast<SpvOp>(48)},
        {"OpArbitraryFloatATan2INTEL", static_cast<SpvOp>(5879)},
        {"OpTerminateRayNV", static_cast<SpvOp>(5336)},
        {"OpAtomicFAddEXT", static_cast<SpvOp>(6035)},
        {"OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL", static_cast<SpvOp>(5713)},
        {"OpHitObjectRecordMissMotionNV", static_cast<SpvOp>(5251)},
        {"OpBitwiseXor", static_cast<SpvOp>(198)},
        {"OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL", static_cast<SpvOp>(5775)},
        {"OpSubgroupImageMediaBlockWriteINTEL", static_cast<SpvOp>(5581)},
        {"OpInitializeNodePayloadsAMDX", static_cast<SpvOp>(5090)},
        {"OpSubgroupAvcImeSetMaxMotionVectorCountINTEL", static_cast<SpvOp>(5753)},
        {"OpArbitraryFloatCosINTEL", static_cast<SpvOp>(5869)},
        {"OpSGreaterThanEqual", static_cast<SpvOp>(175)},
        {"OpAbsISubINTEL", static_cast<SpvOp>(5587)},
        {"OpIsInf", static_cast<SpvOp>(157)},
        {"OpCompositeExtract", static_cast<SpvOp>(81)},
        {"OpConvertUToF", static_cast<SpvOp>(112)},
        {"OpIMul", static_cast<SpvOp>(132)},
        {"OpImageSparseSampleProjDrefImplicitLod", static_cast<SpvOp>(311)},
        {"OpTypeNamedBarrier", static_cast<SpvOp>(327)},
        {"OpFunctionEnd", static_cast<SpvOp>(56)},
        {"OpArbitraryFloatMulINTEL", static_cast<SpvOp>(5848)},
        {"OpTerminateInvocation", static_cast<SpvOp>(4416)},
        {"OpEmitMeshTasksEXT", static_cast<SpvOp>(5294)},
        {"OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL", static_cast<SpvOp>(5804)},
        {"OpSamplerImageAddressingModeNV", static_cast<SpvOp>(5397)},
        {"OpUDotKHR", static_cast<SpvOp>(4451)},
        {"OpSubgroupAvcMceGetInterDistortionsINTEL", static_cast<SpvOp>(5739)},
        {"OpImageSampleImplicitLod", static_cast<SpvOp>(87)},
        {"OpULessThanEqual", static_cast<SpvOp>(178)},
        {"OpStore", static_cast<SpvOp>(62)},
        {"OpImageSampleFootprintNV", static_cast<SpvOp>(5283)},
        {"OpGetKernelWorkGroupSize", static_cast<SpvOp>(295)},
        {"OpReorderThreadWithHintNV", static_cast<SpvOp>(5280)},
        {"OpFunctionPointerCallINTEL", static_cast<SpvOp>(5601)},
        {"OpHitObjectTraceRayMotionNV", static_cast<SpvOp>(5256)},
        {"OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL", static_cast<SpvOp>(5778)},
        {"OpOuterProduct", static_cast<SpvOp>(147)},
        {"OpAtomicLoad", static_cast<SpvOp>(227)},
        {"OpConvertUToSampledImageNV", static_cast<SpvOp>(5395)},
        {"OpGroupWaitEvents", static_cast<SpvOp>(260)},
        {"OpSubgroupAvcMceGetInterMinorShapeINTEL", static_cast<SpvOp>(5742)},
        {"OpExtension", static_cast<SpvOp>(10)},
        {"OpSGreaterThan", static_cast<SpvOp>(173)},
        {"OpTypeOpaque", static_cast<SpvOp>(31)},
        {"OpExtInstImport", static_cast<SpvOp>(11)},
        {"OpUAverageINTEL", static_cast<SpvOp>(5592)},
        {"OpFConvert", static_cast<SpvOp>(115)},
        {"OpSubgroupAvcSicGetIpeChromaModeINTEL", static_cast<SpvOp>(5813)},
        {"OpArbitraryFloatGTINTEL", static_cast<SpvOp>(5850)},
        {"OpSubgroupAvcMceConvertToRefPayloadINTEL", static_cast<SpvOp>(5734)},
        {"OpLoad", static_cast<SpvOp>(61)},
        {"OpArbitraryFloatSubINTEL", static_cast<SpvOp>(5847)},
        {"OpLoopMerge", static_cast<SpvOp>(246)},
        {"OpTypeStructContinuedINTEL", static_cast<SpvOp>(6090)},
        {"OpConvertUToImageNV", static_cast<SpvOp>(5391)},
        {"OpSDotAccSat", static_cast<SpvOp>(4453)},
        {"OpBitwiseAnd", static_cast<SpvOp>(199)},
        {"OpArbitraryFloatDivINTEL", static_cast<SpvOp>(5849)},
        {"OpHitObjectGetPrimitiveIndexNV", static_cast<SpvOp>(5268)},
        {"OpGroupNonUniformIMul", static_cast<SpvOp>(351)},
        {"OpArrayLength", static_cast<SpvOp>(68)},
        {"OpSetMeshOutputsEXT", static_cast<SpvOp>(5295)},
        {"OpFwidthFine", static_cast<SpvOp>(212)},
        {"OpAtomicOr", static_cast<SpvOp>(241)},
        {"OpDPdyCoarse", static_cast<SpvOp>(214)},
        {"OpSelect", static_cast<SpvOp>(169)},
        {"OpImageQueryLevels", static_cast<SpvOp>(106)},
        {"OpGroupNonUniformSMax", static_cast<SpvOp>(356)},
        {"OpImageDrefGather", static_cast<SpvOp>(97)},
        {"OpRayQueryGenerateIntersectionKHR", static_cast<SpvOp>(4475)},
        {"OpGroupNonUniformIAdd", static_cast<SpvOp>(349)},
        {"OpTypeAvcSicResultINTEL", static_cast<SpvOp>(5712)},
        {"OpISubBorrow", static_cast<SpvOp>(150)},
        {"OpHitObjectGetRayTMinNV", static_cast<SpvOp>(5275)},
        {"OpUGreaterThan", static_cast<SpvOp>(172)},
        {"OpConvertUToSamplerNV", static_cast<SpvOp>(5392)},
        {"OpGroupNonUniformInverseBallot", static_cast<SpvOp>(340)},
        {"OpHitObjectIsHitNV", static_cast<SpvOp>(5277)},
        {"OpExpectKHR", static_cast<SpvOp>(5631)},
        {"OpFOrdGreaterThanEqual", static_cast<SpvOp>(190)},
        {"OpAtomicCompareExchangeWeak", static_cast<SpvOp>(231)},
        {"OpGroupNonUniformSMin", static_cast<SpvOp>(353)},
        {"OpRayQueryGetIntersectionObjectRayOriginKHR", static_cast<SpvOp>(6028)},
        {"OpGroupNonUniformUMin", static_cast<SpvOp>(354)},
        {"OpQuantizeToF16", static_cast<SpvOp>(116)},
        {"OpImageSparseTexelsResident", static_cast<SpvOp>(316)},
        {"OpImageQueryLod", static_cast<SpvOp>(105)},
        {"OpCopyObject", static_cast<SpvOp>(83)},
        {"OpGroupNonUniformAllEqual", static_cast<SpvOp>(336)},
        {"OpGroupNonUniformQuadBroadcast", static_cast<SpvOp>(365)},
        {"OpUnordered", static_cast<SpvOp>(163)},
        {"OpOrdered", static_cast<SpvOp>(162)},
        {"OpArbitraryFloatExpINTEL", static_cast<SpvOp>(5864)},
        {"OpFixedCosPiINTEL", static_cast<SpvOp>(5930)},
        {"OpSubgroupAvcMceConvertToRefResultINTEL", static_cast<SpvOp>(5735)},
        {"OpVectorExtractDynamic", static_cast<SpvOp>(77)},
        {"OpRayQueryGetIntersectionCandidateAABBOpaqueKHR", static_cast<SpvOp>(6026)},
        {"OpAtomicIAdd", static_cast<SpvOp>(234)},
        {"OpVectorShuffle", static_cast<SpvOp>(79)},
        {"OpSubgroupAvcRefSetBilinearFilterEnableINTEL", static_cast<SpvOp>(5785)},
        {"OpDepthAttachmentReadEXT", static_cast<SpvOp>(4161)},
        {"OpGenericPtrMemSemantics", static_cast<SpvOp>(69)},
        {"OpImageBoxFilterQCOM", static_cast<SpvOp>(4481)},
        {"OpSubgroupAvcImeSetSingleReferenceINTEL", static_cast<SpvOp>(5748)},
        {"OpTypeHitObjectNV", static_cast<SpvOp>(5281)},
        {"OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL", static_cast<SpvOp>(5715)},
        {"OpConvertFToU", static_cast<SpvOp>(109)},
        {"OpCompositeInsert", static_cast<SpvOp>(82)},
        {"OpImageSampleProjImplicitLod", static_cast<SpvOp>(91)},
        {"OpMemberName", static_cast<SpvOp>(6)},
        {"OpUAverageRoundedINTEL", static_cast<SpvOp>(5594)},
        {"OpSubgroupShuffleINTEL", static_cast<SpvOp>(5571)},
        {"OpSampledImage", static_cast<SpvOp>(86)},
        {"OpTypeForwardPointer", static_cast<SpvOp>(39)},
        {"OpHitObjectGetObjectRayDirectionNV", static_cast<SpvOp>(5254)},
        {"OpSubgroupAvcImeGetSingleReferenceStreaminINTEL", static_cast<SpvOp>(5766)},
        {"OpFixedCosINTEL", static_cast<SpvOp>(5927)},
        {"OpSubgroupImageBlockReadINTEL", static_cast<SpvOp>(5577)},
        {"OpImageSparseSampleProjDrefExplicitLod", static_cast<SpvOp>(312)},
        {"OpArbitraryFloatASinPiINTEL", static_cast<SpvOp>(5874)},
        {"OpGroupLogicalXorKHR", static_cast<SpvOp>(6408)},
        {"OpCompositeConstructContinuedINTEL", static_cast<SpvOp>(6096)},
        {"OpDecorateString", static_cast<SpvOp>(5632)},
        {"OpSpecConstant", static_cast<SpvOp>(50)},
        {"OpConvertBF16ToFINTEL", static_cast<SpvOp>(6117)},
        {"OpSatConvertSToU", static_cast<SpvOp>(118)},
        {"OpSwitch", static_cast<SpvOp>(251)},
        {"OpAtomicIIncrement", static_cast<SpvOp>(232)},
        {"OpInBoundsAccessChain", static_cast<SpvOp>(66)},
        {"OpConvertImageToUNV", static_cast<SpvOp>(5393)},
        {"OpArbitraryFloatLog2INTEL", static_cast<SpvOp>(5861)},
        {"OpTypeAvcImeResultSingleReferenceStreamoutINTEL", static_cast<SpvOp>(5707)},
        {"OpTypeFunction", static_cast<SpvOp>(33)},
        {"OpGroupNonUniformFMul", static_cast<SpvOp>(352)},
        {"OpIsNormal", static_cast<SpvOp>(159)},
        {"OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL", static_cast<SpvOp>(5780)},
        {"OpGroupNonUniformBitwiseAnd", static_cast<SpvOp>(359)},
        {"OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL", static_cast<SpvOp>(5802)},
        {"OpAtomicStore", static_cast<SpvOp>(228)},
        {"OpAll", static_cast<SpvOp>(155)},
        {"OpExecuteCallableKHR", static_cast<SpvOp>(4446)},
        {"OpEntryPoint", static_cast<SpvOp>(15)},
        {"OpArbitraryFloatSinCosINTEL", static_cast<SpvOp>(5870)},
        {"OpFOrdEqual", static_cast<SpvOp>(180)},
        {"OpGroupAny", static_cast<SpvOp>(262)},
        {"OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL", static_cast<SpvOp>(5764)},
        {"OpGroupNonUniformRotateKHR", static_cast<SpvOp>(4431)},
        {"OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL", static_cast<SpvOp>(5768)},
        {"OpMemoryNamedBarrier", static_cast<SpvOp>(329)},
        {"OpConvertUToAccelerationStructureKHR", static_cast<SpvOp>(4447)},
        {"OpIMul32x16INTEL", static_cast<SpvOp>(5597)},
        {"OpRayQueryGetIntersectionTypeKHR", static_cast<SpvOp>(4479)},
        {"OpEnqueueKernel", static_cast<SpvOp>(292)},
        {"OpImageBlockMatchSSDQCOM", static_cast<SpvOp>(4482)},
        {"OpReadPipe", static_cast<SpvOp>(274)},
        {"OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL", static_cast<SpvOp>(5815)},
        {"OpTypeAvcSicPayloadINTEL", static_cast<SpvOp>(5703)},
        {"OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL", static_cast<SpvOp>(5724)},
        {"OpGroupNonUniformBallotFindLSB", static_cast<SpvOp>(343)},
        {"OpGroupReserveWritePipePackets", static_cast<SpvOp>(286)},
        {"OpAtomicCompareExchange", static_cast<SpvOp>(230)},
        {"OpGetKernelNDrangeMaxSubGroupSize", static_cast<SpvOp>(294)},
        {"OpSubgroupAvcSicSetBilinearFilterEnableINTEL", static_cast<SpvOp>(5800)},
        {"OpSubgroupAvcMceGetBestInterDistortionsINTEL", static_cast<SpvOp>(5740)},
        {"OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL", static_cast<SpvOp>(5789)},
        {"OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR", static_cast<SpvOp>(6021)},
        {"OpPtrDiff", static_cast<SpvOp>(403)},
        {"OpSDotKHR", static_cast<SpvOp>(4450)},
        {"OpArbitraryFloatSinCosPiINTEL", static_cast<SpvOp>(5840)},
        {"OpImageQueryOrder", static_cast<SpvOp>(102)},
        {"OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL", static_cast<SpvOp>(5774)},
        {"OpTypeAccelerationStructureNV", static_cast<SpvOp>(5341)},
        {"OpReturn", static_cast<SpvOp>(253)},
        {"OpInBoundsPtrAccessChain", static_cast<SpvOp>(70)},
        {"OpConstantFalse", static_cast<SpvOp>(42)},
        {"OpBitReverse", static_cast<SpvOp>(204)},
        {"OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL", static_cast<SpvOp>(5798)},
        {"OpArbitraryFloatPowRINTEL", static_cast<SpvOp>(5881)},
        {"OpSDot", static_cast<SpvOp>(4450)},
        {"OpFixedSinINTEL", static_cast<SpvOp>(5926)},
        {"OpReportIntersectionKHR", static_cast<SpvOp>(5334)},
        {"OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL", static_cast<SpvOp>(5714)},
        {"OpGetKernelMaxNumSubgroups", static_cast<SpvOp>(326)},
        {"OpUSubSatINTEL", static_cast<SpvOp>(5596)},
        {"OpHitObjectGetGeometryIndexNV", static_cast<SpvOp>(5269)},
        {"OpGroupNonUniformBallotBitCount", static_cast<SpvOp>(342)},
        {"OpArbitraryFloatHypotINTEL", static_cast<SpvOp>(5858)},
        {"OpSubgroupAvcMceConvertToImePayloadINTEL", static_cast<SpvOp>(5732)},
        {"OpPtrNotEqual", static_cast<SpvOp>(402)},
        {"OpString", static_cast<SpvOp>(7)},
        {"OpGroupNonUniformShuffle", static_cast<SpvOp>(345)},
        {"OpGroupNonUniformLogicalAnd", static_cast<SpvOp>(362)},
        {"OpSDotAccSatKHR", static_cast<SpvOp>(4453)},
        {"OpFixedSinPiINTEL", static_cast<SpvOp>(5929)},
        {"OpSDiv", static_cast<SpvOp>(135)},
        {"OpHitObjectGetWorldRayOriginNV", static_cast<SpvOp>(5273)},
        {"OpSubgroupAvcMceSetInterDirectionPenaltyINTEL", static_cast<SpvOp>(5718)},
        {"OpGroupCommitReadPipe", static_cast<SpvOp>(287)},
        {"OpCopyMemorySized", static_cast<SpvOp>(64)},
        {"OpArbitraryFloatATanPiINTEL", static_cast<SpvOp>(5878)},
        {"OpGroupNonUniformFMax", static_cast<SpvOp>(358)},
        {"OpName", static_cast<SpvOp>(5)},
        {"OpSubgroupAvcImeSetWeightedSadINTEL", static_cast<SpvOp>(5756)},
        {"OpAtomicFMaxEXT", static_cast<SpvOp>(5615)},
        {"OpUndef", static_cast<SpvOp>(1)},
        {"OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL", static_cast<SpvOp>(5810)},
        {"OpPtrCastToCrossWorkgroupINTEL", static_cast<SpvOp>(5934)},
        {"OpGroupNonUniformShuffleUp", static_cast<SpvOp>(347)},
        {"OpSubgroupAvcSicEvaluateWithDualReferenceINTEL", static_cast<SpvOp>(5805)},
        {"OpGroupBitwiseOrKHR", static_cast<SpvOp>(6404)},
        {"OpLogicalNot", static_cast<SpvOp>(168)},
        {"OpAliasScopeListDeclINTEL", static_cast<SpvOp>(5913)},
        {"OpTypeAvcImePayloadINTEL", static_cast<SpvOp>(5701)},
        {"OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL", static_cast<SpvOp>(5757)},
        {"OpSubgroupBlockWriteINTEL", static_cast<SpvOp>(5576)},
        {"OpVariable", static_cast<SpvOp>(59)},
        {"OpSubgroupAvcRefConvertToMcePayloadINTEL", static_cast<SpvOp>(5783)},
        {"OpArbitraryFloatLog1pINTEL", static_cast<SpvOp>(5863)},
        {"OpSubgroupAvcRefEvaluateWithDualReferenceINTEL", static_cast<SpvOp>(5787)},
        {"OpNop", static_cast<SpvOp>(0)},
        {"OpArbitraryFloatExp10INTEL", static_cast<SpvOp>(5866)},
        {"OpIsHelperInvocationEXT", static_cast<SpvOp>(5381)},
        {"OpBeginInvocationInterlockEXT", static_cast<SpvOp>(5364)},
        {"OpSource", static_cast<SpvOp>(3)},
        {"OpAtomicFMinEXT", static_cast<SpvOp>(5614)},
        {"OpConstantPipeStorage", static_cast<SpvOp>(323)},
        {"OpFOrdGreaterThan", static_cast<SpvOp>(186)},
        {"OpGenericCastToPtrExplicit", static_cast<SpvOp>(123)},
        {"OpGroupMemberDecorate", static_cast<SpvOp>(75)},
        {"OpSubgroupAvcSicGetPackedIpeLumaModesINTEL", static_cast<SpvOp>(5812)},
        {"OpGroupUMaxNonUniformAMD", static_cast<SpvOp>(5006)},
        {"OpBitcast", static_cast<SpvOp>(124)},
        {"OpRayQueryGetIntersectionPrimitiveIndexKHR", static_cast<SpvOp>(6023)},
        {"OpFSub", static_cast<SpvOp>(131)},
        {"OpSubgroupAvcImeConvertToMceResultINTEL", static_cast<SpvOp>(5765)},
        {"OpTypeImage", static_cast<SpvOp>(25)},
        {"OpFetchMicroTriangleVertexBarycentricNV", static_cast<SpvOp>(5301)},
        {"OpCooperativeMatrixLengthNV", static_cast<SpvOp>(5362)},
    };

    static const auto hash = [](const UnownedStringSlice& str, UInt32 salt){
        UInt32 h = salt;
        for (const char c : str)
            h = (h * 0x01000193) ^ c;
        return h % 724;
    };

    const auto i = hash(str, tableSalt[hash(str, 0)]);
    if(str == words[i].first)
    {
        value = words[i].second;
        return true;
    }
    else
    {
        return false;
    }
}

static bool lookupSpvCapability(const UnownedStringSlice& str, SpvCapability& value)
{
    static const unsigned tableSalt[252] = {
        2, 1, 2, 1, 2, 0, 2, 0, 3, 1, 5, 1, 10, 0, 7, 0,
        3, 0, 0, 7, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 5,
        1, 0, 0, 0, 1, 10, 1, 2, 2, 0, 2, 0, 0, 5, 1, 1,
        0, 3, 1, 1, 2, 1, 0, 1, 1, 1, 0, 2, 0, 5, 0, 3,
        12, 1, 0, 0, 1, 5, 0, 0, 5, 0, 1, 1, 0, 3, 3, 2,
        8, 2, 1, 5, 2, 0, 3, 1, 1, 0, 5, 1, 2, 5, 0, 2,
        5, 1, 0, 2, 0, 2, 9, 8, 0, 0, 6, 1, 1, 7, 0, 0,
        4, 0, 7, 0, 4, 6, 0, 9, 0, 0, 3, 0, 0, 3, 20, 0,
        0, 1, 2, 0, 1, 2, 1, 4, 1, 0, 7, 2, 0, 1, 1, 0,
        7, 2, 8, 3, 8, 0, 30, 4, 1, 0, 0, 15, 0, 0, 4, 6,
        3, 0, 0, 8, 0, 2, 2, 4, 5, 7, 1, 2, 0, 0, 10, 24,
        0, 0, 0, 6, 0, 1, 5, 16, 0, 0, 10, 4, 1, 2, 0, 5,
        13, 3, 0, 1, 0, 7, 8, 1, 2, 0, 4, 13, 2, 0, 6, 0,
        1, 26, 0, 30, 0, 0, 0, 19, 1, 0, 25, 11, 0, 2, 12, 0,
        0, 14, 3, 60, 6, 0, 3, 8, 3, 93, 105, 4, 32, 3, 0, 85,
        12, 3, 0, 0, 0, 8, 0, 2, 0, 413, 2, 0
    };

    using KV = std::pair<const char*, SpvCapability>;

    static const KV words[252] =
    {
        {"ShaderEnqueueAMDX", static_cast<SpvCapability>(5067)},
        {"StorageImageArrayNonUniformIndexingEXT", static_cast<SpvCapability>(5309)},
        {"FPFastMathModeINTEL", static_cast<SpvCapability>(5837)},
        {"GroupUniformArithmeticKHR", static_cast<SpvCapability>(6400)},
        {"Int16", static_cast<SpvCapability>(22)},
        {"DrawParameters", static_cast<SpvCapability>(4427)},
        {"Geometry", static_cast<SpvCapability>(2)},
        {"Pipes", static_cast<SpvCapability>(17)},
        {"ImageGatherBiasLodAMD", static_cast<SpvCapability>(5009)},
        {"SubgroupAvcMotionEstimationINTEL", static_cast<SpvCapability>(5696)},
        {"SampledImageArrayDynamicIndexing", static_cast<SpvCapability>(29)},
        {"SampleRateShading", static_cast<SpvCapability>(35)},
        {"RayTraversalPrimitiveCullingKHR", static_cast<SpvCapability>(4478)},
        {"CacheControlsINTEL", static_cast<SpvCapability>(6441)},
        {"ImageBasic", static_cast<SpvCapability>(13)},
        {"FPGAKernelAttributesINTEL", static_cast<SpvCapability>(5897)},
        {"StorageImageExtendedFormats", static_cast<SpvCapability>(49)},
        {"MeshShadingNV", static_cast<SpvCapability>(5266)},
        {"AsmINTEL", static_cast<SpvCapability>(5606)},
        {"WorkgroupMemoryExplicitLayout16BitAccessKHR", static_cast<SpvCapability>(4430)},
        {"ShaderViewportIndex", static_cast<SpvCapability>(70)},
        {"StorageImageArrayDynamicIndexing", static_cast<SpvCapability>(31)},
        {"WorkgroupMemoryExplicitLayout8BitAccessKHR", static_cast<SpvCapability>(4429)},
        {"InterpolationFunction", static_cast<SpvCapability>(52)},
        {"Tessellation", static_cast<SpvCapability>(3)},
        {"UniformTexelBufferArrayDynamicIndexing", static_cast<SpvCapability>(5304)},
        {"UniformBufferArrayDynamicIndexing", static_cast<SpvCapability>(28)},
        {"Image1D", static_cast<SpvCapability>(44)},
        {"ClipDistance", static_cast<SpvCapability>(32)},
        {"CooperativeMatrixNV", static_cast<SpvCapability>(5357)},
        {"DotProductInput4x8BitPackedKHR", static_cast<SpvCapability>(6018)},
        {"GroupNonUniformQuad", static_cast<SpvCapability>(68)},
        {"FPGAKernelAttributesv2INTEL", static_cast<SpvCapability>(6161)},
        {"ShaderViewportIndexLayerEXT", static_cast<SpvCapability>(5254)},
        {"Int64ImageEXT", static_cast<SpvCapability>(5016)},
        {"DemoteToHelperInvocationEXT", static_cast<SpvCapability>(5379)},
        {"TextureBlockMatchQCOM", static_cast<SpvCapability>(4486)},
        {"MeshShadingEXT", static_cast<SpvCapability>(5283)},
        {"RayTracingProvisionalKHR", static_cast<SpvCapability>(5353)},
        {"ShaderNonUniformEXT", static_cast<SpvCapability>(5301)},
        {"ImageRect", static_cast<SpvCapability>(36)},
        {"FunctionFloatControlINTEL", static_cast<SpvCapability>(5821)},
        {"ShaderNonUniform", static_cast<SpvCapability>(5301)},
        {"FragmentDensityEXT", static_cast<SpvCapability>(5291)},
        {"FragmentBarycentricNV", static_cast<SpvCapability>(5284)},
        {"BitInstructions", static_cast<SpvCapability>(6025)},
        {"Matrix", static_cast<SpvCapability>(0)},
        {"FPGAInvocationPipeliningAttributesINTEL", static_cast<SpvCapability>(5916)},
        {"GeometryStreams", static_cast<SpvCapability>(54)},
        {"DotProductInput4x8BitKHR", static_cast<SpvCapability>(6017)},
        {"ImageGatherExtended", static_cast<SpvCapability>(25)},
        {"SparseResidency", static_cast<SpvCapability>(41)},
        {"InputAttachmentArrayDynamicIndexingEXT", static_cast<SpvCapability>(5303)},
        {"ImageFootprintNV", static_cast<SpvCapability>(5282)},
        {"Linkage", static_cast<SpvCapability>(5)},
        {"USMStorageClassesINTEL", static_cast<SpvCapability>(5935)},
        {"StorageBuffer8BitAccess", static_cast<SpvCapability>(4448)},
        {"SubgroupBallotKHR", static_cast<SpvCapability>(4423)},
        {"StorageBufferArrayNonUniformIndexing", static_cast<SpvCapability>(5308)},
        {"StorageImageReadWithoutFormat", static_cast<SpvCapability>(55)},
        {"RuntimeAlignedAttributeINTEL", static_cast<SpvCapability>(5939)},
        {"FloatingPointModeINTEL", static_cast<SpvCapability>(5583)},
        {"Float16Buffer", static_cast<SpvCapability>(8)},
        {"StorageBufferArrayDynamicIndexing", static_cast<SpvCapability>(30)},
        {"StorageTexelBufferArrayDynamicIndexing", static_cast<SpvCapability>(5305)},
        {"VulkanMemoryModelKHR", static_cast<SpvCapability>(5345)},
        {"GroupNonUniformClustered", static_cast<SpvCapability>(67)},
        {"GroupNonUniformShuffleRelative", static_cast<SpvCapability>(66)},
        {"Shader", static_cast<SpvCapability>(1)},
        {"GroupNonUniform", static_cast<SpvCapability>(61)},
        {"GeometryPointSize", static_cast<SpvCapability>(24)},
        {"Float16ImageAMD", static_cast<SpvCapability>(5008)},
        {"RuntimeDescriptorArray", static_cast<SpvCapability>(5302)},
        {"RayQueryKHR", static_cast<SpvCapability>(4472)},
        {"GroupNonUniformShuffle", static_cast<SpvCapability>(65)},
        {"ShaderViewportMaskNV", static_cast<SpvCapability>(5255)},
        {"StorageInputOutput16", static_cast<SpvCapability>(4436)},
        {"FragmentMaskAMD", static_cast<SpvCapability>(5010)},
        {"GeometryShaderPassthroughNV", static_cast<SpvCapability>(5251)},
        {"BindlessTextureNV", static_cast<SpvCapability>(5390)},
        {"UniformBufferArrayNonUniformIndexingEXT", static_cast<SpvCapability>(5306)},
        {"OptNoneINTEL", static_cast<SpvCapability>(6094)},
        {"RayTracingMotionBlurNV", static_cast<SpvCapability>(5341)},
        {"SignedZeroInfNanPreserve", static_cast<SpvCapability>(4466)},
        {"DotProductInput4x8BitPacked", static_cast<SpvCapability>(6018)},
        {"FPGALoopControlsINTEL", static_cast<SpvCapability>(5888)},
        {"DisplacementMicromapNV", static_cast<SpvCapability>(5380)},
        {"ImageBuffer", static_cast<SpvCapability>(47)},
        {"UniformAndStorageBuffer8BitAccess", static_cast<SpvCapability>(4449)},
        {"ArbitraryPrecisionFixedPointINTEL", static_cast<SpvCapability>(5922)},
        {"DenormPreserve", static_cast<SpvCapability>(4464)},
        {"VulkanMemoryModelDeviceScopeKHR", static_cast<SpvCapability>(5346)},
        {"FragmentShadingRateKHR", static_cast<SpvCapability>(4422)},
        {"AtomicFloat64MinMaxEXT", static_cast<SpvCapability>(5613)},
        {"FragmentShaderSampleInterlockEXT", static_cast<SpvCapability>(5363)},
        {"FPGAClusterAttributesINTEL", static_cast<SpvCapability>(5904)},
        {"StorageUniformBufferBlock16", static_cast<SpvCapability>(4433)},
        {"SubgroupAvcMotionEstimationChromaINTEL", static_cast<SpvCapability>(5698)},
        {"RoundToInfinityINTEL", static_cast<SpvCapability>(5582)},
        {"FragmentFullyCoveredEXT", static_cast<SpvCapability>(5265)},
        {"DotProductInput4x8Bit", static_cast<SpvCapability>(6017)},
        {"StoragePushConstant16", static_cast<SpvCapability>(4435)},
        {"BlockingPipesINTEL", static_cast<SpvCapability>(5945)},
        {"SubgroupDispatch", static_cast<SpvCapability>(58)},
        {"DenormFlushToZero", static_cast<SpvCapability>(4465)},
        {"FPMaxErrorINTEL", static_cast<SpvCapability>(6169)},
        {"RayQueryProvisionalKHR", static_cast<SpvCapability>(4471)},
        {"DotProductInputAll", static_cast<SpvCapability>(6016)},
        {"RuntimeDescriptorArrayEXT", static_cast<SpvCapability>(5302)},
        {"RayTracingKHR", static_cast<SpvCapability>(4479)},
        {"FPGABufferLocationINTEL", static_cast<SpvCapability>(5920)},
        {"AtomicFloat16AddEXT", static_cast<SpvCapability>(6095)},
        {"UnstructuredLoopControlsINTEL", static_cast<SpvCapability>(5886)},
        {"StorageUniform16", static_cast<SpvCapability>(4434)},
        {"PhysicalStorageBufferAddresses", static_cast<SpvCapability>(5347)},
        {"VariablePointers", static_cast<SpvCapability>(4442)},
        {"InputAttachmentArrayDynamicIndexing", static_cast<SpvCapability>(5303)},
        {"InputAttachmentArrayNonUniformIndexingEXT", static_cast<SpvCapability>(5310)},
        {"DeviceEnqueue", static_cast<SpvCapability>(19)},
        {"ArbitraryPrecisionIntegersINTEL", static_cast<SpvCapability>(5844)},
        {"TextureSampleWeightedQCOM", static_cast<SpvCapability>(4484)},
        {"PipeStorage", static_cast<SpvCapability>(60)},
        {"KernelAttributesINTEL", static_cast<SpvCapability>(5892)},
        {"VulkanMemoryModelDeviceScope", static_cast<SpvCapability>(5346)},
        {"ShaderInvocationReorderNV", static_cast<SpvCapability>(5383)},
        {"VariablePointersStorageBuffer", static_cast<SpvCapability>(4441)},
        {"ExpectAssumeKHR", static_cast<SpvCapability>(5629)},
        {"ShaderStereoViewNV", static_cast<SpvCapability>(5259)},
        {"ImageMipmap", static_cast<SpvCapability>(15)},
        {"SampledCubeArray", static_cast<SpvCapability>(45)},
        {"CoreBuiltinsARM", static_cast<SpvCapability>(4165)},
        {"MemoryAccessAliasingINTEL", static_cast<SpvCapability>(5910)},
        {"SampledRect", static_cast<SpvCapability>(37)},
        {"SampledImageArrayNonUniformIndexingEXT", static_cast<SpvCapability>(5307)},
        {"SubgroupAvcMotionEstimationIntraINTEL", static_cast<SpvCapability>(5697)},
        {"MultiViewport", static_cast<SpvCapability>(57)},
        {"ShaderLayer", static_cast<SpvCapability>(69)},
        {"NamedBarrier", static_cast<SpvCapability>(59)},
        {"ArbitraryPrecisionFloatingPointINTEL", static_cast<SpvCapability>(5845)},
        {"StorageBuffer16BitAccess", static_cast<SpvCapability>(4433)},
        {"DerivativeControl", static_cast<SpvCapability>(51)},
        {"ShaderSMBuiltinsNV", static_cast<SpvCapability>(5373)},
        {"GlobalVariableFPGADecorationsINTEL", static_cast<SpvCapability>(6189)},
        {"StoragePushConstant8", static_cast<SpvCapability>(4450)},
        {"Int64", static_cast<SpvCapability>(11)},
        {"ShaderViewportIndexLayerNV", static_cast<SpvCapability>(5254)},
        {"GroupNonUniformArithmetic", static_cast<SpvCapability>(63)},
        {"Int64Atomics", static_cast<SpvCapability>(12)},
        {"PerViewAttributesNV", static_cast<SpvCapability>(5260)},
        {"RayQueryPositionFetchKHR", static_cast<SpvCapability>(5391)},
        {"SampleMaskPostDepthCoverage", static_cast<SpvCapability>(4447)},
        {"StorageBufferArrayNonUniformIndexingEXT", static_cast<SpvCapability>(5308)},
        {"InputAttachment", static_cast<SpvCapability>(40)},
        {"StorageImageWriteWithoutFormat", static_cast<SpvCapability>(56)},
        {"PhysicalStorageBufferAddressesEXT", static_cast<SpvCapability>(5347)},
        {"ImageMSArray", static_cast<SpvCapability>(48)},
        {"RayTracingPositionFetchKHR", static_cast<SpvCapability>(5336)},
        {"Vector16", static_cast<SpvCapability>(7)},
        {"CullDistance", static_cast<SpvCapability>(33)},
        {"SampleMaskOverrideCoverageNV", static_cast<SpvCapability>(5249)},
        {"VariableLengthArrayINTEL", static_cast<SpvCapability>(5817)},
        {"LongCompositesINTEL", static_cast<SpvCapability>(6089)},
        {"LiteralSampler", static_cast<SpvCapability>(20)},
        {"SubgroupVoteKHR", static_cast<SpvCapability>(4431)},
        {"InputAttachmentArrayNonUniformIndexing", static_cast<SpvCapability>(5310)},
        {"VectorComputeINTEL", static_cast<SpvCapability>(5617)},
        {"UniformTexelBufferArrayDynamicIndexingEXT", static_cast<SpvCapability>(5304)},
        {"Sampled1D", static_cast<SpvCapability>(43)},
        {"Int8", static_cast<SpvCapability>(39)},
        {"Kernel", static_cast<SpvCapability>(6)},
        {"DemoteToHelperInvocation", static_cast<SpvCapability>(5379)},
        {"IndirectReferencesINTEL", static_cast<SpvCapability>(5604)},
        {"AtomicFloat32AddEXT", static_cast<SpvCapability>(6033)},
        {"GroupNonUniformVote", static_cast<SpvCapability>(62)},
        {"MultiView", static_cast<SpvCapability>(4439)},
        {"FPGAClusterAttributesV2INTEL", static_cast<SpvCapability>(6150)},
        {"UniformTexelBufferArrayNonUniformIndexing", static_cast<SpvCapability>(5311)},
        {"GlobalVariableHostAccessINTEL", static_cast<SpvCapability>(6187)},
        {"VectorAnyINTEL", static_cast<SpvCapability>(5619)},
        {"SampledBuffer", static_cast<SpvCapability>(46)},
        {"MinLod", static_cast<SpvCapability>(42)},
        {"FPGAArgumentInterfacesINTEL", static_cast<SpvCapability>(6174)},
        {"StorageTexelBufferArrayNonUniformIndexing", static_cast<SpvCapability>(5312)},
        {"FPGADSPControlINTEL", static_cast<SpvCapability>(5908)},
        {"AtomicStorageOps", static_cast<SpvCapability>(4445)},
        {"TileImageColorReadAccessEXT", static_cast<SpvCapability>(4166)},
        {"FragmentShaderShadingRateInterlockEXT", static_cast<SpvCapability>(5372)},
        {"BFloat16ConversionINTEL", static_cast<SpvCapability>(6115)},
        {"VulkanMemoryModel", static_cast<SpvCapability>(5345)},
        {"AtomicFloat64AddEXT", static_cast<SpvCapability>(6034)},
        {"RoundingModeRTE", static_cast<SpvCapability>(4467)},
        {"UniformAndStorageBuffer16BitAccess", static_cast<SpvCapability>(4434)},
        {"RayTracingDisplacementMicromapNV", static_cast<SpvCapability>(5409)},
        {"StencilExportEXT", static_cast<SpvCapability>(5013)},
        {"CooperativeMatrixKHR", static_cast<SpvCapability>(6022)},
        {"UniformTexelBufferArrayNonUniformIndexingEXT", static_cast<SpvCapability>(5311)},
        {"FPGAMemoryAccessesINTEL", static_cast<SpvCapability>(5898)},
        {"SubgroupImageBlockIOINTEL", static_cast<SpvCapability>(5570)},
        {"WorkgroupMemoryExplicitLayoutKHR", static_cast<SpvCapability>(4428)},
        {"ImageReadWriteLodAMD", static_cast<SpvCapability>(5015)},
        {"DeviceGroup", static_cast<SpvCapability>(4437)},
        {"SampledImageArrayNonUniformIndexing", static_cast<SpvCapability>(5307)},
        {"AtomicStorage", static_cast<SpvCapability>(21)},
        {"AtomicFloat16MinMaxEXT", static_cast<SpvCapability>(5616)},
        {"FragmentBarycentricKHR", static_cast<SpvCapability>(5284)},
        {"ComputeDerivativeGroupLinearNV", static_cast<SpvCapability>(5350)},
        {"Float64", static_cast<SpvCapability>(10)},
        {"FPGAMemoryAttributesINTEL", static_cast<SpvCapability>(5824)},
        {"GenericPointer", static_cast<SpvCapability>(38)},
        {"SubgroupBufferBlockIOINTEL", static_cast<SpvCapability>(5569)},
        {"TransformFeedback", static_cast<SpvCapability>(53)},
        {"UniformDecoration", static_cast<SpvCapability>(71)},
        {"ImageQuery", static_cast<SpvCapability>(50)},
        {"DotProductInputAllKHR", static_cast<SpvCapability>(6016)},
        {"IOPipesINTEL", static_cast<SpvCapability>(5943)},
        {"ImageCubeArray", static_cast<SpvCapability>(34)},
        {"RoundingModeRTZ", static_cast<SpvCapability>(4468)},
        {"GroupNonUniformBallot", static_cast<SpvCapability>(64)},
        {"AtomicFloat32MinMaxEXT", static_cast<SpvCapability>(5612)},
        {"IntegerFunctions2INTEL", static_cast<SpvCapability>(5584)},
        {"FPGALatencyControlINTEL", static_cast<SpvCapability>(6171)},
        {"StorageImageArrayNonUniformIndexing", static_cast<SpvCapability>(5309)},
        {"ShadingRateNV", static_cast<SpvCapability>(5291)},
        {"Float16", static_cast<SpvCapability>(9)},
        {"TileImageStencilReadAccessEXT", static_cast<SpvCapability>(4168)},
        {"ShaderClockKHR", static_cast<SpvCapability>(5055)},
        {"UniformBufferArrayNonUniformIndexing", static_cast<SpvCapability>(5306)},
        {"ImageReadWrite", static_cast<SpvCapability>(14)},
        {"RayCullMaskKHR", static_cast<SpvCapability>(6020)},
        {"RayTracingOpacityMicromapEXT", static_cast<SpvCapability>(5381)},
        {"GroupNonUniformPartitionedNV", static_cast<SpvCapability>(5297)},
        {"Groups", static_cast<SpvCapability>(18)},
        {"LoopFuseINTEL", static_cast<SpvCapability>(5906)},
        {"TextureBoxFilterQCOM", static_cast<SpvCapability>(4485)},
        {"GroupNonUniformRotateKHR", static_cast<SpvCapability>(6026)},
        {"DotProduct", static_cast<SpvCapability>(6019)},
        {"ComputeDerivativeGroupQuadsNV", static_cast<SpvCapability>(5288)},
        {"SubgroupShuffleINTEL", static_cast<SpvCapability>(5568)},
        {"SubgroupImageMediaBlockIOINTEL", static_cast<SpvCapability>(5579)},
        {"RayTracingNV", static_cast<SpvCapability>(5340)},
        {"TessellationPointSize", static_cast<SpvCapability>(23)},
        {"StorageTexelBufferArrayDynamicIndexingEXT", static_cast<SpvCapability>(5305)},
        {"DebugInfoModuleINTEL", static_cast<SpvCapability>(6114)},
        {"Addresses", static_cast<SpvCapability>(4)},
        {"SplitBarrierINTEL", static_cast<SpvCapability>(6141)},
        {"DotProductKHR", static_cast<SpvCapability>(6019)},
        {"FragmentShaderPixelInterlockEXT", static_cast<SpvCapability>(5378)},
        {"TileImageDepthReadAccessEXT", static_cast<SpvCapability>(4167)},
        {"FunctionPointersINTEL", static_cast<SpvCapability>(5603)},
        {"StorageImageMultisample", static_cast<SpvCapability>(27)},
        {"FPGARegINTEL", static_cast<SpvCapability>(5948)},
        {"StorageTexelBufferArrayNonUniformIndexingEXT", static_cast<SpvCapability>(5312)},
    };

    static const auto hash = [](const UnownedStringSlice& str, UInt32 salt){
        UInt32 h = salt;
        for (const char c : str)
            h = (h * 0x01000193) ^ c;
        return h % 252;
    };

    const auto i = hash(str, tableSalt[hash(str, 0)]);
    if(str == words[i].first)
    {
        value = words[i].second;
        return true;
    }
    else
    {
        return false;
    }
}

static bool lookupEnumWithTypePrefix(const UnownedStringSlice& str, SpvWord& value)
{
    static const unsigned tableSalt[993] = {
        0, 1, 2, 2, 3, 3, 14, 2, 4, 1, 0, 0, 0, 0, 0, 1,
        1, 4, 0, 0, 0, 1, 0, 3, 1, 0, 2, 0, 0, 0, 1, 5,
        1, 0, 4, 2, 0, 1, 1, 1, 3, 0, 5, 2, 0, 1, 4, 2,
        1, 1, 0, 1, 1, 1, 12, 2, 0, 0, 2, 0, 2, 0, 0, 0,
        0, 1, 1, 2, 0, 2, 9, 2, 0, 0, 1, 2, 0, 0, 1, 2,
        0, 2, 0, 0, 1, 0, 0, 4, 4, 5, 2, 0, 1, 4, 2, 1,
        0, 1, 3, 1, 3, 0, 0, 1, 3, 3, 0, 1, 1, 0, 1, 0,
        0, 3, 0, 1, 3, 0, 0, 1, 1, 1, 1, 2, 3, 1, 0, 6,
        0, 0, 2, 2, 0, 3, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0,
        2, 0, 1, 2, 0, 0, 0, 4, 4, 1, 4, 4, 9, 1, 3, 1,
        1, 2, 0, 3, 2, 3, 1, 5, 2, 0, 0, 0, 1, 0, 1, 2,
        1, 4, 1, 1, 0, 5, 0, 0, 0, 1, 1, 5, 4, 2, 1, 0,
        2, 1, 1, 13, 1, 2, 0, 1, 0, 3, 2, 8, 3, 0, 2, 3,
        0, 0, 2, 7, 5, 2, 1, 4, 2, 5, 1, 0, 3, 0, 0, 1,
        1, 0, 8, 0, 0, 0, 5, 4, 0, 1, 3, 1, 0, 0, 5, 0,
        7, 0, 0, 7, 3, 1, 2, 1, 2, 3, 2, 1, 0, 0, 1, 1,
        0, 0, 0, 1, 1, 2, 6, 3, 1, 0, 1, 0, 1, 4, 7, 1,
        1, 1, 0, 6, 0, 0, 2, 7, 1, 0, 2, 3, 2, 1, 5, 4,
        3, 1, 0, 0, 0, 0, 1, 1, 1, 6, 0, 3, 0, 1, 1, 6,
        0, 0, 0, 0, 0, 2, 4, 1, 3, 5, 1, 7, 0, 10, 1, 0,
        2, 5, 2, 0, 1, 0, 5, 2, 0, 3, 1, 2, 2, 0, 0, 0,
        1, 5, 3, 0, 0, 2, 2, 7, 9, 0, 2, 2, 1, 3, 3, 0,
        0, 0, 0, 0, 8, 1, 0, 1, 0, 3, 4, 0, 0, 9, 0, 7,
        0, 4, 0, 3, 0, 11, 0, 2, 4, 2, 4, 4, 3, 2, 0, 1,
        0, 3, 0, 0, 4, 14, 1, 0, 0, 0, 0, 0, 5, 0, 0, 1,
        3, 9, 6, 18, 3, 0, 1, 2, 0, 1, 4, 1, 5, 0, 3, 0,
        0, 2, 4, 2, 3, 0, 0, 26, 1, 0, 0, 0, 5, 1, 0, 5,
        2, 0, 0, 2, 3, 1, 4, 4, 5, 1, 1, 0, 1, 0, 0, 2,
        1, 1, 0, 2, 2, 2, 4, 1, 0, 4, 7, 1, 0, 2, 3, 0,
        0, 3, 3, 5, 0, 5, 1, 2, 0, 1, 0, 10, 0, 3, 1, 0,
        10, 1, 1, 3, 3, 3, 0, 1, 1, 5, 0, 22, 0, 5, 1, 10,
        1, 0, 1, 2, 0, 9, 1, 0, 24, 0, 2, 1, 3, 0, 14, 1,
        2, 18, 6, 5, 0, 9, 3, 5, 3, 0, 0, 1, 0, 4, 1, 1,
        0, 0, 2, 1, 0, 2, 3, 1, 3, 0, 1, 0, 1, 1, 1, 0,
        0, 16, 0, 0, 3, 5, 2, 5, 1, 0, 3, 0, 4, 0, 4, 1,
        19, 5, 0, 0, 0, 0, 2, 0, 0, 0, 1, 6, 4, 0, 0, 2,
        1, 0, 1, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 5, 8, 0,
        6, 3, 3, 0, 1, 1, 1, 4, 3, 1, 0, 0, 1, 8, 0, 1,
        1, 4, 1, 7, 5, 0, 0, 1, 3, 3, 15, 1, 1, 3, 6, 0,
        1, 4, 1, 2, 13, 24, 0, 0, 7, 3, 4, 1, 0, 0, 1, 5,
        0, 2, 13, 1, 6, 9, 4, 5, 1, 21, 1, 12, 0, 1, 0, 1,
        14, 4, 0, 8, 3, 1, 0, 0, 7, 0, 14, 0, 18, 1, 1, 2,
        0, 4, 0, 0, 0, 1, 0, 4, 3, 1, 0, 2, 0, 16, 0, 9,
        1, 0, 0, 5, 0, 0, 27, 0, 0, 0, 0, 0, 4, 7, 0, 4,
        4, 3, 7, 0, 3, 2, 7, 0, 0, 2, 1, 0, 0, 1, 6, 0,
        0, 0, 0, 1, 23, 2, 0, 16, 0, 4, 0, 2, 1, 29, 1, 13,
        5, 6, 2, 4, 0, 21, 34, 13, 0, 10, 0, 10, 11, 16, 0, 0,
        0, 34, 13, 0, 2, 3, 2, 23, 8, 11, 0, 1, 0, 18, 1, 0,
        1, 7, 0, 0, 0, 6, 0, 1, 0, 0, 11, 0, 1, 27, 28, 1,
        10, 1, 4, 0, 5, 0, 5, 10, 0, 1, 0, 10, 0, 9, 9, 1,
        6, 0, 1, 0, 6, 2, 9, 0, 12, 23, 0, 9, 2, 1, 0, 1,
        3, 18, 57, 2, 6, 2, 43, 5, 0, 0, 2, 3, 23, 54, 0, 2,
        25, 9, 9, 32, 0, 9, 2, 0, 0, 5, 11, 2, 5, 2, 10, 4,
        3, 7, 0, 17, 17, 49, 3, 0, 0, 8, 0, 0, 1, 0, 15, 1,
        0, 13, 0, 13, 1, 1, 41, 0, 3, 0, 2, 9, 0, 5, 105, 0,
        1, 32, 19, 2, 29, 34, 0, 0, 0, 36, 9, 25, 10, 22, 20, 0,
        3, 16, 55, 8, 0, 6, 0, 0, 0, 0, 3, 4, 8, 21, 10, 0,
        0, 53, 36, 0, 0, 40, 0, 8, 0, 70, 0, 0, 44, 0, 5, 3,
        0, 14, 0, 0, 8, 11, 25, 15, 54, 10, 0, 0, 0, 0, 0, 1,
        32, 3, 0, 0, 0, 0, 6, 0, 0, 3, 9, 41, 15, 10, 130, 131,
        132, 0, 57, 199, 0, 4, 184, 0, 4, 0, 49, 0, 0, 81, 5, 50,
        0, 230, 22, 36, 32, 157, 0, 22, 78, 27, 1, 12, 313, 127, 1, 9,
        76
    };

    using KV = std::pair<const char*, SpvWord>;

    static const KV words[993] =
    {
        {"HostAccessQualifierReadWriteINTEL", SpvWord{3}},
        {"DecorationMaxPrivateCopiesINTEL", SpvWord{5829}},
        {"CapabilityImageCubeArray", SpvWord{34}},
        {"CapabilityGeometryStreams", SpvWord{54}},
        {"BuiltInLayerPerViewNV", SpvWord{5279}},
        {"CapabilityImageMSArray", SpvWord{48}},
        {"BuiltInIncomingRayFlagsNV", SpvWord{5351}},
        {"ImageFormatR16Snorm", SpvWord{19}},
        {"CapabilityRayTracingOpacityMicromapEXT", SpvWord{5381}},
        {"DecorationMathOpDSPModeINTEL", SpvWord{5909}},
        {"ImageFormatRg8", SpvWord{13}},
        {"BuiltInBaryCoordPullModelAMD", SpvWord{4998}},
        {"BuiltInBaryCoordNoPerspAMD", SpvWord{4992}},
        {"BuiltInRayTminKHR", SpvWord{5325}},
        {"DecorationDoublepumpINTEL", SpvWord{5831}},
        {"LoopControlIterationMultiple", SpvWord{64}},
        {"BuiltInMeshViewCountNV", SpvWord{5280}},
        {"CapabilityStencilExportEXT", SpvWord{5013}},
        {"DecorationNoAliasINTEL", SpvWord{5915}},
        {"DecorationLinkageAttributes", SpvWord{41}},
        {"BuiltInShaderIndexAMDX", SpvWord{5073}},
        {"BuiltInWarpMaxIDARM", SpvWord{4164}},
        {"CapabilityOptNoneINTEL", SpvWord{6094}},
        {"MemoryAccessMakePointerVisible", SpvWord{16}},
        {"CapabilityAtomicFloat16AddEXT", SpvWord{6095}},
        {"FunctionControlDontInline", SpvWord{2}},
        {"AddressingModelPhysicalStorageBuffer64EXT", SpvWord{5348}},
        {"BuiltInCullPrimitiveEXT", SpvWord{5299}},
        {"ImageOperandsNonPrivateTexelKHR", SpvWord{1024}},
        {"BuiltInNumWorkgroups", SpvWord{24}},
        {"BuiltInSecondaryViewportMaskNV", SpvWord{5258}},
        {"BuiltInHitKindKHR", SpvWord{5333}},
        {"BuiltInRayTminNV", SpvWord{5325}},
        {"CapabilityUniformDecoration", SpvWord{71}},
        {"CapabilityKernelAttributesINTEL", SpvWord{5892}},
        {"DecorationLocation", SpvWord{30}},
        {"ExecutionModeOutputLinesEXT", SpvWord{5269}},
        {"StorageClassUniform", SpvWord{2}},
        {"DecorationRegisterINTEL", SpvWord{5825}},
        {"ImageFormatRgba8ui", SpvWord{32}},
        {"ImageFormatR8ui", SpvWord{39}},
        {"DecorationHitObjectShaderRecordBufferNV", SpvWord{5386}},
        {"CapabilitySampledImageArrayNonUniformIndexing", SpvWord{5307}},
        {"DecorationSideEffectsINTEL", SpvWord{5608}},
        {"CapabilityShader", SpvWord{1}},
        {"ExecutionModelClosestHitKHR", SpvWord{5316}},
        {"GroupOperationClusteredReduce", SpvWord{3}},
        {"CapabilityUniformAndStorageBuffer16BitAccess", SpvWord{4434}},
        {"BuiltInGlobalInvocationId", SpvWord{28}},
        {"PackedVectorFormatPackedVectorFormat4x8Bit", SpvWord{0}},
        {"BuiltInClipDistancePerViewNV", SpvWord{5277}},
        {"MemoryAccessMakePointerAvailable", SpvWord{8}},
        {"BuiltInLocalInvocationIndex", SpvWord{29}},
        {"CapabilityExpectAssumeKHR", SpvWord{5629}},
        {"BuiltInBaryCoordNV", SpvWord{5286}},
        {"ImageChannelDataTypeSignedInt8", SpvWord{7}},
        {"GroupOperationPartitionedInclusiveScanNV", SpvWord{7}},
        {"DecorationSingleElementVectorINTEL", SpvWord{6085}},
        {"CapabilityDotProduct", SpvWord{6019}},
        {"DecorationAliasScopeINTEL", SpvWord{5914}},
        {"OverflowModesSAT_ZERO", SpvWord{2}},
        {"CapabilityShaderViewportIndex", SpvWord{70}},
        {"CapabilityFPGAKernelAttributesINTEL", SpvWord{5897}},
        {"BuiltInGlobalSize", SpvWord{31}},
        {"ImageChannelDataTypeUnormInt24", SpvWord{15}},
        {"ExecutionModeOutputTrianglesNV", SpvWord{5298}},
        {"ExecutionModeDepthGreater", SpvWord{14}},
        {"BuiltInSubgroupEqMask", SpvWord{4416}},
        {"CapabilityImageBuffer", SpvWord{47}},
        {"AccessQualifierWriteOnly", SpvWord{1}},
        {"BuiltInWorkgroupId", SpvWord{26}},
        {"MemorySemanticsMakeAvailable", SpvWord{8192}},
        {"CapabilityFloat16ImageAMD", SpvWord{5008}},
        {"DecorationMemoryINTEL", SpvWord{5826}},
        {"OverflowModesSAT", SpvWord{1}},
        {"CapabilityShaderSMBuiltinsNV", SpvWord{5373}},
        {"ImageChannelDataTypeUnsignedInt16", SpvWord{11}},
        {"BuiltInViewportIndex", SpvWord{10}},
        {"ExecutionModeSubgroupsPerWorkgroupId", SpvWord{37}},
        {"BuiltInHitTriangleVertexPositionsKHR", SpvWord{5335}},
        {"CapabilityAtomicStorageOps", SpvWord{4445}},
        {"MemoryAccessNonPrivatePointerKHR", SpvWord{32}},
        {"QuantizationModesRND_CONV_ODD", SpvWord{7}},
        {"ImageChannelOrdersRGB", SpvWord{15}},
        {"CapabilityGroupNonUniformShuffleRelative", SpvWord{66}},
        {"CooperativeMatrixOperandsSaturatingAccumulationKHR", SpvWord{16}},
        {"ScopeShaderCallKHR", SpvWord{6}},
        {"MemorySemanticsVolatile", SpvWord{32768}},
        {"CapabilitySubgroupShuffleINTEL", SpvWord{5568}},
        {"CapabilityArbitraryPrecisionFloatingPointINTEL", SpvWord{5845}},
        {"BuiltInPointCoord", SpvWord{16}},
        {"DecorationFPMaxErrorDecorationINTEL", SpvWord{6170}},
        {"DecorationBinding", SpvWord{33}},
        {"FunctionParameterAttributeSext", SpvWord{1}},
        {"SourceLanguageHLSL", SpvWord{5}},
        {"FunctionParameterAttributeByVal", SpvWord{2}},
        {"BuiltInFragSizeEXT", SpvWord{5292}},
        {"ExecutionModeFloatingPointModeIEEEINTEL", SpvWord{5623}},
        {"BuiltInInstanceCustomIndexNV", SpvWord{5327}},
        {"CapabilitySubgroupAvcMotionEstimationChromaINTEL", SpvWord{5698}},
        {"ExecutionModeSchedulerTargetFmaxMhzINTEL", SpvWord{5903}},
        {"CapabilityVulkanMemoryModelDeviceScopeKHR", SpvWord{5346}},
        {"BuiltInFragmentSizeNV", SpvWord{5292}},
        {"BuiltInWorldRayOriginNV", SpvWord{5321}},
        {"DecorationDescriptorSet", SpvWord{34}},
        {"LoopControlDependencyInfinite", SpvWord{4}},
        {"BuiltInWorldRayDirectionKHR", SpvWord{5322}},
        {"CapabilityAtomicFloat32MinMaxEXT", SpvWord{5612}},
        {"StorageClassCallableDataKHR", SpvWord{5328}},
        {"CapabilityStorageBufferArrayDynamicIndexing", SpvWord{30}},
        {"CapabilityPipes", SpvWord{17}},
        {"BuiltInBaryCoordNoPerspCentroidAMD", SpvWord{4993}},
        {"CapabilityShaderStereoViewNV", SpvWord{5259}},
        {"BuiltInSMCountNV", SpvWord{5375}},
        {"ImageFormatR8", SpvWord{15}},
        {"GroupOperationInclusiveScan", SpvWord{1}},
        {"SamplerAddressingModeClamp", SpvWord{2}},
        {"LoopControlNone", SpvWord{0}},
        {"BuiltInCurrentRayTimeNV", SpvWord{5334}},
        {"CapabilityRuntimeDescriptorArray", SpvWord{5302}},
        {"ExecutionModeInputTrianglesAdjacency", SpvWord{23}},
        {"CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR", SpvWord{4429}},
        {"CapabilityRayTracingKHR", SpvWord{4479}},
        {"DecorationRelaxedPrecision", SpvWord{0}},
        {"BuiltInBaryCoordNoPerspKHR", SpvWord{5287}},
        {"CapabilityAtomicFloat16MinMaxEXT", SpvWord{5616}},
        {"CapabilityPipeStorage", SpvWord{60}},
        {"DecorationFPFastMathMode", SpvWord{40}},
        {"ExecutionModeRoundingModeRTNINTEL", SpvWord{5621}},
        {"BuiltInPositionPerViewNV", SpvWord{5261}},
        {"ExecutionModeRegisterMapInterfaceINTEL", SpvWord{6160}},
        {"MemorySemanticsRelease", SpvWord{4}},
        {"BuiltInLaunchIdNV", SpvWord{5319}},
        {"ExecutionModeInputLines", SpvWord{20}},
        {"ExecutionModeStencilRefLessBackAMD", SpvWord{5084}},
        {"LoopControlNoFusionINTEL", SpvWord{8388608}},
        {"CapabilityAtomicStorage", SpvWord{21}},
        {"ExecutionModelCallableKHR", SpvWord{5318}},
        {"CapabilityLinkage", SpvWord{5}},
        {"DecorationMMHostInterfaceReadWriteModeINTEL", SpvWord{6180}},
        {"ImageOperandsMakeTexelVisibleKHR", SpvWord{512}},
        {"DecorationDontStaticallyCoalesceINTEL", SpvWord{5901}},
        {"StoreCacheControlStreamingINTEL", SpvWord{3}},
        {"DecorationColMajor", SpvWord{5}},
        {"CapabilityGroupNonUniformPartitionedNV", SpvWord{5297}},
        {"CapabilityInputAttachmentArrayDynamicIndexing", SpvWord{5303}},
        {"RayFlagsNoneKHR", SpvWord{0}},
        {"BuiltInSubgroupGtMaskKHR", SpvWord{4418}},
        {"StorageClassInput", SpvWord{1}},
        {"DecorationUniformId", SpvWord{27}},
        {"BuiltInShadingRateKHR", SpvWord{4444}},
        {"CapabilitySplitBarrierINTEL", SpvWord{6141}},
        {"CooperativeMatrixUseMatrixBKHR", SpvWord{1}},
        {"FPFastMathModeNotNaN", SpvWord{1}},
        {"FPFastMathModeNone", SpvWord{0}},
        {"CapabilityImageQuery", SpvWord{50}},
        {"CapabilityUniformTexelBufferArrayNonUniformIndexingEXT", SpvWord{5311}},
        {"RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR", SpvWord{0}},
        {"DimRect", SpvWord{4}},
        {"CapabilityShadingRateNV", SpvWord{5291}},
        {"StorageClassCodeSectionINTEL", SpvWord{5605}},
        {"CapabilityPhysicalStorageBufferAddresses", SpvWord{5347}},
        {"ExecutionModelClosestHitNV", SpvWord{5316}},
        {"MemorySemanticsAcquireRelease", SpvWord{8}},
        {"ImageFormatR32ui", SpvWord{33}},
        {"CapabilityRayTraversalPrimitiveCullingKHR", SpvWord{4478}},
        {"MemoryModelVulkan", SpvWord{3}},
        {"LoopControlDependencyArrayINTEL", SpvWord{262144}},
        {"CapabilityIndirectReferencesINTEL", SpvWord{5604}},
        {"BuiltInViewIndex", SpvWord{4440}},
        {"CapabilityBFloat16ConversionINTEL", SpvWord{6115}},
        {"CapabilityFPGAKernelAttributesv2INTEL", SpvWord{6161}},
        {"BuiltInBaryCoordNoPerspNV", SpvWord{5287}},
        {"ExecutionModeInvocations", SpvWord{0}},
        {"HostAccessQualifierReadINTEL", SpvWord{1}},
        {"ImageFormatRgba16Snorm", SpvWord{16}},
        {"BuiltInFragDepth", SpvWord{22}},
        {"DecorationCoherent", SpvWord{23}},
        {"DecorationPerPrimitiveNV", SpvWord{5271}},
        {"ImageFormatR16", SpvWord{14}},
        {"DecorationConstant", SpvWord{22}},
        {"DecorationIOPipeStorageINTEL", SpvWord{5944}},
        {"AccessQualifierReadOnly", SpvWord{0}},
        {"MemoryAccessMakePointerAvailableKHR", SpvWord{8}},
        {"LoopControlLoopCoalesceINTEL", SpvWord{1048576}},
        {"CapabilityIntegerFunctions2INTEL", SpvWord{5584}},
        {"BuiltInGlobalOffset", SpvWord{33}},
        {"FunctionControlConst", SpvWord{8}},
        {"CapabilityRayTracingDisplacementMicromapNV", SpvWord{5409}},
        {"ImageChannelDataTypeUnormInt8", SpvWord{2}},
        {"DecorationBoundImageNV", SpvWord{5401}},
        {"FunctionParameterAttributeNoWrite", SpvWord{6}},
        {"DecorationFPRoundingMode", SpvWord{39}},
        {"BuiltInObjectToWorldKHR", SpvWord{5330}},
        {"CapabilityGroupNonUniformVote", SpvWord{62}},
        {"Dim2D", SpvWord{1}},
        {"ExecutionModeOutputVertices", SpvWord{26}},
        {"FPFastMathModeAllowReassocINTEL", SpvWord{131072}},
        {"DecorationCacheControlLoadINTEL", SpvWord{6442}},
        {"CapabilityRayQueryKHR", SpvWord{4472}},
        {"DecorationMMHostInterfaceMaxBurstINTEL", SpvWord{6181}},
        {"BuiltInObjectRayDirectionNV", SpvWord{5324}},
        {"BuiltInWorldRayDirectionNV", SpvWord{5322}},
        {"CapabilityDenormFlushToZero", SpvWord{4465}},
        {"HostAccessQualifierWriteINTEL", SpvWord{2}},
        {"ImageChannelOrdersBGRA", SpvWord{18}},
        {"CapabilityShaderNonUniformEXT", SpvWord{5301}},
        {"ExecutionModeVertexOrderCw", SpvWord{4}},
        {"CapabilityCooperativeMatrixKHR", SpvWord{6022}},
        {"BuiltInHelperInvocation", SpvWord{23}},
        {"RayFlagsSkipClosestHitShaderKHR", SpvWord{8}},
        {"StorageClassNodePayloadAMDX", SpvWord{5068}},
        {"ExecutionModeStencilRefUnchangedFrontAMD", SpvWord{5079}},
        {"CapabilityDotProductInput4x8BitKHR", SpvWord{6017}},
        {"DecorationNodeMaxPayloadsAMDX", SpvWord{5020}},
        {"DecorationMergeINTEL", SpvWord{5834}},
        {"ImageChannelOrderRGx", SpvWord{11}},
        {"FPFastMathModeAllowContractFastINTEL", SpvWord{65536}},
        {"CapabilityDotProductInputAllKHR", SpvWord{6016}},
        {"DecorationHostAccessINTEL", SpvWord{6188}},
        {"ImageFormatRgba16", SpvWord{10}},
        {"MemoryAccessNontemporal", SpvWord{4}},
        {"CapabilityGlobalVariableHostAccessINTEL", SpvWord{6187}},
        {"DecorationFuncParamAttr", SpvWord{38}},
        {"CapabilityRayTracingMotionBlurNV", SpvWord{5341}},
        {"CooperativeMatrixLayoutColumnMajorKHR", SpvWord{1}},
        {"ExecutionModeEarlyFragmentTests", SpvWord{9}},
        {"QuantizationModesRND", SpvWord{2}},
        {"CapabilityFPGABufferLocationINTEL", SpvWord{5920}},
        {"DecorationNoContraction", SpvWord{42}},
        {"ImageFormatRg16ui", SpvWord{36}},
        {"KernelEnqueueFlagsWaitKernel", SpvWord{1}},
        {"ImageChannelOrderRGBx", SpvWord{12}},
        {"MemoryAccessMakePointerVisibleKHR", SpvWord{16}},
        {"BuiltInBaryCoordKHR", SpvWord{5286}},
        {"CapabilityFragmentMaskAMD", SpvWord{5010}},
        {"CapabilityDotProductInput4x8BitPacked", SpvWord{6018}},
        {"CapabilityStorageInputOutput16", SpvWord{4436}},
        {"ExecutionModelVertex", SpvWord{0}},
        {"ImageOperandsMakeTexelAvailable", SpvWord{256}},
        {"DecorationTrackFinishWritingAMDX", SpvWord{5078}},
        {"DecorationClobberINTEL", SpvWord{5607}},
        {"DecorationBuiltIn", SpvWord{11}},
        {"ExecutionModelCallableNV", SpvWord{5318}},
        {"ExecutionModelAnyHitKHR", SpvWord{5315}},
        {"ExecutionModeFloatingPointModeALTINTEL", SpvWord{5622}},
        {"DecorationInitModeINTEL", SpvWord{6190}},
        {"CapabilityGroups", SpvWord{18}},
        {"ExecutionModelMeshEXT", SpvWord{5365}},
        {"StorageClassShaderRecordBufferNV", SpvWord{5343}},
        {"BuiltInWarpsPerSMNV", SpvWord{5374}},
        {"DecorationBoundSamplerNV", SpvWord{5400}},
        {"StorageClassAtomicCounter", SpvWord{10}},
        {"MemorySemanticsOutputMemory", SpvWord{4096}},
        {"BuiltInCoreIDARM", SpvWord{4160}},
        {"BuiltInVertexId", SpvWord{5}},
        {"CapabilityPhysicalStorageBufferAddressesEXT", SpvWord{5347}},
        {"FPDenormModePreserve", SpvWord{0}},
        {"CapabilityStorageBuffer8BitAccess", SpvWord{4448}},
        {"DecorationPerVertexNV", SpvWord{5285}},
        {"ExecutionModeSharedLocalMemorySizeINTEL", SpvWord{5618}},
        {"ImageChannelDataTypeUnormShort565", SpvWord{4}},
        {"ExecutionModelTessellationControl", SpvWord{1}},
        {"QuantizationModesRND_CONV", SpvWord{6}},
        {"DecorationAliasedPointer", SpvWord{5356}},
        {"DecorationMaxConcurrencyINTEL", SpvWord{5918}},
        {"RayQueryIntersectionRayQueryCandidateIntersectionKHR", SpvWord{0}},
        {"StorageClassCrossWorkgroup", SpvWord{5}},
        {"DecorationPassthroughNV", SpvWord{5250}},
        {"CapabilityInt64", SpvWord{11}},
        {"CapabilityFPGARegINTEL", SpvWord{5948}},
        {"CapabilityGroupNonUniformQuad", SpvWord{68}},
        {"BuiltInPrimitiveCountNV", SpvWord{5275}},
        {"AddressingModelLogical", SpvWord{0}},
        {"CapabilitySampledBuffer", SpvWord{46}},
        {"DecorationBindlessSamplerNV", SpvWord{5398}},
        {"DecorationFuseLoopsInFunctionINTEL", SpvWord{5907}},
        {"CapabilityNamedBarrier", SpvWord{59}},
        {"KernelEnqueueFlagsWaitWorkGroup", SpvWord{2}},
        {"ImageChannelOrderRA", SpvWord{3}},
        {"CapabilityShaderViewportIndexLayerEXT", SpvWord{5254}},
        {"CapabilityStorageTexelBufferArrayDynamicIndexingEXT", SpvWord{5305}},
        {"SamplerFilterModeNearest", SpvWord{0}},
        {"CapabilityDenormPreserve", SpvWord{4464}},
        {"DecorationRestrictPointerEXT", SpvWord{5355}},
        {"SourceLanguageSlang", SpvWord{11}},
        {"BuiltInBaseVertex", SpvWord{4424}},
        {"RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR", SpvWord{1}},
        {"StorageClassPrivate", SpvWord{6}},
        {"ImageChannelOrderRGBA", SpvWord{5}},
        {"CapabilityGroupNonUniformShuffle", SpvWord{65}},
        {"ExecutionModeMaxNodeRecursionAMDX", SpvWord{5071}},
        {"ImageOperandsVolatileTexel", SpvWord{2048}},
        {"ImageFormatR64ui", SpvWord{40}},
        {"ExecutionModeContractionOff", SpvWord{31}},
        {"CapabilityStorageImageMultisample", SpvWord{27}},
        {"DecorationGLSLPacked", SpvWord{9}},
        {"BuiltInMeshViewIndicesNV", SpvWord{5281}},
        {"CapabilityLoopFuseINTEL", SpvWord{5906}},
        {"SamplerAddressingModeClampToEdge", SpvWord{1}},
        {"CapabilityGroupNonUniformClustered", SpvWord{67}},
        {"CapabilityTileImageDepthReadAccessEXT", SpvWord{4167}},
        {"CapabilityCoreBuiltinsARM", SpvWord{4165}},
        {"ExecutionModeNonCoherentStencilAttachmentReadEXT", SpvWord{4171}},
        {"ImageChannelDataTypeUnsignedInt8", SpvWord{10}},
        {"CapabilityInputAttachmentArrayNonUniformIndexing", SpvWord{5310}},
        {"ScopeWorkgroup", SpvWord{2}},
        {"CapabilityDotProductKHR", SpvWord{6019}},
        {"MemoryModelSimple", SpvWord{0}},
        {"ExecutionModePixelInterlockOrderedEXT", SpvWord{5366}},
        {"BuiltInPosition", SpvWord{0}},
        {"CapabilityStorageTexelBufferArrayNonUniformIndexing", SpvWord{5312}},
        {"CapabilityDemoteToHelperInvocationEXT", SpvWord{5379}},
        {"ImageFormatRg32f", SpvWord{6}},
        {"CapabilitySampleMaskPostDepthCoverage", SpvWord{4447}},
        {"CapabilityGroupNonUniformBallot", SpvWord{64}},
        {"BuiltInObjectRayOriginNV", SpvWord{5323}},
        {"LoopControlSpeculatedIterationsINTEL", SpvWord{4194304}},
        {"BuiltInSampleMask", SpvWord{20}},
        {"ImageOperandsGrad", SpvWord{4}},
        {"ExecutionModeTriangles", SpvWord{22}},
        {"CapabilitySignedZeroInfNanPreserve", SpvWord{4466}},
        {"SourceLanguageUnknown", SpvWord{0}},
        {"ScopeSubgroup", SpvWord{3}},
        {"StorageClassIncomingCallableDataKHR", SpvWord{5329}},
        {"MemorySemanticsRelaxed", SpvWord{0}},
        {"FunctionParameterAttributeZext", SpvWord{0}},
        {"CapabilityArbitraryPrecisionFixedPointINTEL", SpvWord{5922}},
        {"CapabilityClipDistance", SpvWord{32}},
        {"ImageOperandsConstOffsets", SpvWord{32}},
        {"RayFlagsCullNoOpaqueKHR", SpvWord{128}},
        {"ImageFormatRg16", SpvWord{12}},
        {"ExecutionModelFragment", SpvWord{4}},
        {"CapabilityStorageImageExtendedFormats", SpvWord{49}},
        {"StorageClassOutput", SpvWord{3}},
        {"ExecutionModePointMode", SpvWord{10}},
        {"CapabilityDeviceGroup", SpvWord{4437}},
        {"CooperativeMatrixUseMatrixAKHR", SpvWord{0}},
        {"ExecutionModelRayGenerationNV", SpvWord{5313}},
        {"CapabilityShaderClockKHR", SpvWord{5055}},
        {"ExecutionModeInitializer", SpvWord{33}},
        {"SamplerAddressingModeRepeatMirrored", SpvWord{4}},
        {"CapabilityDotProductInputAll", SpvWord{6016}},
        {"CapabilityRayTracingProvisionalKHR", SpvWord{5353}},
        {"StoreCacheControlWriteBackINTEL", SpvWord{2}},
        {"CapabilityFPGALoopControlsINTEL", SpvWord{5888}},
        {"DecorationInitiationIntervalINTEL", SpvWord{5917}},
        {"MemorySemanticsSubgroupMemory", SpvWord{128}},
        {"CapabilityStorageImageReadWithoutFormat", SpvWord{55}},
        {"BuiltInBaryCoordSmoothCentroidAMD", SpvWord{4996}},
        {"CapabilityDemoteToHelperInvocation", SpvWord{5379}},
        {"ImageChannelOrderDepthStencil", SpvWord{14}},
        {"CapabilityUniformTexelBufferArrayDynamicIndexing", SpvWord{5304}},
        {"CapabilityUniformBufferArrayNonUniformIndexingEXT", SpvWord{5306}},
        {"ImageFormatR32i", SpvWord{24}},
        {"ImageFormatRg32i", SpvWord{25}},
        {"FunctionControlInline", SpvWord{1}},
        {"MemoryAccessVolatile", SpvWord{1}},
        {"CapabilityUniformTexelBufferArrayNonUniformIndexing", SpvWord{5311}},
        {"CapabilityVulkanMemoryModelDeviceScope", SpvWord{5346}},
        {"DecorationFunctionRoundingModeINTEL", SpvWord{5822}},
        {"CapabilityDerivativeControl", SpvWord{51}},
        {"CapabilityStoragePushConstant8", SpvWord{4450}},
        {"DecorationSecondaryViewportRelativeNV", SpvWord{5256}},
        {"RayFlagsSkipAABBsKHR", SpvWord{512}},
        {"DecorationBlock", SpvWord{2}},
        {"SourceLanguageNZSL", SpvWord{9}},
        {"RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR", SpvWord{0}},
        {"KernelEnqueueFlagsNoWait", SpvWord{0}},
        {"LoadCacheControlUncachedINTEL", SpvWord{0}},
        {"DecorationForcePow2DepthINTEL", SpvWord{5836}},
        {"DecorationNoUnsignedWrap", SpvWord{4470}},
        {"DecorationCPacked", SpvWord{10}},
        {"BuiltInSubgroupLeMask", SpvWord{4419}},
        {"CapabilityMeshShadingEXT", SpvWord{5283}},
        {"LoopControlMaxReinvocationDelayINTEL", SpvWord{33554432}},
        {"CapabilityMatrix", SpvWord{0}},
        {"CapabilityFloat64", SpvWord{10}},
        {"CapabilityFloat16", SpvWord{9}},
        {"CapabilityImage1D", SpvWord{44}},
        {"FPRoundingModeRTZ", SpvWord{1}},
        {"DecorationNonUniform", SpvWord{5300}},
        {"CapabilitySubgroupImageMediaBlockIOINTEL", SpvWord{5579}},
        {"DecorationGlobalVariableOffsetINTEL", SpvWord{5628}},
        {"SelectionControlNone", SpvWord{0}},
        {"MemorySemanticsCrossWorkgroupMemory", SpvWord{512}},
        {"CapabilityGroupNonUniform", SpvWord{61}},
        {"LoopControlMaxConcurrencyINTEL", SpvWord{131072}},
        {"AddressingModelPhysicalStorageBuffer64", SpvWord{5348}},
        {"CooperativeMatrixOperandsMatrixCSignedComponentsKHR", SpvWord{4}},
        {"DecorationStallEnableINTEL", SpvWord{5905}},
        {"ImageChannelDataTypeHalfFloat", SpvWord{13}},
        {"DecorationFuncParamIOKindINTEL", SpvWord{5625}},
        {"BuiltInDrawIndex", SpvWord{4426}},
        {"BuiltInCullMaskKHR", SpvWord{6021}},
        {"DecorationPipelineEnableINTEL", SpvWord{5919}},
        {"CapabilityUnstructuredLoopControlsINTEL", SpvWord{5886}},
        {"CapabilityGeometry", SpvWord{2}},
        {"RayFlagsForceOpacityMicromap2StateEXT", SpvWord{1024}},
        {"FunctionControlNone", SpvWord{0}},
        {"CapabilityDotProductInput4x8Bit", SpvWord{6017}},
        {"CapabilityFragmentShaderShadingRateInterlockEXT", SpvWord{5372}},
        {"CapabilityGroupNonUniformRotateKHR", SpvWord{6026}},
        {"BuiltInFragInvocationCountEXT", SpvWord{5293}},
        {"DecorationRowMajor", SpvWord{4}},
        {"CapabilitySubgroupDispatch", SpvWord{58}},
        {"DecorationInputAttachmentIndex", SpvWord{43}},
        {"DecorationBufferLocationINTEL", SpvWord{5921}},
        {"CapabilityTransformFeedback", SpvWord{53}},
        {"DimTileImageDataEXT", SpvWord{4173}},
        {"MemorySemanticsUniformMemory", SpvWord{64}},
        {"DecorationStream", SpvWord{29}},
        {"ExecutionModeLocalSizeHintId", SpvWord{39}},
        {"CapabilityBitInstructions", SpvWord{6025}},
        {"StorageClassHostOnlyINTEL", SpvWord{5937}},
        {"CapabilityTextureBlockMatchQCOM", SpvWord{4486}},
        {"DecorationVectorComputeFunctionINTEL", SpvWord{5626}},
        {"CapabilityShaderViewportIndexLayerNV", SpvWord{5254}},
        {"LinkageTypeExport", SpvWord{0}},
        {"ImageChannelOrderIntensity", SpvWord{8}},
        {"BuiltInSMIDNV", SpvWord{5377}},
        {"ExecutionModeMaxWorkgroupSizeINTEL", SpvWord{5893}},
        {"ImageFormatRgba32f", SpvWord{1}},
        {"DecorationPerVertexKHR", SpvWord{5285}},
        {"BuiltInCullDistancePerViewNV", SpvWord{5278}},
        {"CapabilityShaderEnqueueAMDX", SpvWord{5067}},
        {"CapabilityShaderNonUniform", SpvWord{5301}},
        {"CapabilityRayQueryPositionFetchKHR", SpvWord{5391}},
        {"RayFlagsNoOpaqueKHR", SpvWord{2}},
        {"BuiltInBaryCoordSmoothSampleAMD", SpvWord{4997}},
        {"ImageFormatR8Snorm", SpvWord{20}},
        {"CapabilityUniformTexelBufferArrayDynamicIndexingEXT", SpvWord{5304}},
        {"KernelProfilingInfoNone", SpvWord{0}},
        {"ImageOperandsConstOffset", SpvWord{8}},
        {"CapabilityStorageUniform16", SpvWord{4434}},
        {"CapabilityUniformBufferArrayDynamicIndexing", SpvWord{28}},
        {"BuiltInRayTmaxNV", SpvWord{5326}},
        {"CapabilityVulkanMemoryModel", SpvWord{5345}},
        {"StorageClassStorageBuffer", SpvWord{12}},
        {"DimBuffer", SpvWord{5}},
        {"ImageFormatR16f", SpvWord{9}},
        {"CapabilityFPGADSPControlINTEL", SpvWord{5908}},
        {"FunctionParameterAttributeRuntimeAlignedINTEL", SpvWord{5940}},
        {"DimCube", SpvWord{3}},
        {"DecorationXfbBuffer", SpvWord{36}},
        {"ImageFormatRgba8", SpvWord{4}},
        {"DecorationInvariant", SpvWord{18}},
        {"CapabilityInt16", SpvWord{22}},
        {"StorageClassPhysicalStorageBuffer", SpvWord{5349}},
        {"BuiltInBaryCoordNoPerspSampleAMD", SpvWord{4994}},
        {"ExecutionModeQuads", SpvWord{24}},
        {"DecorationFlat", SpvWord{14}},
        {"BuiltInPrimitiveShadingRateKHR", SpvWord{4432}},
        {"CapabilityCacheControlsINTEL", SpvWord{6441}},
        {"CapabilityInt64ImageEXT", SpvWord{5016}},
        {"CapabilityShaderViewportMaskNV", SpvWord{5255}},
        {"OverflowModesSAT_SYM", SpvWord{3}},
        {"ImageFormatRg16Snorm", SpvWord{17}},
        {"DimSubpassData", SpvWord{6}},
        {"CapabilitySampleRateShading", SpvWord{35}},
        {"StorageClassUniformConstant", SpvWord{0}},
        {"BuiltInCoreMaxIDARM", SpvWord{4162}},
        {"DecorationWeightTextureQCOM", SpvWord{4487}},
        {"CapabilityStorageBufferArrayNonUniformIndexingEXT", SpvWord{5308}},
        {"FunctionParameterAttributeNoReadWrite", SpvWord{7}},
        {"QuantizationModesRND_INF", SpvWord{4}},
        {"CapabilityRuntimeAlignedAttributeINTEL", SpvWord{5939}},
        {"BuiltInHitTNV", SpvWord{5332}},
        {"CapabilityFragmentBarycentricKHR", SpvWord{5284}},
        {"DecorationLatencyControlConstraintINTEL", SpvWord{6173}},
        {"PackedVectorFormatPackedVectorFormat4x8BitKHR", SpvWord{0}},
        {"CapabilitySubgroupAvcMotionEstimationIntraINTEL", SpvWord{5697}},
        {"BuiltInBaseInstance", SpvWord{4425}},
        {"ImageFormatRgb10a2ui", SpvWord{34}},
        {"CapabilityImageMipmap", SpvWord{15}},
        {"ExecutionModeRoundingModeRTZ", SpvWord{4463}},
        {"CapabilityTessellationPointSize", SpvWord{23}},
        {"DecorationSaturatedConversion", SpvWord{28}},
        {"CapabilityCooperativeMatrixNV", SpvWord{5357}},
        {"CapabilityFragmentShaderSampleInterlockEXT", SpvWord{5363}},
        {"BuiltInViewportMaskPerViewNV", SpvWord{5262}},
        {"ImageFormatRg16f", SpvWord{7}},
        {"ImageFormatR16ui", SpvWord{38}},
        {"SourceLanguageWGSL", SpvWord{10}},
        {"StorageClassPushConstant", SpvWord{9}},
        {"CapabilityDisplacementMicromapNV", SpvWord{5380}},
        {"CapabilityFragmentFullyCoveredEXT", SpvWord{5265}},
        {"MemoryModelOpenCL", SpvWord{2}},
        {"DecorationUniform", SpvWord{26}},
        {"ExecutionModeNumSIMDWorkitemsINTEL", SpvWord{5896}},
        {"CapabilityFPFastMathModeINTEL", SpvWord{5837}},
        {"ExecutionModeSpacingEqual", SpvWord{1}},
        {"BuiltInInstanceId", SpvWord{6}},
        {"ExecutionModeShadingRateInterlockOrderedEXT", SpvWord{5370}},
        {"ImageChannelOrderRG", SpvWord{2}},
        {"ExecutionModeNonCoherentDepthAttachmentReadEXT", SpvWord{4170}},
        {"BuiltInBaryCoordSmoothAMD", SpvWord{4995}},
        {"ExecutionModelKernel", SpvWord{6}},
        {"CapabilityShaderInvocationReorderNV", SpvWord{5383}},
        {"SamplerAddressingModeRepeat", SpvWord{3}},
        {"ImageChannelOrderABGR", SpvWord{19}},
        {"LoadCacheControlInvalidateAfterReadINTEL", SpvWord{3}},
        {"StorageClassTileImageEXT", SpvWord{4172}},
        {"ExecutionModePixelCenterInteger", SpvWord{6}},
        {"ExecutionModeOutputPrimitivesEXT", SpvWord{5270}},
        {"CapabilityImageReadWrite", SpvWord{14}},
        {"ExecutionModeRoundingModeRTE", SpvWord{4462}},
        {"FPRoundingModeRTP", SpvWord{2}},
        {"CapabilityComputeDerivativeGroupQuadsNV", SpvWord{5288}},
        {"CapabilityAtomicFloat32AddEXT", SpvWord{6033}},
        {"CapabilityInputAttachmentArrayNonUniformIndexingEXT", SpvWord{5310}},
        {"LoopControlMaxIterations", SpvWord{32}},
        {"ExecutionModeDerivativeGroupLinearNV", SpvWord{5290}},
        {"FragmentShadingRateVertical4Pixels", SpvWord{2}},
        {"DecorationPayloadNodeNameAMDX", SpvWord{5091}},
        {"DecorationSpecId", SpvWord{1}},
        {"CapabilityGlobalVariableFPGADecorationsINTEL", SpvWord{6189}},
        {"BuiltInClipDistance", SpvWord{3}},
        {"BuiltInHitMicroTriangleVertexPositionsNV", SpvWord{5337}},
        {"DecorationMaxByteOffset", SpvWord{45}},
        {"CapabilityVulkanMemoryModelKHR", SpvWord{5345}},
        {"StoreCacheControlWriteThroughINTEL", SpvWord{1}},
        {"CapabilityFPGAClusterAttributesINTEL", SpvWord{5904}},
        {"DecorationMMHostInterfaceAddressWidthINTEL", SpvWord{6177}},
        {"QuantizationModesRND_MIN_INF", SpvWord{5}},
        {"FPRoundingModeRTE", SpvWord{0}},
        {"FunctionParameterAttributeNoAlias", SpvWord{4}},
        {"RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR", SpvWord{2}},
        {"StorageClassHitObjectAttributeNV", SpvWord{5385}},
        {"DecorationOverrideCoverageNV", SpvWord{5248}},
        {"CapabilityImageGatherBiasLodAMD", SpvWord{5009}},
        {"CapabilityBindlessTextureNV", SpvWord{5390}},
        {"CapabilityFPGALatencyControlINTEL", SpvWord{6171}},
        {"CapabilityTileImageColorReadAccessEXT", SpvWord{4166}},
        {"RayFlagsTerminateOnFirstHitKHR", SpvWord{4}},
        {"DecorationSample", SpvWord{17}},
        {"FPFastMathModeNotInf", SpvWord{2}},
        {"DecorationMMHostInterfaceLatencyINTEL", SpvWord{6179}},
        {"BuiltInHitMicroTriangleVertexBarycentricsNV", SpvWord{5344}},
        {"ImageFormatRgba32ui", SpvWord{30}},
        {"BuiltInCoreCountARM", SpvWord{4161}},
        {"FPRoundingModeRTN", SpvWord{3}},
        {"BuiltInObjectRayDirectionKHR", SpvWord{5324}},
        {"BuiltInSubgroupMaxSize", SpvWord{37}},
        {"BuiltInHitKindFrontFacingMicroTriangleNV", SpvWord{5405}},
        {"BuiltInSubgroupId", SpvWord{40}},
        {"CapabilityFloatingPointModeINTEL", SpvWord{5583}},
        {"QuantizationModesRND_ZERO", SpvWord{3}},
        {"LoopControlMinIterations", SpvWord{16}},
        {"RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR", SpvWord{1}},
        {"SourceLanguageHERO_C", SpvWord{8}},
        {"ImageFormatR32f", SpvWord{3}},
        {"ImageOperandsSignExtend", SpvWord{4096}},
        {"ImageChannelDataTypeUnsignedIntRaw12EXT", SpvWord{20}},
        {"ImageChannelOrdersRGBA", SpvWord{17}},
        {"BuiltInFullyCoveredEXT", SpvWord{5264}},
        {"ImageOperandsLod", SpvWord{2}},
        {"LoopControlUnroll", SpvWord{1}},
        {"FPDenormModeFlushToZero", SpvWord{1}},
        {"MemoryAccessAligned", SpvWord{2}},
        {"CapabilityFPGAClusterAttributesV2INTEL", SpvWord{6150}},
        {"ImageChannelDataTypeUnsignedInt32", SpvWord{12}},
        {"DecorationRestrict", SpvWord{19}},
        {"CapabilityStorageImageArrayNonUniformIndexing", SpvWord{5309}},
        {"ImageChannelOrderLuminance", SpvWord{9}},
        {"CapabilityStorageImageArrayNonUniformIndexingEXT", SpvWord{5309}},
        {"LoopControlInitiationIntervalINTEL", SpvWord{65536}},
        {"LoopControlMaxInterleavingINTEL", SpvWord{2097152}},
        {"DecorationGLSLShared", SpvWord{8}},
        {"StorageClassImage", SpvWord{11}},
        {"FunctionControlPure", SpvWord{4}},
        {"CapabilityStoragePushConstant16", SpvWord{4435}},
        {"FPFastMathModeFast", SpvWord{16}},
        {"CapabilityBlockingPipesINTEL", SpvWord{5945}},
        {"StorageClassHitAttributeKHR", SpvWord{5339}},
        {"DecorationRestrictPointer", SpvWord{5355}},
        {"ExecutionModeFinalizer", SpvWord{34}},
        {"BuiltInLocalInvocationId", SpvWord{27}},
        {"DecorationFunctionDenormModeINTEL", SpvWord{5823}},
        {"ExecutionModeOriginLowerLeft", SpvWord{8}},
        {"BuiltInSampleId", SpvWord{18}},
        {"HostAccessQualifierNoneINTEL", SpvWord{0}},
        {"BuiltInNumEnqueuedSubgroups", SpvWord{39}},
        {"ExecutionModelMissKHR", SpvWord{5317}},
        {"FPOperationModeALT", SpvWord{1}},
        {"ExecutionModeOutputPoints", SpvWord{27}},
        {"StorageClassIncomingCallableDataNV", SpvWord{5329}},
        {"CapabilityRoundToInfinityINTEL", SpvWord{5582}},
        {"MemorySemanticsMakeVisible", SpvWord{16384}},
        {"InitializationModeQualifierInitOnDeviceReprogramINTEL", SpvWord{0}},
        {"ImageOperandsBias", SpvWord{1}},
        {"ImageOperandsOffsets", SpvWord{65536}},
        {"SourceLanguageOpenCL_CPP", SpvWord{4}},
        {"CapabilityStorageImageWriteWithoutFormat", SpvWord{56}},
        {"BuiltInFrontFacing", SpvWord{17}},
        {"DecorationArrayStride", SpvWord{6}},
        {"SourceLanguageGLSL", SpvWord{2}},
        {"ExecutionModeOutputLinesNV", SpvWord{5269}},
        {"CapabilityAtomicFloat64AddEXT", SpvWord{6034}},
        {"CapabilityUniformAndStorageBuffer8BitAccess", SpvWord{4449}},
        {"MemorySemanticsAtomicCounterMemory", SpvWord{1024}},
        {"BuiltInPrimitiveId", SpvWord{7}},
        {"ExecutionModeEarlyAndLateFragmentTestsAMD", SpvWord{5017}},
        {"CapabilityGeometryPointSize", SpvWord{24}},
        {"CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR", SpvWord{4430}},
        {"DecorationMMHostInterfaceWaitRequestINTEL", SpvWord{6182}},
        {"ExecutionModeVecTypeHint", SpvWord{30}},
        {"ExecutionModeNamedBarrierCountINTEL", SpvWord{6417}},
        {"ImageFormatRg32ui", SpvWord{35}},
        {"MemorySemanticsSequentiallyConsistent", SpvWord{16}},
        {"RayFlagsSkipTrianglesKHR", SpvWord{256}},
        {"ExecutionModeVertexOrderCcw", SpvWord{5}},
        {"CapabilityGeometryShaderPassthroughNV", SpvWord{5251}},
        {"BuiltInLaunchSizeKHR", SpvWord{5320}},
        {"DecorationCacheControlStoreINTEL", SpvWord{6443}},
        {"BuiltInTaskCountNV", SpvWord{5274}},
        {"CapabilitySubgroupVoteKHR", SpvWord{4431}},
        {"CapabilityStorageBufferArrayNonUniformIndexing", SpvWord{5308}},
        {"BuiltInIncomingRayFlagsKHR", SpvWord{5351}},
        {"DecorationPerViewNV", SpvWord{5272}},
        {"BuiltInRayTmaxKHR", SpvWord{5326}},
        {"BuiltInTessLevelOuter", SpvWord{11}},
        {"StorageClassIncomingRayPayloadNV", SpvWord{5342}},
        {"ScopeInvocation", SpvWord{4}},
        {"CapabilityMultiViewport", SpvWord{57}},
        {"ImageChannelOrderDepth", SpvWord{13}},
        {"ImageFormatR16i", SpvWord{28}},
        {"CapabilityRayTracingPositionFetchKHR", SpvWord{5336}},
        {"ImageFormatRg8Snorm", SpvWord{18}},
        {"ImageOperandsNontemporal", SpvWord{16384}},
        {"CapabilityVectorComputeINTEL", SpvWord{5617}},
        {"QuantizationModesTRN_ZERO", SpvWord{1}},
        {"ImageChannelOrderR", SpvWord{0}},
        {"CapabilityInputAttachmentArrayDynamicIndexingEXT", SpvWord{5303}},
        {"DecorationStallFreeINTEL", SpvWord{6151}},
        {"ImageChannelDataTypeUnormInt101010_2", SpvWord{16}},
        {"LoopControlDontUnroll", SpvWord{2}},
        {"BuiltInSamplePosition", SpvWord{19}},
        {"ExecutionModeOutputPrimitivesNV", SpvWord{5270}},
        {"RayQueryIntersectionRayQueryCommittedIntersectionKHR", SpvWord{1}},
        {"BuiltInPrimitiveLineIndicesEXT", SpvWord{5295}},
        {"CapabilityStorageTexelBufferArrayNonUniformIndexingEXT", SpvWord{5312}},
        {"CapabilityInt8", SpvWord{39}},
        {"BuiltInPrimitiveTriangleIndicesEXT", SpvWord{5296}},
        {"ExecutionModeRoundingModeRTPINTEL", SpvWord{5620}},
        {"CapabilityStorageBuffer16BitAccess", SpvWord{4433}},
        {"CapabilitySampleMaskOverrideCoverageNV", SpvWord{5249}},
        {"ImageChannelOrderA", SpvWord{1}},
        {"ExecutionModelGeometry", SpvWord{3}},
        {"ExecutionModeStencilRefGreaterFrontAMD", SpvWord{5080}},
        {"ExecutionModeSubgroupUniformControlFlowKHR", SpvWord{4421}},
        {"CapabilityAsmINTEL", SpvWord{5606}},
        {"ImageOperandsMakeTexelVisible", SpvWord{512}},
        {"DecorationSimpleDualPortINTEL", SpvWord{5833}},
        {"CapabilitySubgroupBallotKHR", SpvWord{4423}},
        {"LoopControlPipelineEnableINTEL", SpvWord{524288}},
        {"CapabilitySampledRect", SpvWord{37}},
        {"DecorationUserSemantic", SpvWord{5635}},
        {"StorageClassGeneric", SpvWord{8}},
        {"ImageFormatRgba32i", SpvWord{21}},
        {"ImageFormatUnknown", SpvWord{0}},
        {"StoreCacheControlUncachedINTEL", SpvWord{0}},
        {"BuiltInNumSubgroups", SpvWord{38}},
        {"ImageFormatRg8i", SpvWord{27}},
        {"DecorationNoSignedWrap", SpvWord{4469}},
        {"StorageClassRayPayloadNV", SpvWord{5338}},
        {"CapabilityImageReadWriteLodAMD", SpvWord{5015}},
        {"GroupOperationReduce", SpvWord{0}},
        {"BuiltInWorldRayOriginKHR", SpvWord{5321}},
        {"RayFlagsCullOpaqueKHR", SpvWord{64}},
        {"CapabilityGroupUniformArithmeticKHR", SpvWord{6400}},
        {"DecorationCounterBuffer", SpvWord{5634}},
        {"BuiltInFragCoord", SpvWord{15}},
        {"LinkageTypeLinkOnceODR", SpvWord{2}},
        {"ImageChannelDataTypeUnormShort555", SpvWord{5}},
        {"CapabilityPerViewAttributesNV", SpvWord{5260}},
        {"ImageOperandsMinLod", SpvWord{128}},
        {"DecorationIndex", SpvWord{32}},
        {"DecorationSIMTCallINTEL", SpvWord{5599}},
        {"CapabilitySubgroupAvcMotionEstimationINTEL", SpvWord{5696}},
        {"CapabilityRayQueryProvisionalKHR", SpvWord{4471}},
        {"ExecutionModeLocalSize", SpvWord{17}},
        {"CapabilityImageGatherExtended", SpvWord{25}},
        {"BuiltInInstanceIndex", SpvWord{43}},
        {"BuiltInViewportMaskNV", SpvWord{5253}},
        {"CapabilitySampled1D", SpvWord{43}},
        {"ImageChannelDataTypeSnormInt16", SpvWord{1}},
        {"SourceLanguageESSL", SpvWord{1}},
        {"BuiltInTessCoord", SpvWord{13}},
        {"BuiltInInstanceCustomIndexKHR", SpvWord{5327}},
        {"CapabilityMultiView", SpvWord{4439}},
        {"MemorySemanticsMakeVisibleKHR", SpvWord{16384}},
        {"FPOperationModeIEEE", SpvWord{0}},
        {"BuiltInFragStencilRefEXT", SpvWord{5014}},
        {"ExecutionModeOutputTriangleStrip", SpvWord{29}},
        {"DecorationStableKernelArgumentINTEL", SpvWord{6183}},
        {"CapabilityKernel", SpvWord{6}},
        {"CapabilityAddresses", SpvWord{4}},
        {"ExecutionModeOriginUpperLeft", SpvWord{7}},
        {"ExecutionModelMissNV", SpvWord{5317}},
        {"CapabilityMemoryAccessAliasingINTEL", SpvWord{5910}},
        {"CapabilityTextureBoxFilterQCOM", SpvWord{4485}},
        {"ExecutionModeDenormFlushToZero", SpvWord{4460}},
        {"CapabilitySparseResidency", SpvWord{41}},
        {"RayFlagsOpaqueKHR", SpvWord{1}},
        {"FragmentShadingRateHorizontal4Pixels", SpvWord{8}},
        {"BuiltInPrimitiveIndicesNV", SpvWord{5276}},
        {"ExecutionModelGLCompute", SpvWord{5}},
        {"CapabilityGenericPointer", SpvWord{38}},
        {"BuiltInWorldToObjectNV", SpvWord{5331}},
        {"DecorationMMHostInterfaceDataWidthINTEL", SpvWord{6178}},
        {"StorageClassShaderRecordBufferKHR", SpvWord{5343}},
        {"FunctionControlOptNoneINTEL", SpvWord{65536}},
        {"DecorationComponent", SpvWord{31}},
        {"ExecutionModeStencilRefGreaterBackAMD", SpvWord{5083}},
        {"DecorationCacheSizeINTEL", SpvWord{5900}},
        {"ExecutionModeOutputLineStrip", SpvWord{28}},
        {"CapabilityMeshShadingNV", SpvWord{5266}},
        {"DecorationExplicitInterpAMD", SpvWord{4999}},
        {"StorageClassHitAttributeNV", SpvWord{5339}},
        {"DecorationNumbanksINTEL", SpvWord{5827}},
        {"CapabilityDeviceEnqueue", SpvWord{19}},
        {"DecorationUserTypeGOOGLE", SpvWord{5636}},
        {"AccessQualifierReadWrite", SpvWord{2}},
        {"CapabilityImageFootprintNV", SpvWord{5282}},
        {"BuiltInPatchVertices", SpvWord{14}},
        {"StorageClassDeviceOnlyINTEL", SpvWord{5936}},
        {"MemoryModelGLSL450", SpvWord{1}},
        {"BuiltInSubgroupGtMask", SpvWord{4418}},
        {"BuiltInSubgroupLocalInvocationId", SpvWord{41}},
        {"CapabilityLiteralSampler", SpvWord{20}},
        {"ImageFormatRgba8Snorm", SpvWord{5}},
        {"CapabilityIOPipesINTEL", SpvWord{5943}},
        {"CapabilitySampledImageArrayNonUniformIndexingEXT", SpvWord{5307}},
        {"CapabilityComputeDerivativeGroupLinearNV", SpvWord{5350}},
        {"FPFastMathModeNSZ", SpvWord{4}},
        {"CapabilityFunctionPointersINTEL", SpvWord{5603}},
        {"CapabilitySampledImageArrayDynamicIndexing", SpvWord{29}},
        {"DecorationAlignmentId", SpvWord{46}},
        {"StorageClassRayPayloadKHR", SpvWord{5338}},
        {"CapabilitySubgroupBufferBlockIOINTEL", SpvWord{5569}},
        {"SamplerAddressingModeNone", SpvWord{0}},
        {"CapabilityVariablePointers", SpvWord{4442}},
        {"CapabilityDrawParameters", SpvWord{4427}},
        {"ExecutionModeSubgroupsPerWorkgroup", SpvWord{36}},
        {"ExecutionModelMeshNV", SpvWord{5268}},
        {"BuiltInObjectRayOriginKHR", SpvWord{5323}},
        {"DecorationNonWritable", SpvWord{24}},
        {"ExecutionModelAnyHitNV", SpvWord{5315}},
        {"DecorationStridesizeINTEL", SpvWord{5883}},
        {"CapabilityFPGAInvocationPipeliningAttributesINTEL", SpvWord{5916}},
        {"BuiltInInvocationsPerPixelNV", SpvWord{5293}},
        {"DecorationNodeSharesPayloadLimitsWithAMDX", SpvWord{5019}},
        {"CapabilityRayCullMaskKHR", SpvWord{6020}},
        {"DecorationHlslSemanticGOOGLE", SpvWord{5635}},
        {"ExecutionModeXfb", SpvWord{11}},
        {"CapabilityVectorAnyINTEL", SpvWord{5619}},
        {"CapabilityFPGAArgumentInterfacesINTEL", SpvWord{6174}},
        {"GroupOperationPartitionedReduceNV", SpvWord{6}},
        {"DecorationWordsizeINTEL", SpvWord{5884}},
        {"ImageChannelOrderRx", SpvWord{10}},
        {"BuiltInPrimitivePointIndicesEXT", SpvWord{5294}},
        {"FragmentShadingRateHorizontal2Pixels", SpvWord{4}},
        {"ExecutionModeLocalSizeId", SpvWord{38}},
        {"BuiltInDeviceIndex", SpvWord{4438}},
        {"AddressingModelPhysical64", SpvWord{2}},
        {"ImageOperandsOffset", SpvWord{16}},
        {"ImageOperandsSample", SpvWord{64}},
        {"BuiltInWorldToObjectKHR", SpvWord{5331}},
        {"DecorationTrueDualPortINTEL", SpvWord{5885}},
        {"MemorySemanticsMakeAvailableKHR", SpvWord{8192}},
        {"CapabilityGroupNonUniformArithmetic", SpvWord{63}},
        {"DecorationVectorComputeCallableFunctionINTEL", SpvWord{6087}},
        {"ExecutionModeMaxNumWorkgroupsAMDX", SpvWord{5077}},
        {"CapabilityStorageUniformBufferBlock16", SpvWord{4433}},
        {"CapabilityMinLod", SpvWord{42}},
        {"CapabilityWorkgroupMemoryExplicitLayoutKHR", SpvWord{4428}},
        {"DecorationPerPrimitiveEXT", SpvWord{5271}},
        {"DecorationNoPerspective", SpvWord{13}},
        {"KernelProfilingInfoCmdExecTime", SpvWord{1}},
        {"ImageFormatRgb10A2", SpvWord{11}},
        {"CapabilityUniformBufferArrayNonUniformIndexing", SpvWord{5306}},
        {"RayFlagsCullBackFacingTrianglesKHR", SpvWord{16}},
        {"ExecutionModeStencilRefReplacingEXT", SpvWord{5027}},
        {"DecorationStackCallINTEL", SpvWord{5627}},
        {"StorageClassNodeOutputPayloadAMDX", SpvWord{5076}},
        {"CapabilityAtomicFloat64MinMaxEXT", SpvWord{5613}},
        {"ExecutionModeCoalescingAMDX", SpvWord{5069}},
        {"LoopControlDependencyLength", SpvWord{8}},
        {"ImageChannelOrdersRGBx", SpvWord{16}},
        {"QuantizationModesTRN", SpvWord{0}},
        {"CapabilityFragmentShadingRateKHR", SpvWord{4422}},
        {"Dim3D", SpvWord{2}},
        {"DecorationMaxReplicatesINTEL", SpvWord{5832}},
        {"ImageChannelDataTypeFloat", SpvWord{14}},
        {"ExecutionModeDepthReplacing", SpvWord{12}},
        {"ExecutionModeSpacingFractionalOdd", SpvWord{3}},
        {"ExecutionModeSampleInterlockUnorderedEXT", SpvWord{5369}},
        {"StorageClassFunction", SpvWord{7}},
        {"MemoryAccessAliasScopeINTELMask", SpvWord{65536}},
        {"DecorationAliased", SpvWord{20}},
        {"ExecutionModeMaxWorkDimINTEL", SpvWord{5894}},
        {"DecorationVectorComputeVariableINTEL", SpvWord{5624}},
        {"BuiltInLaunchIdKHR", SpvWord{5319}},
        {"DecorationNonUniformEXT", SpvWord{5300}},
        {"ExecutionModeNoGlobalOffsetINTEL", SpvWord{5895}},
        {"DecorationViewportRelativeNV", SpvWord{5252}},
        {"CooperativeMatrixOperandsMatrixBSignedComponentsKHR", SpvWord{2}},
        {"BuiltInWarpIDNV", SpvWord{5376}},
        {"BuiltInHitKindBackFacingMicroTriangleNV", SpvWord{5406}},
        {"BuiltInLayer", SpvWord{9}},
        {"ExecutionModeSampleInterlockOrderedEXT", SpvWord{5368}},
        {"BuiltInWorkDim", SpvWord{30}},
        {"DecorationOffset", SpvWord{35}},
        {"DecorationBufferBlock", SpvWord{3}},
        {"DecorationAlignment", SpvWord{44}},
        {"BuiltInSubgroupEqMaskKHR", SpvWord{4416}},
        {"BuiltInObjectToWorldNV", SpvWord{5330}},
        {"CapabilityFragmentBarycentricNV", SpvWord{5284}},
        {"GroupOperationPartitionedExclusiveScanNV", SpvWord{8}},
        {"CooperativeMatrixOperandsNoneKHR", SpvWord{0}},
        {"CapabilityRayTracingNV", SpvWord{5340}},
        {"DecorationBlockMatchTextureQCOM", SpvWord{4488}},
        {"BuiltInTessLevelInner", SpvWord{12}},
        {"BuiltInSubgroupGeMaskKHR", SpvWord{4417}},
        {"SourceLanguageSYCL", SpvWord{7}},
        {"DecorationFunctionFloatingPointModeINTEL", SpvWord{6080}},
        {"Dim1D", SpvWord{0}},
        {"BuiltInSecondaryPositionNV", SpvWord{5257}},
        {"RayFlagsCullFrontFacingTrianglesKHR", SpvWord{32}},
        {"StorageClassPhysicalStorageBufferEXT", SpvWord{5349}},
        {"ImageChannelDataTypeUnormInt101010", SpvWord{6}},
        {"ScopeDevice", SpvWord{1}},
        {"ExecutionModeSubgroupSize", SpvWord{35}},
        {"DecorationPatch", SpvWord{15}},
        {"CapabilitySubgroupImageBlockIOINTEL", SpvWord{5570}},
        {"BuiltInSubgroupLeMaskKHR", SpvWord{4419}},
        {"BuiltInWarpIDARM", SpvWord{4163}},
        {"DecorationVolatile", SpvWord{21}},
        {"SamplerFilterModeLinear", SpvWord{1}},
        {"BuiltInLaunchSizeNV", SpvWord{5320}},
        {"CapabilityVariableLengthArrayINTEL", SpvWord{5817}},
        {"LoadCacheControlCachedINTEL", SpvWord{1}},
        {"CapabilityCullDistance", SpvWord{33}},
        {"FunctionParameterAttributeSret", SpvWord{3}},
        {"CapabilityInterpolationFunction", SpvWord{52}},
        {"ImageFormatRg8ui", SpvWord{37}},
        {"CapabilityLongCompositesINTEL", SpvWord{6089}},
        {"StorageClassCallableDataNV", SpvWord{5328}},
        {"ImageChannelDataTypeSnormInt8", SpvWord{0}},
        {"CapabilityRoundingModeRTZ", SpvWord{4468}},
        {"CapabilityArbitraryPrecisionIntegersINTEL", SpvWord{5844}},
        {"ImageOperandsNone", SpvWord{0}},
        {"CooperativeMatrixOperandsMatrixASignedComponentsKHR", SpvWord{1}},
        {"ExecutionModeDepthUnchanged", SpvWord{16}},
        {"ExecutionModeLocalSizeHint", SpvWord{18}},
        {"ExecutionModeSpacingFractionalEven", SpvWord{2}},
        {"ExecutionModeShadingRateInterlockUnorderedEXT", SpvWord{5371}},
        {"ExecutionModeDerivativeGroupQuadsNV", SpvWord{5289}},
        {"ImageOperandsNonPrivateTexel", SpvWord{1024}},
        {"DecorationReferencedIndirectlyINTEL", SpvWord{5602}},
        {"StorageClassWorkgroup", SpvWord{4}},
        {"BuiltInSubgroupGeMask", SpvWord{4417}},
        {"ImageFormatRgba16ui", SpvWord{31}},
        {"LoopControlLoopCountINTEL", SpvWord{16777216}},
        {"CapabilitySampledCubeArray", SpvWord{45}},
        {"StorageClassIncomingRayPayloadKHR", SpvWord{5342}},
        {"CapabilityDotProductInput4x8BitPackedKHR", SpvWord{6018}},
        {"BuiltInPointSize", SpvWord{1}},
        {"ImageChannelDataTypeUnsignedIntRaw10EXT", SpvWord{19}},
        {"BuiltInHitKindNV", SpvWord{5333}},
        {"MemorySemanticsAcquire", SpvWord{2}},
        {"ExecutionModeShaderIndexAMDX", SpvWord{5073}},
        {"CapabilityRoundingModeRTE", SpvWord{4467}},
        {"FragmentShadingRateVertical2Pixels", SpvWord{1}},
        {"CapabilityFunctionFloatControlINTEL", SpvWord{5821}},
        {"DecorationAliasedPointerEXT", SpvWord{5356}},
        {"DecorationCentroid", SpvWord{16}},
        {"ScopeQueueFamily", SpvWord{5}},
        {"ExecutionModeInputLinesAdjacency", SpvWord{21}},
        {"ImageOperandsZeroExtend", SpvWord{8192}},
        {"MemoryAccessNone", SpvWord{0}},
        {"LoopControlPeelCount", SpvWord{128}},
        {"LoadCacheControlConstCachedINTEL", SpvWord{4}},
        {"DecorationMediaBlockIOINTEL", SpvWord{6140}},
        {"ExecutionModelIntersectionNV", SpvWord{5314}},
        {"DecorationMatrixStride", SpvWord{7}},
        {"DecorationBankwidthINTEL", SpvWord{5828}},
        {"DecorationRegisterMapKernelArgumentINTEL", SpvWord{6176}},
        {"CapabilityDebugInfoModuleINTEL", SpvWord{6114}},
        {"ExecutionModeIsolines", SpvWord{25}},
        {"ImageFormatR8i", SpvWord{29}},
        {"CapabilityFPGAMemoryAccessesINTEL", SpvWord{5898}},
        {"ExecutionModeInputPoints", SpvWord{19}},
        {"CapabilityFloat16Buffer", SpvWord{8}},
        {"ExecutionModePixelInterlockUnorderedEXT", SpvWord{5367}},
        {"CapabilityImageRect", SpvWord{36}},
        {"BuiltInSubgroupLtMaskKHR", SpvWord{4420}},
        {"LoopControlPartialCount", SpvWord{256}},
        {"ImageChannelOrderRGB", SpvWord{4}},
        {"OverflowModesWRAP", SpvWord{0}},
        {"ImageOperandsVolatileTexelKHR", SpvWord{2048}},
        {"CapabilityFragmentDensityEXT", SpvWord{5291}},
        {"DecorationLatencyControlLabelINTEL", SpvWord{6172}},
        {"CooperativeMatrixLayoutRowMajorKHR", SpvWord{0}},
        {"ExecutionModeDenormPreserve", SpvWord{4459}},
        {"DecorationBindlessImageNV", SpvWord{5399}},
        {"ImageFormatRgba8i", SpvWord{23}},
        {"LoadCacheControlStreamingINTEL", SpvWord{2}},
        {"CapabilityVector16", SpvWord{7}},
        {"BuiltInInvocationId", SpvWord{8}},
        {"SelectionControlFlatten", SpvWord{1}},
        {"BuiltInGlobalLinearId", SpvWord{34}},
        {"ExecutionModeSignedZeroInfNanPreserve", SpvWord{4461}},
        {"InitializationModeQualifierInitOnDeviceResetINTEL", SpvWord{1}},
        {"MemorySemanticsOutputMemoryKHR", SpvWord{4096}},
        {"AddressingModelPhysical32", SpvWord{1}},
        {"MemorySemanticsWorkgroupMemory", SpvWord{256}},
        {"MemoryAccessNonPrivatePointer", SpvWord{32}},
        {"ExecutionModelTessellationEvaluation", SpvWord{2}},
        {"DecorationImplementInRegisterMapINTEL", SpvWord{6191}},
        {"MemorySemanticsImageMemory", SpvWord{2048}},
        {"CapabilityFPMaxErrorINTEL", SpvWord{6169}},
        {"DecorationPerTaskNV", SpvWord{5273}},
        {"SelectionControlDontFlatten", SpvWord{2}},
        {"BuiltInEnqueuedWorkgroupSize", SpvWord{32}},
        {"ExecutionModelTaskEXT", SpvWord{5364}},
        {"ImageChannelOrderARGB", SpvWord{7}},
        {"ScopeCrossDevice", SpvWord{0}},
        {"CapabilityFPGAMemoryAttributesINTEL", SpvWord{5824}},
        {"CapabilityUSMStorageClassesINTEL", SpvWord{5935}},
        {"ExecutionModeStaticNumWorkgroupsAMDX", SpvWord{5072}},
        {"ScopeQueueFamilyKHR", SpvWord{5}},
        {"DecorationXfbStride", SpvWord{37}},
        {"BuiltInCullDistance", SpvWord{4}},
        {"ImageFormatRgba16f", SpvWord{2}},
        {"SourceLanguageOpenCL_C", SpvWord{3}},
        {"BuiltInCoalescedInputCountAMDX", SpvWord{5021}},
        {"ImageOperandsMakeTexelAvailableKHR", SpvWord{256}},
        {"ExecutionModelRayGenerationKHR", SpvWord{5313}},
        {"DecorationHlslCounterBufferGOOGLE", SpvWord{5634}},
        {"CooperativeMatrixUseMatrixAccumulatorKHR", SpvWord{2}},
        {"BuiltInRayGeometryIndexKHR", SpvWord{5352}},
        {"GroupOperationExclusiveScan", SpvWord{2}},
        {"DecorationBurstCoalesceINTEL", SpvWord{5899}},
        {"CapabilityInputAttachment", SpvWord{40}},
        {"ImageFormatRgba16i", SpvWord{22}},
        {"ExecutionModeDepthLess", SpvWord{15}},
        {"BuiltInSubgroupLtMask", SpvWord{4420}},
        {"CapabilityInt64Atomics", SpvWord{12}},
        {"CooperativeMatrixOperandsMatrixResultSignedComponentsKHR", SpvWord{8}},
        {"ImageChannelDataTypeUnormInt16", SpvWord{3}},
        {"MemoryModelVulkanKHR", SpvWord{3}},
        {"DecorationConduitKernelArgumentINTEL", SpvWord{6175}},
        {"CapabilityImageBasic", SpvWord{13}},
        {"ImageFormatR11fG11fB10f", SpvWord{8}},
        {"DecorationBankBitsINTEL", SpvWord{5835}},
        {"CapabilityStorageTexelBufferArrayDynamicIndexing", SpvWord{5305}},
        {"ExecutionModeStencilRefUnchangedBackAMD", SpvWord{5082}},
        {"ImageChannelDataTypeSignedInt32", SpvWord{9}},
        {"MemorySemanticsNone", SpvWord{0}},
        {"CapabilityTessellation", SpvWord{3}},
        {"FunctionParameterAttributeNoCapture", SpvWord{5}},
        {"DecorationSinglepumpINTEL", SpvWord{5830}},
        {"ExecutionModeStreamingInterfaceINTEL", SpvWord{6154}},
        {"DecorationMaxByteOffsetId", SpvWord{47}},
        {"ExecutionModeOutputTrianglesEXT", SpvWord{5298}},
        {"ExecutionModePostDepthCoverage", SpvWord{4446}},
        {"ExecutionModeStencilRefLessFrontAMD", SpvWord{5081}},
        {"CapabilityTextureSampleWeightedQCOM", SpvWord{4484}},
        {"LinkageTypeImport", SpvWord{1}},
        {"CapabilityTileImageStencilReadAccessEXT", SpvWord{4168}},
        {"CapabilityFragmentShaderPixelInterlockEXT", SpvWord{5378}},
        {"ExecutionModeNonCoherentColorAttachmentReadEXT", SpvWord{4169}},
        {"DecorationPrefetchINTEL", SpvWord{5902}},
        {"CapabilityShaderLayer", SpvWord{69}},
        {"ImageFormatRg16i", SpvWord{26}},
        {"StorageClassTaskPayloadWorkgroupEXT", SpvWord{5402}},
        {"ImageChannelDataTypeSignedInt16", SpvWord{8}},
        {"CapabilityRuntimeDescriptorArrayEXT", SpvWord{5302}},
        {"SourceLanguageCPP_for_OpenCL", SpvWord{6}},
        {"DecorationNonReadable", SpvWord{25}},
        {"CapabilityVariablePointersStorageBuffer", SpvWord{4441}},
        {"ImageChannelOrderBGRA", SpvWord{6}},
        {"FPFastMathModeAllowRecip", SpvWord{8}},
        {"BuiltInWorkgroupSize", SpvWord{25}},
        {"ImageFormatR64i", SpvWord{41}},
        {"CapabilityStorageImageArrayDynamicIndexing", SpvWord{31}},
        {"BuiltInSubgroupSize", SpvWord{36}},
        {"MemoryAccessNoAliasINTELMask", SpvWord{131072}},
        {"ExecutionModelIntersectionKHR", SpvWord{5314}},
        {"BuiltInVertexIndex", SpvWord{42}},
        {"ExecutionModelTaskNV", SpvWord{5267}},
    };

    static const auto hash = [](const UnownedStringSlice& str, UInt32 salt){
        UInt32 h = salt;
        for (const char c : str)
            h = (h * 0x01000193) ^ c;
        return h % 993;
    };

    const auto i = hash(str, tableSalt[hash(str, 0)]);
    if(str == words[i].first)
    {
        value = words[i].second;
        return true;
    }
    else
    {
        return false;
    }
}

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

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

static bool lookupOperandKind(const UnownedStringSlice& str, OperandKind& value)
{
    static const unsigned tableSalt[61] = {
        0, 4, 1, 0, 0, 1, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1,
        0, 0, 8, 0, 4, 2, 0, 10, 14, 8, 6, 0, 0, 3, 0, 0,
        0, 2, 3, 2, 4, 25, 2, 0, 0, 1, 0, 14, 1, 6, 0, 0,
        4, 2, 0, 0, 13, 5, 4, 19, 6, 9, 11, 24, 0
    };

    using KV = std::pair<const char*, OperandKind>;

    static const KV words[61] =
    {
        {"LoopControl", OperandKind{3}},
        {"MemoryAccess", OperandKind{6}},
        {"FPDenormMode", OperandKind{23}},
        {"IdResult", OperandKind{48}},
        {"PairIdRefLiteralInteger", OperandKind{59}},
        {"MemorySemantics", OperandKind{5}},
        {"PackedVectorFormat", OperandKind{40}},
        {"FragmentShadingRate", OperandKind{9}},
        {"ImageOperands", OperandKind{0}},
        {"SourceLanguage", OperandKind{10}},
        {"PairLiteralIntegerIdRef", OperandKind{58}},
        {"BuiltIn", OperandKind{32}},
        {"RayFlags", OperandKind{8}},
        {"InitializationModeQualifier", OperandKind{44}},
        {"LiteralInteger", OperandKind{52}},
        {"OverflowModes", OperandKind{26}},
        {"LoadCacheControl", OperandKind{45}},
        {"CooperativeMatrixUse", OperandKind{43}},
        {"PairIdRefIdRef", OperandKind{60}},
        {"LiteralFloat", OperandKind{54}},
        {"RayQueryCandidateIntersectionType", OperandKind{39}},
        {"CooperativeMatrixOperands", OperandKind{41}},
        {"IdResultType", OperandKind{47}},
        {"SamplerAddressingMode", OperandKind{17}},
        {"MemoryModel", OperandKind{13}},
        {"ImageChannelDataType", OperandKind{21}},
        {"LiteralContextDependentNumber", OperandKind{55}},
        {"ExecutionModel", OperandKind{11}},
        {"HostAccessQualifier", OperandKind{29}},
        {"AddressingModel", OperandKind{12}},
        {"IdScope", OperandKind{50}},
        {"ExecutionMode", OperandKind{14}},
        {"SelectionControl", OperandKind{2}},
        {"Capability", OperandKind{36}},
        {"KernelProfilingInfo", OperandKind{7}},
        {"LiteralExtInstInteger", OperandKind{56}},
        {"FPOperationMode", OperandKind{25}},
        {"QuantizationModes", OperandKind{24}},
        {"StorageClass", OperandKind{15}},
        {"FunctionControl", OperandKind{4}},
        {"RayQueryIntersection", OperandKind{37}},
        {"SamplerFilterMode", OperandKind{18}},
        {"IdRef", OperandKind{51}},
        {"LinkageType", OperandKind{27}},
        {"AccessQualifier", OperandKind{28}},
        {"GroupOperation", OperandKind{34}},
        {"FPRoundingMode", OperandKind{22}},
        {"IdMemorySemantics", OperandKind{49}},
        {"Scope", OperandKind{33}},
        {"LiteralString", OperandKind{53}},
        {"KernelEnqueueFlags", OperandKind{35}},
        {"FPFastMathMode", OperandKind{1}},
        {"Dim", OperandKind{16}},
        {"FunctionParameterAttribute", OperandKind{30}},
        {"StoreCacheControl", OperandKind{46}},
        {"ImageFormat", OperandKind{19}},
        {"ImageChannelOrder", OperandKind{20}},
        {"RayQueryCommittedIntersectionType", OperandKind{38}},
        {"Decoration", OperandKind{31}},
        {"CooperativeMatrixLayout", OperandKind{42}},
        {"LiteralSpecConstantOpInteger", OperandKind{57}},
    };

    static const auto hash = [](const UnownedStringSlice& str, UInt32 salt){
        UInt32 h = salt;
        for (const char c : str)
            h = (h * 0x01000193) ^ c;
        return h % 61;
    };

    const auto i = hash(str, tableSalt[hash(str, 0)]);
    if(str == words[i].first)
    {
        value = words[i].second;
        return true;
    }
    else
    {
        return false;
    }
}

bool lookupEnumWithHexPrefix(const UnownedStringSlice& str, SpvWord& value)
{
    static const unsigned tableSalt[993] = {
        1, 0, 1, 1, 1, 1, 1, 3, 1, 0, 1, 0, 3, 1, 1, 0,
        2, 0, 0, 1, 0, 2, 1, 0, 4, 1, 0, 0, 0, 2, 0, 0,
        0, 3, 0, 0, 0, 1, 5, 3, 0, 3, 0, 0, 1, 4, 0, 3,
        0, 1, 0, 4, 0, 5, 1, 0, 1, 0, 2, 1, 0, 0, 1, 1,
        1, 2, 0, 1, 2, 2, 3, 0, 2, 0, 2, 1, 0, 2, 3, 2,
        0, 0, 0, 0, 1, 5, 1, 1, 3, 0, 1, 0, 6, 1, 2, 13,
        1, 2, 1, 4, 0, 1, 5, 2, 0, 9, 0, 0, 0, 0, 2, 0,
        0, 1, 8, 0, 0, 0, 0, 3, 7, 1, 2, 3, 2, 1, 2, 1,
        1, 2, 3, 0, 8, 5, 0, 0, 0, 0, 1, 6, 5, 1, 1, 2,
        2, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 3, 0, 3, 0, 1,
        1, 0, 1, 2, 3, 6, 0, 2, 0, 1, 3, 1, 0, 1, 4, 2,
        0, 0, 4, 1, 1, 0, 0, 6, 0, 1, 0, 3, 4, 1, 3, 6,
        0, 5, 3, 1, 1, 1, 1, 6, 0, 3, 1, 3, 9, 2, 0, 7,
        3, 0, 0, 0, 4, 6, 0, 0, 1, 0, 1, 0, 1, 0, 2, 1,
        10, 0, 0, 3, 1, 2, 11, 0, 2, 1, 12, 2, 0, 6, 2, 2,
        0, 5, 0, 5, 4, 1, 1, 1, 3, 1, 2, 1, 0, 3, 0, 5,
        1, 3, 3, 0, 1, 3, 2, 4, 5, 5, 0, 0, 6, 1, 1, 1,
        0, 5, 0, 0, 0, 2, 1, 2, 3, 2, 1, 1, 2, 0, 1, 4,
        3, 12, 2, 0, 0, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0,
        0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 1, 1, 1, 6, 1,
        2, 2, 0, 2, 1, 0, 8, 1, 0, 4, 3, 3, 1, 0, 0, 0,
        1, 8, 3, 2, 0, 2, 1, 0, 0, 0, 3, 0, 4, 0, 1, 0,
        11, 9, 1, 0, 13, 9, 0, 0, 0, 4, 0, 13, 3, 7, 1, 5,
        2, 2, 0, 0, 0, 1, 0, 12, 5, 0, 6, 9, 1, 0, 5, 1,
        1, 2, 4, 1, 0, 5, 7, 0, 0, 0, 0, 2, 4, 5, 1, 2,
        4, 0, 0, 0, 5, 15, 9, 7, 1, 0, 1, 0, 0, 0, 0, 2,
        5, 3, 5, 21, 0, 0, 0, 1, 0, 1, 7, 0, 3, 4, 0, 0,
        1, 1, 2, 3, 3, 0, 7, 2, 2, 21, 0, 4, 4, 0, 1, 1,
        1, 0, 0, 3, 0, 10, 4, 0, 0, 3, 3, 0, 0, 1, 1, 2,
        2, 1, 2, 2, 2, 1, 0, 0, 27, 1, 0, 8, 0, 0, 9, 0,
        2, 4, 7, 1, 4, 1, 1, 0, 5, 0, 7, 1, 3, 2, 9, 1,
        1, 2, 1, 7, 1, 0, 0, 4, 0, 5, 1, 3, 0, 0, 0, 0,
        1, 1, 1, 0, 0, 2, 0, 2, 3, 11, 1, 0, 0, 0, 1, 2,
        7, 0, 7, 2, 0, 0, 1, 2, 0, 2, 7, 0, 3, 0, 0, 4,
        2, 10, 1, 0, 2, 1, 9, 15, 21, 1, 2, 10, 4, 10, 3, 7,
        7, 5, 0, 5, 5, 0, 8, 0, 2, 0, 0, 0, 0, 5, 0, 0,
        16, 0, 1, 7, 2, 0, 0, 13, 0, 14, 1, 0, 10, 0, 18, 13,
        0, 0, 0, 0, 1, 0, 0, 5, 6, 10, 17, 0, 0, 1, 0, 4,
        7, 2, 3, 26, 1, 0, 5, 0, 0, 3, 0, 10, 2, 0, 1, 1,
        0, 6, 6, 0, 0, 0, 5, 0, 9, 9, 2, 0, 1, 1, 3, 0,
        1, 2, 2, 2, 4, 0, 2, 1, 3, 2, 1, 13, 0, 2, 4, 0,
        0, 3, 0, 1, 0, 6, 1, 2, 1, 21, 2, 13, 7, 3, 0, 4,
        0, 0, 2, 0, 2, 8, 0, 0, 1, 0, 7, 7, 0, 8, 0, 0,
        4, 1, 5, 3, 2, 0, 2, 0, 1, 0, 0, 0, 3, 0, 0, 9,
        14, 1, 17, 0, 12, 5, 2, 6, 3, 2, 0, 3, 3, 0, 8, 3,
        0, 18, 19, 0, 0, 4, 24, 0, 0, 0, 4, 0, 13, 0, 2, 30,
        4, 0, 7, 0, 5, 2, 5, 2, 3, 1, 1, 2, 0, 11, 17, 3,
        39, 1, 24, 0, 1, 7, 2, 19, 6, 0, 12, 29, 0, 0, 14, 0,
        0, 0, 1, 0, 0, 8, 0, 10, 2, 2, 12, 0, 0, 1, 1, 21,
        3, 4, 0, 0, 0, 2, 8, 3, 8, 2, 8, 0, 2, 0, 3, 4,
        0, 0, 9, 37, 0, 2, 0, 2, 0, 11, 0, 0, 6, 19, 0, 0,
        0, 0, 3, 1, 0, 4, 3, 0, 0, 7, 0, 1, 39, 6, 0, 2,
        5, 3, 0, 31, 5, 18, 2, 0, 1, 2, 13, 0, 2, 2, 0, 8,
        0, 43, 0, 1, 0, 2, 2, 0, 22, 1, 2, 1, 0, 0, 20, 0,
        6, 1, 0, 41, 13, 56, 0, 3, 72, 3, 2, 42, 0, 6, 0, 0,
        0, 2, 17, 15, 0, 2, 33, 33, 34, 0, 49, 0, 2, 8, 6, 11,
        0, 0, 0, 0, 16, 3, 9, 15, 0, 0, 0, 5, 8, 2, 0, 3,
        0, 32, 3, 0, 81, 30, 150, 0, 0, 2, 11, 0, 4, 2, 5, 1,
        10, 0, 27, 13, 71, 19, 12, 0, 4, 0, 14, 147, 71, 1, 28, 0,
        35, 0, 23, 85, 20, 3, 0, 52, 70, 1, 3, 4, 9, 63, 0, 0,
        1, 54, 1, 0, 0, 86, 147, 0, 289, 0, 0, 57, 304, 0, 0, 869,
        2, 0, 0, 0, 9, 815, 5, 0, 0, 0, 0, 0, 169, 0, 0, 659,
        1504
    };

    using KV = std::pair<const char*, SpvWord>;

    static const KV words[993] =
    {
        {"caViewportIndex", SpvWord{10}},
        {"akOpenCL_C", SpvWord{3}},
        {"alTaskEXT", SpvWord{5364}},
        {"bpPerViewNV", SpvWord{5272}},
        {"caSecondaryPositionNV", SpvWord{5257}},
        {"bpMMHostInterfaceMaxBurstINTEL", SpvWord{6181}},
        {"ceTileImageStencilReadAccessEXT", SpvWord{4168}},
        {"bpNonUniform", SpvWord{5300}},
        {"aoNamedBarrierCountINTEL", SpvWord{6417}},
        {"bpFlat", SpvWord{14}},
        {"ceIOPipesINTEL", SpvWord{5943}},
        {"ba2D", SpvWord{1}},
        {"caInstanceIndex", SpvWord{43}},
        {"bfUnsignedIntRaw12EXT", SpvWord{20}},
        {"ceTileImageColorReadAccessEXT", SpvWord{4166}},
        {"aoPostDepthCoverage", SpvWord{4446}},
        {"bpMMHostInterfaceDataWidthINTEL", SpvWord{6178}},
        {"aoDepthReplacing", SpvWord{12}},
        {"bbNone", SpvWord{0}},
        {"aoShadingRateInterlockOrderedEXT", SpvWord{5370}},
        {"bpInputAttachmentIndex", SpvWord{43}},
        {"aiOpaqueKHR", SpvWord{1}},
        {"cfRayQueryCommittedIntersectionKHR", SpvWord{1}},
        {"apPushConstant", SpvWord{9}},
        {"ceStencilExportEXT", SpvWord{5013}},
        {"aoStencilRefUnchangedFrontAMD", SpvWord{5079}},
        {"bpSample", SpvWord{17}},
        {"ceTransformFeedback", SpvWord{53}},
        {"ceShaderStereoViewNV", SpvWord{5259}},
        {"bpDescriptorSet", SpvWord{34}},
        {"ba3D", SpvWord{2}},
        {"ceStorageBufferArrayDynamicIndexing", SpvWord{30}},
        {"bfFloat", SpvWord{14}},
        {"ceShaderEnqueueAMDX", SpvWord{5067}},
        {"adLoopCountINTEL", SpvWord{16777216}},
        {"apCrossWorkgroup", SpvWord{5}},
        {"ceCooperativeMatrixKHR", SpvWord{6022}},
        {"ceImageCubeArray", SpvWord{34}},
        {"coStreamingINTEL", SpvWord{3}},
        {"caInvocationId", SpvWord{8}},
        {"ceTextureBoxFilterQCOM", SpvWord{4485}},
        {"ccPartitionedExclusiveScanNV", SpvWord{8}},
        {"bfUnsignedInt16", SpvWord{11}},
        {"adDependencyLength", SpvWord{8}},
        {"ceComputeDerivativeGroupQuadsNV", SpvWord{5288}},
        {"bdR32ui", SpvWord{33}},
        {"ceGeometry", SpvWord{2}},
        {"ceCooperativeMatrixNV", SpvWord{5357}},
        {"ceSubgroupShuffleINTEL", SpvWord{5568}},
        {"ceFloat64", SpvWord{10}},
        {"aaMakeTexelAvailableKHR", SpvWord{256}},
        {"beRGBA", SpvWord{5}},
        {"bdRg16ui", SpvWord{36}},
        {"ceRayQueryKHR", SpvWord{4472}},
        {"bpCentroid", SpvWord{16}},
        {"cePipes", SpvWord{17}},
        {"apCodeSectionINTEL", SpvWord{5605}},
        {"bpStream", SpvWord{29}},
        {"adUnroll", SpvWord{1}},
        {"alMeshNV", SpvWord{5268}},
        {"bbClampToEdge", SpvWord{1}},
        {"adDependencyInfinite", SpvWord{4}},
        {"beRGB", SpvWord{4}},
        {"bpIndex", SpvWord{32}},
        {"bdRg32ui", SpvWord{35}},
        {"cbShaderCallKHR", SpvWord{6}},
        {"ceDemoteToHelperInvocation", SpvWord{5379}},
        {"caCullMaskKHR", SpvWord{6021}},
        {"cdWaitWorkGroup", SpvWord{2}},
        {"biRND_CONV_ODD", SpvWord{7}},
        {"bdR32f", SpvWord{3}},
        {"bpCacheControlLoadINTEL", SpvWord{6442}},
        {"bpInvariant", SpvWord{18}},
        {"bdR32i", SpvWord{24}},
        {"bdRgba32ui", SpvWord{30}},
        {"caWorkgroupId", SpvWord{26}},
        {"bpExplicitInterpAMD", SpvWord{4999}},
        {"adPeelCount", SpvWord{128}},
        {"beRA", SpvWord{3}},
        {"alAnyHitKHR", SpvWord{5315}},
        {"ceLiteralSampler", SpvWord{20}},
        {"bpBankBitsINTEL", SpvWord{5835}},
        {"aoPointMode", SpvWord{10}},
        {"bpFuseLoopsInFunctionINTEL", SpvWord{5907}},
        {"aaOffsets", SpvWord{65536}},
        {"beABGR", SpvWord{19}},
        {"bpNoSignedWrap", SpvWord{4469}},
        {"akHLSL", SpvWord{5}},
        {"ceMeshShadingNV", SpvWord{5266}},
        {"aoOutputPrimitivesNV", SpvWord{5270}},
        {"biRND_MIN_INF", SpvWord{5}},
        {"aoRoundingModeRTPINTEL", SpvWord{5620}},
        {"ceRayTracingNV", SpvWord{5340}},
        {"baBuffer", SpvWord{5}},
        {"aiCullBackFacingTrianglesKHR", SpvWord{16}},
        {"ceSampledCubeArray", SpvWord{45}},
        {"ceImageQuery", SpvWord{50}},
        {"ceDotProductInput4x8BitPacked", SpvWord{6018}},
        {"coWriteThroughINTEL", SpvWord{1}},
        {"aoOutputPoints", SpvWord{27}},
        {"ceBindlessTextureNV", SpvWord{5390}},
        {"ceGroupUniformArithmeticKHR", SpvWord{6400}},
        {"alTessellationControl", SpvWord{1}},
        {"ceVulkanMemoryModelKHR", SpvWord{5345}},
        {"bpArrayStride", SpvWord{6}},
        {"cbInvocation", SpvWord{4}},
        {"bpBankwidthINTEL", SpvWord{5828}},
        {"apInput", SpvWord{1}},
        {"bfHalfFloat", SpvWord{13}},
        {"cbWorkgroup", SpvWord{2}},
        {"ahNone", SpvWord{0}},
        {"aoStaticNumWorkgroupsAMDX", SpvWord{5072}},
        {"ceFragmentBarycentricNV", SpvWord{5284}},
        {"ceFPGALatencyControlINTEL", SpvWord{6171}},
        {"caCoreCountARM", SpvWord{4161}},
        {"aaBias", SpvWord{1}},
        {"baTileImageDataEXT", SpvWord{4173}},
        {"bdR8ui", SpvWord{39}},
        {"ceKernelAttributesINTEL", SpvWord{5892}},
        {"bpMatrixStride", SpvWord{7}},
        {"bpNonUniformEXT", SpvWord{5300}},
        {"amPhysical64", SpvWord{2}},
        {"bfUnormShort555", SpvWord{5}},
        {"aoFloatingPointModeALTINTEL", SpvWord{5622}},
        {"caVertexId", SpvWord{5}},
        {"caCullDistancePerViewNV", SpvWord{5278}},
        {"apIncomingCallableDataNV", SpvWord{5329}},
        {"aaZeroExtend", SpvWord{8192}},
        {"caInstanceCustomIndexKHR", SpvWord{5327}},
        {"adNoFusionINTEL", SpvWord{8388608}},
        {"caCurrentRayTimeNV", SpvWord{5334}},
        {"ceFragmentShaderShadingRateInterlockEXT", SpvWord{5372}},
        {"ceShaderNonUniformEXT", SpvWord{5301}},
        {"bfUnormInt8", SpvWord{2}},
        {"ceImage1D", SpvWord{44}},
        {"caFragCoord", SpvWord{15}},
        {"aoDepthUnchanged", SpvWord{16}},
        {"afRelaxed", SpvWord{0}},
        {"bpBindlessSamplerNV", SpvWord{5398}},
        {"ceSampleMaskPostDepthCoverage", SpvWord{4447}},
        {"bpFPFastMathMode", SpvWord{40}},
        {"caFragmentSizeNV", SpvWord{5292}},
        {"beIntensity", SpvWord{8}},
        {"bpWordsizeINTEL", SpvWord{5884}},
        {"ceImageMSArray", SpvWord{48}},
        {"bfSignedInt8", SpvWord{7}},
        {"bpHostAccessINTEL", SpvWord{6188}},
        {"adMaxReinvocationDelayINTEL", SpvWord{33554432}},
        {"chRayQueryCandidateIntersectionTriangleKHR", SpvWord{0}},
        {"cePhysicalStorageBufferAddresses", SpvWord{5347}},
        {"aoInputLines", SpvWord{20}},
        {"bpPerPrimitiveEXT", SpvWord{5271}},
        {"ceFPGAArgumentInterfacesINTEL", SpvWord{6174}},
        {"ceBitInstructions", SpvWord{6025}},
        {"caInvocationsPerPixelNV", SpvWord{5293}},
        {"bpAliasScopeINTEL", SpvWord{5914}},
        {"aoSampleInterlockOrderedEXT", SpvWord{5368}},
        {"caViewportMaskNV", SpvWord{5253}},
        {"cePhysicalStorageBufferAddressesEXT", SpvWord{5347}},
        {"aoPixelInterlockUnorderedEXT", SpvWord{5367}},
        {"bpBufferLocationINTEL", SpvWord{5921}},
        {"caNumSubgroups", SpvWord{38}},
        {"ceAtomicFloat32MinMaxEXT", SpvWord{5612}},
        {"abAllowRecip", SpvWord{8}},
        {"afCrossWorkgroupMemory", SpvWord{512}},
        {"bdR16Snorm", SpvWord{19}},
        {"caSubgroupEqMaskKHR", SpvWord{4416}},
        {"aoEarlyAndLateFragmentTestsAMD", SpvWord{5017}},
        {"bpAliasedPointerEXT", SpvWord{5356}},
        {"bpNodeMaxPayloadsAMDX", SpvWord{5020}},
        {"caIncomingRayFlagsNV", SpvWord{5351}},
        {"ceFragmentFullyCoveredEXT", SpvWord{5265}},
        {"aoLocalSizeHintId", SpvWord{39}},
        {"adSpeculatedIterationsINTEL", SpvWord{4194304}},
        {"caBaryCoordNoPerspNV", SpvWord{5287}},
        {"bpHlslCounterBufferGOOGLE", SpvWord{5634}},
        {"aaLod", SpvWord{2}},
        {"akOpenCL_CPP", SpvWord{4}},
        {"bdR11fG11fB10f", SpvWord{8}},
        {"ajHorizontal2Pixels", SpvWord{4}},
        {"ceInt8", SpvWord{39}},
        {"bdRg8ui", SpvWord{37}},
        {"ceStorageImageArrayNonUniformIndexing", SpvWord{5309}},
        {"ceUnstructuredLoopControlsINTEL", SpvWord{5886}},
        {"apStorageBuffer", SpvWord{12}},
        {"aoSpacingEqual", SpvWord{1}},
        {"bpInitiationIntervalINTEL", SpvWord{5917}},
        {"caLocalInvocationId", SpvWord{27}},
        {"caHitMicroTriangleVertexPositionsNV", SpvWord{5337}},
        {"ceInt64ImageEXT", SpvWord{5016}},
        {"bfSnormInt16", SpvWord{1}},
        {"beA", SpvWord{1}},
        {"anOpenCL", SpvWord{2}},
        {"ceArbitraryPrecisionFloatingPointINTEL", SpvWord{5845}},
        {"bfSignedInt16", SpvWord{8}},
        {"bdRg16Snorm", SpvWord{17}},
        {"abNotInf", SpvWord{2}},
        {"ceInputAttachmentArrayDynamicIndexingEXT", SpvWord{5303}},
        {"aoNoGlobalOffsetINTEL", SpvWord{5895}},
        {"chRayQueryCandidateIntersectionAABBKHR", SpvWord{1}},
        {"bpMaxConcurrencyINTEL", SpvWord{5918}},
        {"caGlobalInvocationId", SpvWord{28}},
        {"cbCrossDevice", SpvWord{0}},
        {"bfUnsignedInt32", SpvWord{12}},
        {"ceFPGADSPControlINTEL", SpvWord{5908}},
        {"ceRayCullMaskKHR", SpvWord{6020}},
        {"ceGroupNonUniformShuffle", SpvWord{65}},
        {"beR", SpvWord{0}},
        {"bpNumbanksINTEL", SpvWord{5827}},
        {"ceBFloat16ConversionINTEL", SpvWord{6115}},
        {"ceIndirectReferencesINTEL", SpvWord{5604}},
        {"bpSideEffectsINTEL", SpvWord{5608}},
        {"caLayer", SpvWord{9}},
        {"caTessCoord", SpvWord{13}},
        {"ceTileImageDepthReadAccessEXT", SpvWord{4167}},
        {"ccExclusiveScan", SpvWord{2}},
        {"ceStorageInputOutput16", SpvWord{4436}},
        {"amPhysicalStorageBuffer64EXT", SpvWord{5348}},
        {"caObjectRayOriginKHR", SpvWord{5323}},
        {"aiCullFrontFacingTrianglesKHR", SpvWord{32}},
        {"caSubgroupLocalInvocationId", SpvWord{41}},
        {"caCullPrimitiveEXT", SpvWord{5299}},
        {"alRayGenerationKHR", SpvWord{5313}},
        {"ceFPGAClusterAttributesV2INTEL", SpvWord{6150}},
        {"caGlobalSize", SpvWord{31}},
        {"bpRestrictPointerEXT", SpvWord{5355}},
        {"ceGenericPointer", SpvWord{38}},
        {"alGeometry", SpvWord{3}},
        {"ckRowMajorKHR", SpvWord{0}},
        {"aoRoundingModeRTNINTEL", SpvWord{5621}},
        {"bcNearest", SpvWord{0}},
        {"agNonPrivatePointerKHR", SpvWord{32}},
        {"ceInt16", SpvWord{22}},
        {"ceSampledRect", SpvWord{37}},
        {"cdWaitKernel", SpvWord{1}},
        {"bpStackCallINTEL", SpvWord{5627}},
        {"blImport", SpvWord{1}},
        {"caRayGeometryIndexKHR", SpvWord{5352}},
        {"caHitTNV", SpvWord{5332}},
        {"adMaxIterations", SpvWord{32}},
        {"apRayPayloadNV", SpvWord{5338}},
        {"akSYCL", SpvWord{7}},
        {"bpFPRoundingMode", SpvWord{39}},
        {"bnReadINTEL", SpvWord{1}},
        {"caWarpIDARM", SpvWord{4163}},
        {"caBaryCoordPullModelAMD", SpvWord{4998}},
        {"bfUnsignedInt8", SpvWord{10}},
        {"alRayGenerationNV", SpvWord{5313}},
        {"ceKernel", SpvWord{6}},
        {"biRND_INF", SpvWord{4}},
        {"cjSaturatingAccumulationKHR", SpvWord{16}},
        {"bkSAT_SYM", SpvWord{3}},
        {"ccPartitionedReduceNV", SpvWord{6}},
        {"bpBindlessImageNV", SpvWord{5399}},
        {"caSMCountNV", SpvWord{5375}},
        {"bpSimpleDualPortINTEL", SpvWord{5833}},
        {"ceShader", SpvWord{1}},
        {"ceDemoteToHelperInvocationEXT", SpvWord{5379}},
        {"ceStorageUniformBufferBlock16", SpvWord{4433}},
        {"ceNamedBarrier", SpvWord{59}},
        {"cgRayQueryCommittedIntersectionNoneKHR", SpvWord{0}},
        {"beDepth", SpvWord{13}},
        {"bpGlobalVariableOffsetINTEL", SpvWord{5628}},
        {"bpMathOpDSPModeINTEL", SpvWord{5909}},
        {"bdR64ui", SpvWord{40}},
        {"bpBuiltIn", SpvWord{11}},
        {"ceDotProductInputAll", SpvWord{6016}},
        {"ceGroupNonUniformVote", SpvWord{62}},
        {"bpSIMTCallINTEL", SpvWord{5599}},
        {"ceGroupNonUniformShuffleRelative", SpvWord{66}},
        {"aiForceOpacityMicromap2StateEXT", SpvWord{1024}},
        {"aaMakeTexelAvailable", SpvWord{256}},
        {"aoStencilRefReplacingEXT", SpvWord{5027}},
        {"caBaryCoordNoPerspKHR", SpvWord{5287}},
        {"alMeshEXT", SpvWord{5365}},
        {"ceRayTracingDisplacementMicromapNV", SpvWord{5409}},
        {"bpCacheControlStoreINTEL", SpvWord{6443}},
        {"cnStreamingINTEL", SpvWord{2}},
        {"bpNoPerspective", SpvWord{13}},
        {"ceRayQueryProvisionalKHR", SpvWord{4471}},
        {"ceStorageTexelBufferArrayDynamicIndexingEXT", SpvWord{5305}},
        {"ceStoragePushConstant8", SpvWord{4450}},
        {"beRx", SpvWord{10}},
        {"cmInitOnDeviceReprogramINTEL", SpvWord{0}},
        {"apImage", SpvWord{11}},
        {"caSubgroupGeMaskKHR", SpvWord{4417}},
        {"ceStorageUniform16", SpvWord{4434}},
        {"bpRelaxedPrecision", SpvWord{0}},
        {"akHERO_C", SpvWord{8}},
        {"ceGroupNonUniformClustered", SpvWord{67}},
        {"apUniformConstant", SpvWord{0}},
        {"apIncomingCallableDataKHR", SpvWord{5329}},
        {"akWGSL", SpvWord{10}},
        {"ceFunctionPointersINTEL", SpvWord{5603}},
        {"cnUncachedINTEL", SpvWord{0}},
        {"ceFPMaxErrorINTEL", SpvWord{6169}},
        {"ceFragmentDensityEXT", SpvWord{5291}},
        {"bhFlushToZero", SpvWord{1}},
        {"ceImageGatherBiasLodAMD", SpvWord{5009}},
        {"adLoopCoalesceINTEL", SpvWord{1048576}},
        {"bdRg32i", SpvWord{25}},
        {"alMissKHR", SpvWord{5317}},
        {"aoQuads", SpvWord{24}},
        {"ceFragmentBarycentricKHR", SpvWord{5284}},
        {"caPrimitiveCountNV", SpvWord{5275}},
        {"caHitKindNV", SpvWord{5333}},
        {"ceGroupNonUniformPartitionedNV", SpvWord{5297}},
        {"caObjectToWorldNV", SpvWord{5330}},
        {"aoRoundingModeRTE", SpvWord{4462}},
        {"ceFloatingPointModeINTEL", SpvWord{5583}},
        {"cjMatrixCSignedComponentsKHR", SpvWord{4}},
        {"bpNoContraction", SpvWord{42}},
        {"caPointSize", SpvWord{1}},
        {"bpSecondaryViewportRelativeNV", SpvWord{5256}},
        {"bpSinglepumpINTEL", SpvWord{5830}},
        {"ceSplitBarrierINTEL", SpvWord{6141}},
        {"aoDerivativeGroupQuadsNV", SpvWord{5289}},
        {"ceStorageImageMultisample", SpvWord{27}},
        {"bgRTN", SpvWord{3}},
        {"ceSubgroupAvcMotionEstimationINTEL", SpvWord{5696}},
        {"baCube", SpvWord{3}},
        {"apShaderRecordBufferNV", SpvWord{5343}},
        {"bpPerVertexKHR", SpvWord{5285}},
        {"caPrimitivePointIndicesEXT", SpvWord{5294}},
        {"apTaskPayloadWorkgroupEXT", SpvWord{5402}},
        {"aoStencilRefGreaterBackAMD", SpvWord{5083}},
        {"caRayTminKHR", SpvWord{5325}},
        {"caNumWorkgroups", SpvWord{24}},
        {"bdRgba32i", SpvWord{21}},
        {"ceLoopFuseINTEL", SpvWord{5906}},
        {"aaNone", SpvWord{0}},
        {"aoLocalSizeHint", SpvWord{18}},
        {"caTessLevelOuter", SpvWord{11}},
        {"aoInvocations", SpvWord{0}},
        {"aoFloatingPointModeIEEEINTEL", SpvWord{5623}},
        {"bpNodeSharesPayloadLimitsWithAMDX", SpvWord{5019}},
        {"ceWorkgroupMemoryExplicitLayout16BitAccessKHR", SpvWord{4430}},
        {"boRuntimeAlignedINTEL", SpvWord{5940}},
        {"caSubgroupSize", SpvWord{36}},
        {"bpNoAliasINTEL", SpvWord{5915}},
        {"aoSpacingFractionalEven", SpvWord{2}},
        {"afMakeAvailable", SpvWord{8192}},
        {"caViewportMaskPerViewNV", SpvWord{5262}},
        {"ceVectorAnyINTEL", SpvWord{5619}},
        {"bpClobberINTEL", SpvWord{5607}},
        {"bjALT", SpvWord{1}},
        {"caDeviceIndex", SpvWord{4438}},
        {"caMeshViewIndicesNV", SpvWord{5281}},
        {"bfUnsignedIntRaw10EXT", SpvWord{19}},
        {"ceSampledImageArrayDynamicIndexing", SpvWord{29}},
        {"beBGRA", SpvWord{6}},
        {"bkWRAP", SpvWord{0}},
        {"apCallableDataNV", SpvWord{5328}},
        {"ceFunctionFloatControlINTEL", SpvWord{5821}},
        {"caBaryCoordNoPerspAMD", SpvWord{4992}},
        {"ceInt64", SpvWord{11}},
        {"caIncomingRayFlagsKHR", SpvWord{5351}},
        {"ceFPGAKernelAttributesv2INTEL", SpvWord{6161}},
        {"bpInitModeINTEL", SpvWord{6190}},
        {"caHitKindFrontFacingMicroTriangleNV", SpvWord{5405}},
        {"amPhysical32", SpvWord{1}},
        {"afSequentiallyConsistent", SpvWord{16}},
        {"apRayPayloadKHR", SpvWord{5338}},
        {"caCullDistance", SpvWord{4}},
        {"ceSubgroupBallotKHR", SpvWord{4423}},
        {"aoCoalescingAMDX", SpvWord{5069}},
        {"bpNonReadable", SpvWord{25}},
        {"aoSampleInterlockUnorderedEXT", SpvWord{5369}},
        {"ceWorkgroupMemoryExplicitLayoutKHR", SpvWord{4428}},
        {"agNone", SpvWord{0}},
        {"caObjectRayDirectionNV", SpvWord{5324}},
        {"bpVectorComputeVariableINTEL", SpvWord{5624}},
        {"beLuminance", SpvWord{9}},
        {"ceShaderClockKHR", SpvWord{5055}},
        {"alKernel", SpvWord{6}},
        {"afAcquireRelease", SpvWord{8}},
        {"aoSubgroupSize", SpvWord{35}},
        {"ceImageBuffer", SpvWord{47}},
        {"ceRayQueryPositionFetchKHR", SpvWord{5391}},
        {"caShadingRateKHR", SpvWord{4444}},
        {"aoDepthGreater", SpvWord{14}},
        {"alCallableNV", SpvWord{5318}},
        {"ceRayTracingPositionFetchKHR", SpvWord{5336}},
        {"aoNumSIMDWorkitemsINTEL", SpvWord{5896}},
        {"ciPackedVectorFormat4x8BitKHR", SpvWord{0}},
        {"clMatrixBKHR", SpvWord{1}},
        {"aiCullOpaqueKHR", SpvWord{64}},
        {"alTessellationEvaluation", SpvWord{2}},
        {"ceGeometryStreams", SpvWord{54}},
        {"ceGroupNonUniformRotateKHR", SpvWord{6026}},
        {"adMinIterations", SpvWord{16}},
        {"aoOutputVertices", SpvWord{26}},
        {"bpVolatile", SpvWord{21}},
        {"caPatchVertices", SpvWord{14}},
        {"baRect", SpvWord{4}},
        {"caPositionPerViewNV", SpvWord{5261}},
        {"afAcquire", SpvWord{2}},
        {"bmWriteOnly", SpvWord{1}},
        {"bpUniformId", SpvWord{27}},
        {"alVertex", SpvWord{0}},
        {"abAllowReassocINTEL", SpvWord{131072}},
        {"bpBurstCoalesceINTEL", SpvWord{5899}},
        {"ceFPGAKernelAttributesINTEL", SpvWord{5897}},
        {"cbDevice", SpvWord{1}},
        {"aoXfb", SpvWord{11}},
        {"ceMemoryAccessAliasingINTEL", SpvWord{5910}},
        {"caPointCoord", SpvWord{16}},
        {"ceWorkgroupMemoryExplicitLayout8BitAccessKHR", SpvWord{4429}},
        {"bpMaxByteOffsetId", SpvWord{47}},
        {"cnConstCachedINTEL", SpvWord{4}},
        {"bpPassthroughNV", SpvWord{5250}},
        {"caViewIndex", SpvWord{4440}},
        {"caEnqueuedWorkgroupSize", SpvWord{32}},
        {"aoInputPoints", SpvWord{19}},
        {"aaConstOffsets", SpvWord{32}},
        {"ceSubgroupDispatch", SpvWord{58}},
        {"acFlatten", SpvWord{1}},
        {"caBaryCoordNoPerspSampleAMD", SpvWord{4994}},
        {"bdRgb10a2ui", SpvWord{34}},
        {"aoNonCoherentColorAttachmentReadEXT", SpvWord{4169}},
        {"bpImplementInRegisterMapINTEL", SpvWord{6191}},
        {"ceSampled1D", SpvWord{43}},
        {"bpGLSLPacked", SpvWord{9}},
        {"cnCachedINTEL", SpvWord{1}},
        {"aoEarlyFragmentTests", SpvWord{9}},
        {"ceTessellationPointSize", SpvWord{23}},
        {"boNoReadWrite", SpvWord{7}},
        {"caLaunchIdKHR", SpvWord{5319}},
        {"ceInt64Atomics", SpvWord{12}},
        {"ceOptNoneINTEL", SpvWord{6094}},
        {"caSubgroupLtMaskKHR", SpvWord{4420}},
        {"ceRoundingModeRTE", SpvWord{4467}},
        {"caObjectToWorldKHR", SpvWord{5330}},
        {"aaConstOffset", SpvWord{8}},
        {"ceLinkage", SpvWord{5}},
        {"aoRoundingModeRTZ", SpvWord{4463}},
        {"cePerViewAttributesNV", SpvWord{5260}},
        {"ceExpectAssumeKHR", SpvWord{5629}},
        {"bpMMHostInterfaceWaitRequestINTEL", SpvWord{6182}},
        {"cbQueueFamily", SpvWord{5}},
        {"ccClusteredReduce", SpvWord{3}},
        {"aiSkipClosestHitShaderKHR", SpvWord{8}},
        {"apNodePayloadAMDX", SpvWord{5068}},
        {"ceStorageBuffer8BitAccess", SpvWord{4448}},
        {"ceInputAttachmentArrayNonUniformIndexing", SpvWord{5310}},
        {"aoOutputTrianglesNV", SpvWord{5298}},
        {"blLinkOnceODR", SpvWord{2}},
        {"bdR16i", SpvWord{28}},
        {"bbRepeatMirrored", SpvWord{4}},
        {"abAllowContractFastINTEL", SpvWord{65536}},
        {"caRayTminNV", SpvWord{5325}},
        {"bdR16ui", SpvWord{38}},
        {"besRGBx", SpvWord{16}},
        {"aaMakeTexelVisibleKHR", SpvWord{512}},
        {"caWorldRayDirectionKHR", SpvWord{5322}},
        {"ceFPGAMemoryAccessesINTEL", SpvWord{5898}},
        {"ceRayTracingKHR", SpvWord{4479}},
        {"anVulkan", SpvWord{3}},
        {"bpRestrict", SpvWord{19}},
        {"caBaryCoordNV", SpvWord{5286}},
        {"aiSkipTrianglesKHR", SpvWord{256}},
        {"ceMinLod", SpvWord{42}},
        {"ceSampledBuffer", SpvWord{46}},
        {"ceAtomicFloat64AddEXT", SpvWord{6034}},
        {"ceMultiViewport", SpvWord{57}},
        {"caWorldToObjectNV", SpvWord{5331}},
        {"bpUserTypeGOOGLE", SpvWord{5636}},
        {"bdR64i", SpvWord{41}},
        {"caHelperInvocation", SpvWord{23}},
        {"ceDotProductInput4x8BitPackedKHR", SpvWord{6018}},
        {"aiNoneKHR", SpvWord{0}},
        {"bfUnormInt101010_2", SpvWord{16}},
        {"acNone", SpvWord{0}},
        {"adIterationMultiple", SpvWord{64}},
        {"bpLocation", SpvWord{30}},
        {"boSext", SpvWord{1}},
        {"bjIEEE", SpvWord{0}},
        {"ceStorageImageReadWithoutFormat", SpvWord{55}},
        {"bdRgba16f", SpvWord{2}},
        {"bdRgba16i", SpvWord{22}},
        {"bpSaturatedConversion", SpvWord{28}},
        {"clMatrixAccumulatorKHR", SpvWord{2}},
        {"bpStridesizeINTEL", SpvWord{5883}},
        {"bpConstant", SpvWord{22}},
        {"bfSignedInt32", SpvWord{9}},
        {"ceDeviceEnqueue", SpvWord{19}},
        {"caWorldRayOriginNV", SpvWord{5321}},
        {"ceAddresses", SpvWord{4}},
        {"aaNontemporal", SpvWord{16384}},
        {"bdRg8", SpvWord{13}},
        {"caBaseVertex", SpvWord{4424}},
        {"cjMatrixASignedComponentsKHR", SpvWord{1}},
        {"aoOutputLineStrip", SpvWord{28}},
        {"ceImageReadWriteLodAMD", SpvWord{5015}},
        {"caSubgroupGtMaskKHR", SpvWord{4418}},
        {"caNumEnqueuedSubgroups", SpvWord{39}},
        {"beRGBx", SpvWord{12}},
        {"caWorldRayOriginKHR", SpvWord{5321}},
        {"bpStableKernelArgumentINTEL", SpvWord{6183}},
        {"bpFunctionRoundingModeINTEL", SpvWord{5822}},
        {"beRGx", SpvWord{11}},
        {"ceDotProductKHR", SpvWord{6019}},
        {"clMatrixAKHR", SpvWord{0}},
        {"bpForcePow2DepthINTEL", SpvWord{5836}},
        {"cdNoWait", SpvWord{0}},
        {"ceDeviceGroup", SpvWord{4437}},
        {"ceClipDistance", SpvWord{32}},
        {"baSubpassData", SpvWord{6}},
        {"ceDotProduct", SpvWord{6019}},
        {"abNone", SpvWord{0}},
        {"ceUniformAndStorageBuffer16BitAccess", SpvWord{4434}},
        {"ceUniformTexelBufferArrayNonUniformIndexingEXT", SpvWord{5311}},
        {"ceSampleMaskOverrideCoverageNV", SpvWord{5249}},
        {"akSlang", SpvWord{11}},
        {"ceDotProductInputAllKHR", SpvWord{6016}},
        {"amLogical", SpvWord{0}},
        {"ceFPGAClusterAttributesINTEL", SpvWord{5904}},
        {"ceRayTracingOpacityMicromapEXT", SpvWord{5381}},
        {"ceLongCompositesINTEL", SpvWord{6089}},
        {"bfSnormInt8", SpvWord{0}},
        {"ceGlobalVariableFPGADecorationsINTEL", SpvWord{6189}},
        {"ceDenormFlushToZero", SpvWord{4465}},
        {"bpHlslSemanticGOOGLE", SpvWord{5635}},
        {"afImageMemory", SpvWord{2048}},
        {"caWorkDim", SpvWord{30}},
        {"aeConst", SpvWord{8}},
        {"caFragDepth", SpvWord{22}},
        {"ceIntegerFunctions2INTEL", SpvWord{5584}},
        {"ceDebugInfoModuleINTEL", SpvWord{6114}},
        {"caCoreIDARM", SpvWord{4160}},
        {"bpMediaBlockIOINTEL", SpvWord{6140}},
        {"ceStorageImageArrayNonUniformIndexingEXT", SpvWord{5309}},
        {"bpBufferBlock", SpvWord{3}},
        {"apIncomingRayPayloadKHR", SpvWord{5342}},
        {"ceSubgroupAvcMotionEstimationIntraINTEL", SpvWord{5697}},
        {"ceMeshShadingEXT", SpvWord{5283}},
        {"caInstanceCustomIndexNV", SpvWord{5327}},
        {"ceGroups", SpvWord{18}},
        {"ceFPGAInvocationPipeliningAttributesINTEL", SpvWord{5916}},
        {"aoStencilRefLessFrontAMD", SpvWord{5081}},
        {"bpRestrictPointer", SpvWord{5355}},
        {"bpCoherent", SpvWord{23}},
        {"caSMIDNV", SpvWord{5377}},
        {"caHitKindBackFacingMicroTriangleNV", SpvWord{5406}},
        {"aoStencilRefLessBackAMD", SpvWord{5084}},
        {"ceShaderInvocationReorderNV", SpvWord{5383}},
        {"ceGroupNonUniformQuad", SpvWord{68}},
        {"caFragInvocationCountEXT", SpvWord{5293}},
        {"caInstanceId", SpvWord{6}},
        {"ceGeometryPointSize", SpvWord{24}},
        {"adInitiationIntervalINTEL", SpvWord{65536}},
        {"bpColMajor", SpvWord{5}},
        {"aiCullNoOpaqueKHR", SpvWord{128}},
        {"ceStoragePushConstant16", SpvWord{4435}},
        {"bpDontStaticallyCoalesceINTEL", SpvWord{5901}},
        {"apFunction", SpvWord{7}},
        {"alIntersectionNV", SpvWord{5314}},
        {"ceVariablePointersStorageBuffer", SpvWord{4441}},
        {"caFullyCoveredEXT", SpvWord{5264}},
        {"boSret", SpvWord{3}},
        {"caHitTriangleVertexPositionsKHR", SpvWord{5335}},
        {"ceShaderNonUniform", SpvWord{5301}},
        {"bpAlignmentId", SpvWord{46}},
        {"bdR16", SpvWord{14}},
        {"ceUniformTexelBufferArrayDynamicIndexing", SpvWord{5304}},
        {"ceRayTracingProvisionalKHR", SpvWord{5353}},
        {"aoInitializer", SpvWord{33}},
        {"ceCullDistance", SpvWord{33}},
        {"caFragSizeEXT", SpvWord{5292}},
        {"ceInputAttachmentArrayNonUniformIndexingEXT", SpvWord{5310}},
        {"cjNoneKHR", SpvWord{0}},
        {"cgRayQueryCommittedIntersectionGeneratedKHR", SpvWord{2}},
        {"ceInputAttachment", SpvWord{40}},
        {"apWorkgroup", SpvWord{4}},
        {"caSubgroupLtMask", SpvWord{4420}},
        {"caWarpsPerSMNV", SpvWord{5374}},
        {"bpPerVertexNV", SpvWord{5285}},
        {"bdRgba8", SpvWord{4}},
        {"coWriteBackINTEL", SpvWord{2}},
        {"aoNonCoherentStencilAttachmentReadEXT", SpvWord{4171}},
        {"bdRgba16ui", SpvWord{31}},
        {"aaMinLod", SpvWord{128}},
        {"bpUniform", SpvWord{26}},
        {"apDeviceOnlyINTEL", SpvWord{5936}},
        {"bfUnormInt16", SpvWord{3}},
        {"cePipeStorage", SpvWord{60}},
        {"ceRuntimeAlignedAttributeINTEL", SpvWord{5939}},
        {"caLocalInvocationIndex", SpvWord{29}},
        {"ceFPGAMemoryAttributesINTEL", SpvWord{5824}},
        {"aoStreamingInterfaceINTEL", SpvWord{6154}},
        {"caWarpIDNV", SpvWord{5376}},
        {"amPhysicalStorageBuffer64", SpvWord{5348}},
        {"caRayTmaxKHR", SpvWord{5326}},
        {"ceGroupNonUniformBallot", SpvWord{64}},
        {"bbRepeat", SpvWord{3}},
        {"caGlobalLinearId", SpvWord{34}},
        {"caShaderIndexAMDX", SpvWord{5073}},
        {"ceVector16", SpvWord{7}},
        {"bpCounterBuffer", SpvWord{5634}},
        {"bpBinding", SpvWord{33}},
        {"bpFunctionFloatingPointModeINTEL", SpvWord{6080}},
        {"bpMaxReplicatesINTEL", SpvWord{5832}},
        {"bpViewportRelativeNV", SpvWord{5252}},
        {"bpOverrideCoverageNV", SpvWord{5248}},
        {"afMakeAvailableKHR", SpvWord{8192}},
        {"aoOutputTrianglesEXT", SpvWord{5298}},
        {"bpFPMaxErrorDecorationINTEL", SpvWord{6170}},
        {"adPartialCount", SpvWord{256}},
        {"ceShaderViewportIndexLayerNV", SpvWord{5254}},
        {"caSubgroupGtMask", SpvWord{4418}},
        {"caCoreMaxIDARM", SpvWord{4162}},
        {"bdRgba16Snorm", SpvWord{16}},
        {"ceVariableLengthArrayINTEL", SpvWord{5817}},
        {"afRelease", SpvWord{4}},
        {"alGLCompute", SpvWord{5}},
        {"ajVertical2Pixels", SpvWord{1}},
        {"ceSparseResidency", SpvWord{41}},
        {"cfRayQueryCandidateIntersectionKHR", SpvWord{0}},
        {"caSubgroupMaxSize", SpvWord{37}},
        {"ceShaderViewportMaskNV", SpvWord{5255}},
        {"bbClamp", SpvWord{2}},
        {"biRND", SpvWord{2}},
        {"aoSpacingFractionalOdd", SpvWord{3}},
        {"ceUniformBufferArrayNonUniformIndexingEXT", SpvWord{5306}},
        {"adPipelineEnableINTEL", SpvWord{524288}},
        {"bnNoneINTEL", SpvWord{0}},
        {"ceImageBasic", SpvWord{13}},
        {"aaGrad", SpvWord{4}},
        {"apHostOnlyINTEL", SpvWord{5937}},
        {"caFragStencilRefEXT", SpvWord{5014}},
        {"aaOffset", SpvWord{16}},
        {"aaVolatileTexel", SpvWord{2048}},
        {"abNSZ", SpvWord{4}},
        {"bpPatch", SpvWord{15}},
        {"bpHitObjectShaderRecordBufferNV", SpvWord{5386}},
        {"ceCacheControlsINTEL", SpvWord{6441}},
        {"aoSubgroupsPerWorkgroup", SpvWord{36}},
        {"akUnknown", SpvWord{0}},
        {"adNone", SpvWord{0}},
        {"ceFPGALoopControlsINTEL", SpvWord{5888}},
        {"ceShaderLayer", SpvWord{69}},
        {"aoOriginUpperLeft", SpvWord{7}},
        {"caSecondaryViewportMaskNV", SpvWord{5258}},
        {"bpDoublepumpINTEL", SpvWord{5831}},
        {"bdRgba8ui", SpvWord{32}},
        {"ccPartitionedInclusiveScanNV", SpvWord{7}},
        {"caLaunchSizeNV", SpvWord{5320}},
        {"ceUniformDecoration", SpvWord{71}},
        {"aoSubgroupUniformControlFlowKHR", SpvWord{4421}},
        {"ceVulkanMemoryModelDeviceScope", SpvWord{5346}},
        {"afAtomicCounterMemory", SpvWord{1024}},
        {"agMakePointerVisibleKHR", SpvWord{16}},
        {"ceFragmentShadingRateKHR", SpvWord{4422}},
        {"ajVertical4Pixels", SpvWord{2}},
        {"ahCmdExecTime", SpvWord{1}},
        {"alClosestHitKHR", SpvWord{5316}},
        {"caWorkgroupSize", SpvWord{25}},
        {"bpIOPipeStorageINTEL", SpvWord{5944}},
        {"caVertexIndex", SpvWord{42}},
        {"bgRTE", SpvWord{0}},
        {"bgRTZ", SpvWord{1}},
        {"bdRgba16", SpvWord{10}},
        {"ckColumnMajorKHR", SpvWord{1}},
        {"cjMatrixResultSignedComponentsKHR", SpvWord{8}},
        {"aoOriginLowerLeft", SpvWord{8}},
        {"bdRg16", SpvWord{12}},
        {"aoMaxNodeRecursionAMDX", SpvWord{5071}},
        {"ceCoreBuiltinsARM", SpvWord{4165}},
        {"ceShadingRateNV", SpvWord{5291}},
        {"bpMaxByteOffset", SpvWord{45}},
        {"caBaryCoordSmoothSampleAMD", SpvWord{4997}},
        {"ceFloat16Buffer", SpvWord{8}},
        {"agNontemporal", SpvWord{4}},
        {"agNonPrivatePointer", SpvWord{32}},
        {"aoStencilRefGreaterFrontAMD", SpvWord{5080}},
        {"ceVectorComputeINTEL", SpvWord{5617}},
        {"bpAliasedPointer", SpvWord{5356}},
        {"ajHorizontal4Pixels", SpvWord{8}},
        {"afVolatile", SpvWord{32768}},
        {"ciPackedVectorFormat4x8Bit", SpvWord{0}},
        {"boNoWrite", SpvWord{6}},
        {"ceFragmentMaskAMD", SpvWord{5010}},
        {"aoLocalSizeId", SpvWord{38}},
        {"bpMMHostInterfaceAddressWidthINTEL", SpvWord{6177}},
        {"bpAliased", SpvWord{20}},
        {"ceUniformTexelBufferArrayNonUniformIndexing", SpvWord{5311}},
        {"apPrivate", SpvWord{6}},
        {"abFast", SpvWord{16}},
        {"apOutput", SpvWord{3}},
        {"apTileImageEXT", SpvWord{4172}},
        {"ceDenormPreserve", SpvWord{4464}},
        {"bpTrackFinishWritingAMDX", SpvWord{5078}},
        {"ceBlockingPipesINTEL", SpvWord{5945}},
        {"ceStorageBufferArrayNonUniformIndexingEXT", SpvWord{5308}},
        {"beARGB", SpvWord{7}},
        {"aaVolatileTexelKHR", SpvWord{2048}},
        {"aoTriangles", SpvWord{22}},
        {"ceAtomicFloat64MinMaxEXT", SpvWord{5613}},
        {"ceRoundToInfinityINTEL", SpvWord{5582}},
        {"bpUserSemantic", SpvWord{5635}},
        {"akCPP_for_OpenCL", SpvWord{6}},
        {"ccReduce", SpvWord{0}},
        {"alAnyHitNV", SpvWord{5315}},
        {"ceSubgroupBufferBlockIOINTEL", SpvWord{5569}},
        {"aeInline", SpvWord{1}},
        {"apShaderRecordBufferKHR", SpvWord{5343}},
        {"bdR8i", SpvWord{29}},
        {"ceAsmINTEL", SpvWord{5606}},
        {"bpXfbStride", SpvWord{37}},
        {"bdRg8Snorm", SpvWord{18}},
        {"aaSample", SpvWord{64}},
        {"aoFinalizer", SpvWord{34}},
        {"bpNoUnsignedWrap", SpvWord{4470}},
        {"bpCacheSizeINTEL", SpvWord{5900}},
        {"bdR8Snorm", SpvWord{20}},
        {"aiTerminateOnFirstHitKHR", SpvWord{4}},
        {"bnWriteINTEL", SpvWord{2}},
        {"caTessLevelInner", SpvWord{12}},
        {"ceTextureBlockMatchQCOM", SpvWord{4486}},
        {"ceDrawParameters", SpvWord{4427}},
        {"aaSignExtend", SpvWord{4096}},
        {"bpComponent", SpvWord{31}},
        {"caSubgroupLeMaskKHR", SpvWord{4419}},
        {"bpBoundImageNV", SpvWord{5401}},
        {"bdRg32f", SpvWord{6}},
        {"caSamplePosition", SpvWord{19}},
        {"bdR8", SpvWord{15}},
        {"alCallableKHR", SpvWord{5318}},
        {"besRGBA", SpvWord{17}},
        {"aoSchedulerTargetFmaxMhzINTEL", SpvWord{5903}},
        {"ceFPGABufferLocationINTEL", SpvWord{5920}},
        {"aoDerivativeGroupLinearNV", SpvWord{5290}},
        {"aoContractionOff", SpvWord{31}},
        {"caCoalescedInputCountAMDX", SpvWord{5021}},
        {"ceGroupNonUniform", SpvWord{61}},
        {"bpPerTaskNV", SpvWord{5273}},
        {"aoVecTypeHint", SpvWord{30}},
        {"bnReadWriteINTEL", SpvWord{3}},
        {"caClipDistance", SpvWord{3}},
        {"afUniformMemory", SpvWord{64}},
        {"bpMemoryINTEL", SpvWord{5826}},
        {"ceInterpolationFunction", SpvWord{52}},
        {"akESSL", SpvWord{1}},
        {"aaMakeTexelVisible", SpvWord{512}},
        {"caSubgroupLeMask", SpvWord{4419}},
        {"apPhysicalStorageBufferEXT", SpvWord{5349}},
        {"bkSAT_ZERO", SpvWord{2}},
        {"caLaunchIdNV", SpvWord{5319}},
        {"ceDerivativeControl", SpvWord{51}},
        {"ceDotProductInput4x8Bit", SpvWord{6017}},
        {"ceStorageImageArrayDynamicIndexing", SpvWord{31}},
        {"apPhysicalStorageBuffer", SpvWord{5349}},
        {"aoVertexOrderCw", SpvWord{4}},
        {"ceSubgroupAvcMotionEstimationChromaINTEL", SpvWord{5698}},
        {"caBaryCoordSmoothCentroidAMD", SpvWord{4996}},
        {"boNoCapture", SpvWord{5}},
        {"agMakePointerAvailable", SpvWord{8}},
        {"ceUniformTexelBufferArrayDynamicIndexingEXT", SpvWord{5304}},
        {"afOutputMemory", SpvWord{4096}},
        {"bcLinear", SpvWord{1}},
        {"bpMergeINTEL", SpvWord{5834}},
        {"beDepthStencil", SpvWord{14}},
        {"aoSignedZeroInfNanPreserve", SpvWord{4461}},
        {"bpReferencedIndirectlyINTEL", SpvWord{5602}},
        {"alMissNV", SpvWord{5317}},
        {"aoIsolines", SpvWord{25}},
        {"caSubgroupId", SpvWord{40}},
        {"bpRowMajor", SpvWord{4}},
        {"caSubgroupEqMask", SpvWord{4416}},
        {"apIncomingRayPayloadNV", SpvWord{5342}},
        {"cbQueueFamilyKHR", SpvWord{5}},
        {"bpConduitKernelArgumentINTEL", SpvWord{6175}},
        {"akNZSL", SpvWord{9}},
        {"bfUnormInt101010", SpvWord{6}},
        {"ceSubgroupVoteKHR", SpvWord{4431}},
        {"bdR16f", SpvWord{9}},
        {"caWorldToObjectKHR", SpvWord{5331}},
        {"ceVulkanMemoryModelDeviceScopeKHR", SpvWord{5346}},
        {"ceFPGARegINTEL", SpvWord{5948}},
        {"caGlobalOffset", SpvWord{33}},
        {"abNotNaN", SpvWord{1}},
        {"caTaskCountNV", SpvWord{5274}},
        {"bfUnormInt24", SpvWord{15}},
        {"cgRayQueryCommittedIntersectionTriangleKHR", SpvWord{1}},
        {"aoOutputLinesNV", SpvWord{5269}},
        {"bpStallFreeINTEL", SpvWord{6151}},
        {"agNoAliasINTELMask", SpvWord{131072}},
        {"ceAtomicFloat32AddEXT", SpvWord{6033}},
        {"aoSubgroupsPerWorkgroupId", SpvWord{37}},
        {"aeNone", SpvWord{0}},
        {"apHitAttributeKHR", SpvWord{5339}},
        {"boNoAlias", SpvWord{4}},
        {"boZext", SpvWord{0}},
        {"caFrontFacing", SpvWord{17}},
        {"caPrimitiveShadingRateKHR", SpvWord{4432}},
        {"bpBoundSamplerNV", SpvWord{5400}},
        {"caHitMicroTriangleVertexBarycentricsNV", SpvWord{5344}},
        {"ceStorageImageExtendedFormats", SpvWord{49}},
        {"acDontFlatten", SpvWord{2}},
        {"ceRayTraversalPrimitiveCullingKHR", SpvWord{4478}},
        {"ceFloat16", SpvWord{9}},
        {"bpCPacked", SpvWord{10}},
        {"ceImageReadWrite", SpvWord{14}},
        {"aeDontInline", SpvWord{2}},
        {"ceDisplacementMicromapNV", SpvWord{5380}},
        {"bpLatencyControlConstraintINTEL", SpvWord{6173}},
        {"aoShadingRateInterlockUnorderedEXT", SpvWord{5371}},
        {"caClipDistancePerViewNV", SpvWord{5277}},
        {"bpWeightTextureQCOM", SpvWord{4487}},
        {"ceComputeDerivativeGroupLinearNV", SpvWord{5350}},
        {"aoNonCoherentDepthAttachmentReadEXT", SpvWord{4170}},
        {"ceUniformAndStorageBuffer8BitAccess", SpvWord{4449}},
        {"bmReadOnly", SpvWord{0}},
        {"adDependencyArrayINTEL", SpvWord{262144}},
        {"bpVectorComputeCallableFunctionINTEL", SpvWord{6087}},
        {"bpFuncParamAttr", SpvWord{38}},
        {"ceAtomicFloat16MinMaxEXT", SpvWord{5616}},
        {"ceFragmentShaderSampleInterlockEXT", SpvWord{5363}},
        {"bfUnormShort565", SpvWord{4}},
        {"ceArbitraryPrecisionIntegersINTEL", SpvWord{5844}},
        {"ceUniformBufferArrayNonUniformIndexing", SpvWord{5306}},
        {"bpStallEnableINTEL", SpvWord{5905}},
        {"alTaskNV", SpvWord{5267}},
        {"adDontUnroll", SpvWord{2}},
        {"bpPayloadNodeNameAMDX", SpvWord{5091}},
        {"bpFunctionDenormModeINTEL", SpvWord{5823}},
        {"ceShaderViewportIndex", SpvWord{70}},
        {"ceImageFootprintNV", SpvWord{5282}},
        {"bpSpecId", SpvWord{1}},
        {"bpBlock", SpvWord{2}},
        {"bpXfbBuffer", SpvWord{36}},
        {"caBaseInstance", SpvWord{4425}},
        {"ceTessellation", SpvWord{3}},
        {"ceFPFastMathModeINTEL", SpvWord{5837}},
        {"aoSharedLocalMemorySizeINTEL", SpvWord{5618}},
        {"afMakeVisibleKHR", SpvWord{16384}},
        {"caHitKindKHR", SpvWord{5333}},
        {"ceVariablePointers", SpvWord{4442}},
        {"bkSAT", SpvWord{1}},
        {"ccInclusiveScan", SpvWord{1}},
        {"ceVulkanMemoryModel", SpvWord{5345}},
        {"bpLatencyControlLabelINTEL", SpvWord{6172}},
        {"caMeshViewCountNV", SpvWord{5280}},
        {"bpPrefetchINTEL", SpvWord{5902}},
        {"aoDenormPreserve", SpvWord{4459}},
        {"aoMaxWorkgroupSizeINTEL", SpvWord{5893}},
        {"bpMaxPrivateCopiesINTEL", SpvWord{5829}},
        {"caRayTmaxNV", SpvWord{5326}},
        {"biRND_CONV", SpvWord{6}},
        {"caLayerPerViewNV", SpvWord{5279}},
        {"aoRegisterMapInterfaceINTEL", SpvWord{6160}},
        {"aoDepthLess", SpvWord{15}},
        {"bdRgba32f", SpvWord{1}},
        {"cmInitOnDeviceResetINTEL", SpvWord{1}},
        {"afMakeVisible", SpvWord{16384}},
        {"aeOptNoneINTEL", SpvWord{65536}},
        {"ceMultiView", SpvWord{4439}},
        {"caPrimitiveIndicesNV", SpvWord{5276}},
        {"ceRoundingModeRTZ", SpvWord{4468}},
        {"bgRTP", SpvWord{2}},
        {"cjMatrixBSignedComponentsKHR", SpvWord{2}},
        {"caObjectRayDirectionKHR", SpvWord{5324}},
        {"caPrimitiveId", SpvWord{7}},
        {"aoOutputTriangleStrip", SpvWord{29}},
        {"aoOutputPrimitivesEXT", SpvWord{5270}},
        {"caPosition", SpvWord{0}},
        {"bpMMHostInterfaceReadWriteModeINTEL", SpvWord{6180}},
        {"biRND_ZERO", SpvWord{3}},
        {"ceStorageTexelBufferArrayNonUniformIndexingEXT", SpvWord{5312}},
        {"ceUSMStorageClassesINTEL", SpvWord{5935}},
        {"coUncachedINTEL", SpvWord{0}},
        {"besBGRA", SpvWord{18}},
        {"ceStorageBuffer16BitAccess", SpvWord{4433}},
        {"ceImageMipmap", SpvWord{15}},
        {"agMakePointerVisible", SpvWord{16}},
        {"caWorldRayDirectionNV", SpvWord{5322}},
        {"bdRg16i", SpvWord{26}},
        {"bpTrueDualPortINTEL", SpvWord{5885}},
        {"ceShaderViewportIndexLayerEXT", SpvWord{5254}},
        {"aoMaxNumWorkgroupsAMDX", SpvWord{5077}},
        {"beRG", SpvWord{2}},
        {"caSubgroupGeMask", SpvWord{4417}},
        {"bpLinkageAttributes", SpvWord{41}},
        {"adMaxConcurrencyINTEL", SpvWord{131072}},
        {"aoOutputLinesEXT", SpvWord{5269}},
        {"ceArbitraryPrecisionFixedPointINTEL", SpvWord{5922}},
        {"caBaryCoordKHR", SpvWord{5286}},
        {"ceInputAttachmentArrayDynamicIndexing", SpvWord{5303}},
        {"anSimple", SpvWord{0}},
        {"bdRg16f", SpvWord{7}},
        {"aoInputTrianglesAdjacency", SpvWord{23}},
        {"aoMaxWorkDimINTEL", SpvWord{5894}},
        {"bpRegisterMapKernelArgumentINTEL", SpvWord{6176}},
        {"bpOffset", SpvWord{35}},
        {"ceStorageTexelBufferArrayNonUniformIndexing", SpvWord{5312}},
        {"biTRN", SpvWord{0}},
        {"alClosestHitNV", SpvWord{5316}},
        {"bdRgba8i", SpvWord{23}},
        {"agVolatile", SpvWord{1}},
        {"ceAtomicFloat16AddEXT", SpvWord{6095}},
        {"caPrimitiveTriangleIndicesEXT", SpvWord{5296}},
        {"cbSubgroup", SpvWord{3}},
        {"aoPixelCenterInteger", SpvWord{6}},
        {"ceSampledImageArrayNonUniformIndexing", SpvWord{5307}},
        {"caPrimitiveLineIndicesEXT", SpvWord{5295}},
        {"bdUnknown", SpvWord{0}},
        {"ceSampleRateShading", SpvWord{35}},
        {"apHitObjectAttributeNV", SpvWord{5385}},
        {"aaNonPrivateTexel", SpvWord{1024}},
        {"ceRuntimeDescriptorArray", SpvWord{5302}},
        {"afWorkgroupMemory", SpvWord{256}},
        {"ceStorageImageWriteWithoutFormat", SpvWord{56}},
        {"aoStencilRefUnchangedBackAMD", SpvWord{5082}},
        {"bdRgb10A2", SpvWord{11}},
        {"besRGB", SpvWord{15}},
        {"ceSubgroupImageBlockIOINTEL", SpvWord{5570}},
        {"aoShaderIndexAMDX", SpvWord{5073}},
        {"bhPreserve", SpvWord{0}},
        {"akGLSL", SpvWord{2}},
        {"ceImageRect", SpvWord{36}},
        {"caBaryCoordSmoothAMD", SpvWord{4995}},
        {"aoVertexOrderCcw", SpvWord{5}},
        {"ceMatrix", SpvWord{0}},
        {"adMaxInterleavingINTEL", SpvWord{2097152}},
        {"aaNonPrivateTexelKHR", SpvWord{1024}},
        {"alFragment", SpvWord{4}},
        {"ceAtomicStorageOps", SpvWord{4445}},
        {"ceImageGatherExtended", SpvWord{25}},
        {"ceSampledImageArrayNonUniformIndexingEXT", SpvWord{5307}},
        {"ceSubgroupImageMediaBlockIOINTEL", SpvWord{5579}},
        {"bpGLSLShared", SpvWord{8}},
        {"ceTextureSampleWeightedQCOM", SpvWord{4484}},
        {"blExport", SpvWord{0}},
        {"bpSingleElementVectorINTEL", SpvWord{6085}},
        {"aoPixelInterlockOrderedEXT", SpvWord{5366}},
        {"afSubgroupMemory", SpvWord{128}},
        {"bpPipelineEnableINTEL", SpvWord{5919}},
        {"caDrawIndex", SpvWord{4426}},
        {"bdRg8i", SpvWord{27}},
        {"agMakePointerAvailableKHR", SpvWord{8}},
        {"bpVectorComputeFunctionINTEL", SpvWord{5626}},
        {"ceSignedZeroInfNanPreserve", SpvWord{4466}},
        {"caLaunchSizeKHR", SpvWord{5320}},
        {"bpMMHostInterfaceLatencyINTEL", SpvWord{6179}},
        {"bpBlockMatchTextureQCOM", SpvWord{4488}},
        {"bpNonWritable", SpvWord{24}},
        {"aoDenormFlushToZero", SpvWord{4460}},
        {"anGLSL450", SpvWord{1}},
        {"ceFloat16ImageAMD", SpvWord{5008}},
        {"apUniform", SpvWord{2}},
        {"bmReadWrite", SpvWord{2}},
        {"ceGeometryShaderPassthroughNV", SpvWord{5251}},
        {"bpFuncParamIOKindINTEL", SpvWord{5625}},
        {"ceShaderSMBuiltinsNV", SpvWord{5373}},
        {"anVulkanKHR", SpvWord{3}},
        {"caSampleMask", SpvWord{20}},
        {"apCallableDataKHR", SpvWord{5328}},
        {"afNone", SpvWord{0}},
        {"ceGroupNonUniformArithmetic", SpvWord{63}},
        {"aoLocalSize", SpvWord{17}},
        {"bpPerPrimitiveNV", SpvWord{5271}},
        {"alIntersectionKHR", SpvWord{5314}},
        {"caWarpMaxIDARM", SpvWord{4164}},
        {"ceStorageBufferArrayNonUniformIndexing", SpvWord{5308}},
        {"apNodeOutputPayloadAMDX", SpvWord{5076}},
        {"ceUniformBufferArrayDynamicIndexing", SpvWord{28}},
        {"caObjectRayOriginNV", SpvWord{5323}},
        {"ceRuntimeDescriptorArrayEXT", SpvWord{5302}},
        {"bdRgba8Snorm", SpvWord{5}},
        {"aiNoOpaqueKHR", SpvWord{2}},
        {"bpAlignment", SpvWord{44}},
        {"ceGlobalVariableHostAccessINTEL", SpvWord{6187}},
        {"caSampleId", SpvWord{18}},
        {"apAtomicCounter", SpvWord{10}},
        {"apGeneric", SpvWord{8}},
        {"ceRayTracingMotionBlurNV", SpvWord{5341}},
        {"aePure", SpvWord{4}},
        {"ba1D", SpvWord{0}},
        {"ceFragmentShaderPixelInterlockEXT", SpvWord{5378}},
        {"ceAtomicStorage", SpvWord{21}},
        {"agAliasScopeINTELMask", SpvWord{65536}},
        {"ceDotProductInput4x8BitKHR", SpvWord{6017}},
        {"bpRegisterINTEL", SpvWord{5825}},
        {"apHitAttributeNV", SpvWord{5339}},
        {"afOutputMemoryKHR", SpvWord{4096}},
        {"cnInvalidateAfterReadINTEL", SpvWord{3}},
        {"biTRN_ZERO", SpvWord{1}},
        {"aoInputLinesAdjacency", SpvWord{21}},
        {"aiSkipAABBsKHR", SpvWord{512}},
        {"boByVal", SpvWord{2}},
        {"caBaryCoordNoPerspCentroidAMD", SpvWord{4993}},
        {"ceStorageTexelBufferArrayDynamicIndexing", SpvWord{5305}},
        {"agAligned", SpvWord{2}},
    };

    static const auto hash = [](const UnownedStringSlice& str, UInt32 salt){
        UInt32 h = salt;
        for (const char c : str)
            h = (h * 0x01000193) ^ c;
        return h % 993;
    };

    const auto i = hash(str, tableSalt[hash(str, 0)]);
    if(str == words[i].first)
    {
        value = words[i].second;
        return true;
    }
    else
    {
        return false;
    }
}

static bool lookupQualifiedEnum(const QualifiedEnumName& k, SpvWord& v)
{
    static_assert(sizeof(k.kind.index) == 1);
    if(k.name.getLength() > 46)
        return false;
    char name[48];
    name[0] = char((k.kind.index >> 4) + 'a');
    name[1] = char((k.kind.index & 0xf) + 'a');
    memcpy(name+2, k.name.begin(), k.name.getLength());
    return lookupEnumWithHexPrefix(UnownedStringSlice(name, k.name.getLength() + 2), v);
}

static bool getQualifiedEnumName(const QualifiedEnumValue& k, UnownedStringSlice& v)
{
    const auto& [k1, k2] = k;
    switch(k1.index)
    {
        case 0:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"None"}; return true;
            case 1: v = UnownedStringSlice{"Bias"}; return true;
            case 2: v = UnownedStringSlice{"Lod"}; return true;
            case 4: v = UnownedStringSlice{"Grad"}; return true;
            case 8: v = UnownedStringSlice{"ConstOffset"}; return true;
            case 16: v = UnownedStringSlice{"Offset"}; return true;
            case 32: v = UnownedStringSlice{"ConstOffsets"}; return true;
            case 64: v = UnownedStringSlice{"Sample"}; return true;
            case 128: v = UnownedStringSlice{"MinLod"}; return true;
            case 256: v = UnownedStringSlice{"MakeTexelAvailable"}; return true;
            case 512: v = UnownedStringSlice{"MakeTexelVisible"}; return true;
            case 1024: v = UnownedStringSlice{"NonPrivateTexel"}; return true;
            case 2048: v = UnownedStringSlice{"VolatileTexel"}; return true;
            case 4096: v = UnownedStringSlice{"SignExtend"}; return true;
            case 8192: v = UnownedStringSlice{"ZeroExtend"}; return true;
            case 16384: v = UnownedStringSlice{"Nontemporal"}; return true;
            case 65536: v = UnownedStringSlice{"Offsets"}; return true;
            default: return false;
        }
        case 1:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"None"}; return true;
            case 1: v = UnownedStringSlice{"NotNaN"}; return true;
            case 2: v = UnownedStringSlice{"NotInf"}; return true;
            case 4: v = UnownedStringSlice{"NSZ"}; return true;
            case 8: v = UnownedStringSlice{"AllowRecip"}; return true;
            case 16: v = UnownedStringSlice{"Fast"}; return true;
            case 65536: v = UnownedStringSlice{"AllowContractFastINTEL"}; return true;
            case 131072: v = UnownedStringSlice{"AllowReassocINTEL"}; return true;
            default: return false;
        }
        case 2:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"None"}; return true;
            case 1: v = UnownedStringSlice{"Flatten"}; return true;
            case 2: v = UnownedStringSlice{"DontFlatten"}; return true;
            default: return false;
        }
        case 3:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"None"}; return true;
            case 1: v = UnownedStringSlice{"Unroll"}; return true;
            case 2: v = UnownedStringSlice{"DontUnroll"}; return true;
            case 4: v = UnownedStringSlice{"DependencyInfinite"}; return true;
            case 8: v = UnownedStringSlice{"DependencyLength"}; return true;
            case 16: v = UnownedStringSlice{"MinIterations"}; return true;
            case 32: v = UnownedStringSlice{"MaxIterations"}; return true;
            case 64: v = UnownedStringSlice{"IterationMultiple"}; return true;
            case 128: v = UnownedStringSlice{"PeelCount"}; return true;
            case 256: v = UnownedStringSlice{"PartialCount"}; return true;
            case 65536: v = UnownedStringSlice{"InitiationIntervalINTEL"}; return true;
            case 131072: v = UnownedStringSlice{"MaxConcurrencyINTEL"}; return true;
            case 262144: v = UnownedStringSlice{"DependencyArrayINTEL"}; return true;
            case 524288: v = UnownedStringSlice{"PipelineEnableINTEL"}; return true;
            case 1048576: v = UnownedStringSlice{"LoopCoalesceINTEL"}; return true;
            case 2097152: v = UnownedStringSlice{"MaxInterleavingINTEL"}; return true;
            case 4194304: v = UnownedStringSlice{"SpeculatedIterationsINTEL"}; return true;
            case 8388608: v = UnownedStringSlice{"NoFusionINTEL"}; return true;
            case 16777216: v = UnownedStringSlice{"LoopCountINTEL"}; return true;
            case 33554432: v = UnownedStringSlice{"MaxReinvocationDelayINTEL"}; return true;
            default: return false;
        }
        case 4:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"None"}; return true;
            case 1: v = UnownedStringSlice{"Inline"}; return true;
            case 2: v = UnownedStringSlice{"DontInline"}; return true;
            case 4: v = UnownedStringSlice{"Pure"}; return true;
            case 8: v = UnownedStringSlice{"Const"}; return true;
            case 65536: v = UnownedStringSlice{"OptNoneINTEL"}; return true;
            default: return false;
        }
        case 5:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Relaxed"}; return true;
            case 2: v = UnownedStringSlice{"Acquire"}; return true;
            case 4: v = UnownedStringSlice{"Release"}; return true;
            case 8: v = UnownedStringSlice{"AcquireRelease"}; return true;
            case 16: v = UnownedStringSlice{"SequentiallyConsistent"}; return true;
            case 64: v = UnownedStringSlice{"UniformMemory"}; return true;
            case 128: v = UnownedStringSlice{"SubgroupMemory"}; return true;
            case 256: v = UnownedStringSlice{"WorkgroupMemory"}; return true;
            case 512: v = UnownedStringSlice{"CrossWorkgroupMemory"}; return true;
            case 1024: v = UnownedStringSlice{"AtomicCounterMemory"}; return true;
            case 2048: v = UnownedStringSlice{"ImageMemory"}; return true;
            case 4096: v = UnownedStringSlice{"OutputMemory"}; return true;
            case 8192: v = UnownedStringSlice{"MakeAvailable"}; return true;
            case 16384: v = UnownedStringSlice{"MakeVisible"}; return true;
            case 32768: v = UnownedStringSlice{"Volatile"}; return true;
            default: return false;
        }
        case 6:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"None"}; return true;
            case 1: v = UnownedStringSlice{"Volatile"}; return true;
            case 2: v = UnownedStringSlice{"Aligned"}; return true;
            case 4: v = UnownedStringSlice{"Nontemporal"}; return true;
            case 8: v = UnownedStringSlice{"MakePointerAvailable"}; return true;
            case 16: v = UnownedStringSlice{"MakePointerVisible"}; return true;
            case 32: v = UnownedStringSlice{"NonPrivatePointer"}; return true;
            case 65536: v = UnownedStringSlice{"AliasScopeINTELMask"}; return true;
            case 131072: v = UnownedStringSlice{"NoAliasINTELMask"}; return true;
            default: return false;
        }
        case 7:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"None"}; return true;
            case 1: v = UnownedStringSlice{"CmdExecTime"}; return true;
            default: return false;
        }
        case 8:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"NoneKHR"}; return true;
            case 1: v = UnownedStringSlice{"OpaqueKHR"}; return true;
            case 2: v = UnownedStringSlice{"NoOpaqueKHR"}; return true;
            case 4: v = UnownedStringSlice{"TerminateOnFirstHitKHR"}; return true;
            case 8: v = UnownedStringSlice{"SkipClosestHitShaderKHR"}; return true;
            case 16: v = UnownedStringSlice{"CullBackFacingTrianglesKHR"}; return true;
            case 32: v = UnownedStringSlice{"CullFrontFacingTrianglesKHR"}; return true;
            case 64: v = UnownedStringSlice{"CullOpaqueKHR"}; return true;
            case 128: v = UnownedStringSlice{"CullNoOpaqueKHR"}; return true;
            case 256: v = UnownedStringSlice{"SkipTrianglesKHR"}; return true;
            case 512: v = UnownedStringSlice{"SkipAABBsKHR"}; return true;
            case 1024: v = UnownedStringSlice{"ForceOpacityMicromap2StateEXT"}; return true;
            default: return false;
        }
        case 9:
        switch(k2)
        {
            case 1: v = UnownedStringSlice{"Vertical2Pixels"}; return true;
            case 2: v = UnownedStringSlice{"Vertical4Pixels"}; return true;
            case 4: v = UnownedStringSlice{"Horizontal2Pixels"}; return true;
            case 8: v = UnownedStringSlice{"Horizontal4Pixels"}; return true;
            default: return false;
        }
        case 10:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Unknown"}; return true;
            case 1: v = UnownedStringSlice{"ESSL"}; return true;
            case 2: v = UnownedStringSlice{"GLSL"}; return true;
            case 3: v = UnownedStringSlice{"OpenCL_C"}; return true;
            case 4: v = UnownedStringSlice{"OpenCL_CPP"}; return true;
            case 5: v = UnownedStringSlice{"HLSL"}; return true;
            case 6: v = UnownedStringSlice{"CPP_for_OpenCL"}; return true;
            case 7: v = UnownedStringSlice{"SYCL"}; return true;
            case 8: v = UnownedStringSlice{"HERO_C"}; return true;
            case 9: v = UnownedStringSlice{"NZSL"}; return true;
            case 10: v = UnownedStringSlice{"WGSL"}; return true;
            case 11: v = UnownedStringSlice{"Slang"}; return true;
            default: return false;
        }
        case 11:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Vertex"}; return true;
            case 1: v = UnownedStringSlice{"TessellationControl"}; return true;
            case 2: v = UnownedStringSlice{"TessellationEvaluation"}; return true;
            case 3: v = UnownedStringSlice{"Geometry"}; return true;
            case 4: v = UnownedStringSlice{"Fragment"}; return true;
            case 5: v = UnownedStringSlice{"GLCompute"}; return true;
            case 6: v = UnownedStringSlice{"Kernel"}; return true;
            case 5267: v = UnownedStringSlice{"TaskNV"}; return true;
            case 5268: v = UnownedStringSlice{"MeshNV"}; return true;
            case 5313: v = UnownedStringSlice{"RayGenerationNV"}; return true;
            case 5314: v = UnownedStringSlice{"IntersectionNV"}; return true;
            case 5315: v = UnownedStringSlice{"AnyHitNV"}; return true;
            case 5316: v = UnownedStringSlice{"ClosestHitNV"}; return true;
            case 5317: v = UnownedStringSlice{"MissNV"}; return true;
            case 5318: v = UnownedStringSlice{"CallableNV"}; return true;
            case 5364: v = UnownedStringSlice{"TaskEXT"}; return true;
            case 5365: v = UnownedStringSlice{"MeshEXT"}; return true;
            default: return false;
        }
        case 12:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Logical"}; return true;
            case 1: v = UnownedStringSlice{"Physical32"}; return true;
            case 2: v = UnownedStringSlice{"Physical64"}; return true;
            case 5348: v = UnownedStringSlice{"PhysicalStorageBuffer64"}; return true;
            default: return false;
        }
        case 13:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Simple"}; return true;
            case 1: v = UnownedStringSlice{"GLSL450"}; return true;
            case 2: v = UnownedStringSlice{"OpenCL"}; return true;
            case 3: v = UnownedStringSlice{"Vulkan"}; return true;
            default: return false;
        }
        case 14:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Invocations"}; return true;
            case 1: v = UnownedStringSlice{"SpacingEqual"}; return true;
            case 2: v = UnownedStringSlice{"SpacingFractionalEven"}; return true;
            case 3: v = UnownedStringSlice{"SpacingFractionalOdd"}; return true;
            case 4: v = UnownedStringSlice{"VertexOrderCw"}; return true;
            case 5: v = UnownedStringSlice{"VertexOrderCcw"}; return true;
            case 6: v = UnownedStringSlice{"PixelCenterInteger"}; return true;
            case 7: v = UnownedStringSlice{"OriginUpperLeft"}; return true;
            case 8: v = UnownedStringSlice{"OriginLowerLeft"}; return true;
            case 9: v = UnownedStringSlice{"EarlyFragmentTests"}; return true;
            case 10: v = UnownedStringSlice{"PointMode"}; return true;
            case 11: v = UnownedStringSlice{"Xfb"}; return true;
            case 12: v = UnownedStringSlice{"DepthReplacing"}; return true;
            case 14: v = UnownedStringSlice{"DepthGreater"}; return true;
            case 15: v = UnownedStringSlice{"DepthLess"}; return true;
            case 16: v = UnownedStringSlice{"DepthUnchanged"}; return true;
            case 17: v = UnownedStringSlice{"LocalSize"}; return true;
            case 18: v = UnownedStringSlice{"LocalSizeHint"}; return true;
            case 19: v = UnownedStringSlice{"InputPoints"}; return true;
            case 20: v = UnownedStringSlice{"InputLines"}; return true;
            case 21: v = UnownedStringSlice{"InputLinesAdjacency"}; return true;
            case 22: v = UnownedStringSlice{"Triangles"}; return true;
            case 23: v = UnownedStringSlice{"InputTrianglesAdjacency"}; return true;
            case 24: v = UnownedStringSlice{"Quads"}; return true;
            case 25: v = UnownedStringSlice{"Isolines"}; return true;
            case 26: v = UnownedStringSlice{"OutputVertices"}; return true;
            case 27: v = UnownedStringSlice{"OutputPoints"}; return true;
            case 28: v = UnownedStringSlice{"OutputLineStrip"}; return true;
            case 29: v = UnownedStringSlice{"OutputTriangleStrip"}; return true;
            case 30: v = UnownedStringSlice{"VecTypeHint"}; return true;
            case 31: v = UnownedStringSlice{"ContractionOff"}; return true;
            case 33: v = UnownedStringSlice{"Initializer"}; return true;
            case 34: v = UnownedStringSlice{"Finalizer"}; return true;
            case 35: v = UnownedStringSlice{"SubgroupSize"}; return true;
            case 36: v = UnownedStringSlice{"SubgroupsPerWorkgroup"}; return true;
            case 37: v = UnownedStringSlice{"SubgroupsPerWorkgroupId"}; return true;
            case 38: v = UnownedStringSlice{"LocalSizeId"}; return true;
            case 39: v = UnownedStringSlice{"LocalSizeHintId"}; return true;
            case 4169: v = UnownedStringSlice{"NonCoherentColorAttachmentReadEXT"}; return true;
            case 4170: v = UnownedStringSlice{"NonCoherentDepthAttachmentReadEXT"}; return true;
            case 4171: v = UnownedStringSlice{"NonCoherentStencilAttachmentReadEXT"}; return true;
            case 4421: v = UnownedStringSlice{"SubgroupUniformControlFlowKHR"}; return true;
            case 4446: v = UnownedStringSlice{"PostDepthCoverage"}; return true;
            case 4459: v = UnownedStringSlice{"DenormPreserve"}; return true;
            case 4460: v = UnownedStringSlice{"DenormFlushToZero"}; return true;
            case 4461: v = UnownedStringSlice{"SignedZeroInfNanPreserve"}; return true;
            case 4462: v = UnownedStringSlice{"RoundingModeRTE"}; return true;
            case 4463: v = UnownedStringSlice{"RoundingModeRTZ"}; return true;
            case 5017: v = UnownedStringSlice{"EarlyAndLateFragmentTestsAMD"}; return true;
            case 5027: v = UnownedStringSlice{"StencilRefReplacingEXT"}; return true;
            case 5069: v = UnownedStringSlice{"CoalescingAMDX"}; return true;
            case 5071: v = UnownedStringSlice{"MaxNodeRecursionAMDX"}; return true;
            case 5072: v = UnownedStringSlice{"StaticNumWorkgroupsAMDX"}; return true;
            case 5073: v = UnownedStringSlice{"ShaderIndexAMDX"}; return true;
            case 5077: v = UnownedStringSlice{"MaxNumWorkgroupsAMDX"}; return true;
            case 5079: v = UnownedStringSlice{"StencilRefUnchangedFrontAMD"}; return true;
            case 5080: v = UnownedStringSlice{"StencilRefGreaterFrontAMD"}; return true;
            case 5081: v = UnownedStringSlice{"StencilRefLessFrontAMD"}; return true;
            case 5082: v = UnownedStringSlice{"StencilRefUnchangedBackAMD"}; return true;
            case 5083: v = UnownedStringSlice{"StencilRefGreaterBackAMD"}; return true;
            case 5084: v = UnownedStringSlice{"StencilRefLessBackAMD"}; return true;
            case 5269: v = UnownedStringSlice{"OutputLinesNV"}; return true;
            case 5270: v = UnownedStringSlice{"OutputPrimitivesNV"}; return true;
            case 5289: v = UnownedStringSlice{"DerivativeGroupQuadsNV"}; return true;
            case 5290: v = UnownedStringSlice{"DerivativeGroupLinearNV"}; return true;
            case 5298: v = UnownedStringSlice{"OutputTrianglesNV"}; return true;
            case 5366: v = UnownedStringSlice{"PixelInterlockOrderedEXT"}; return true;
            case 5367: v = UnownedStringSlice{"PixelInterlockUnorderedEXT"}; return true;
            case 5368: v = UnownedStringSlice{"SampleInterlockOrderedEXT"}; return true;
            case 5369: v = UnownedStringSlice{"SampleInterlockUnorderedEXT"}; return true;
            case 5370: v = UnownedStringSlice{"ShadingRateInterlockOrderedEXT"}; return true;
            case 5371: v = UnownedStringSlice{"ShadingRateInterlockUnorderedEXT"}; return true;
            case 5618: v = UnownedStringSlice{"SharedLocalMemorySizeINTEL"}; return true;
            case 5620: v = UnownedStringSlice{"RoundingModeRTPINTEL"}; return true;
            case 5621: v = UnownedStringSlice{"RoundingModeRTNINTEL"}; return true;
            case 5622: v = UnownedStringSlice{"FloatingPointModeALTINTEL"}; return true;
            case 5623: v = UnownedStringSlice{"FloatingPointModeIEEEINTEL"}; return true;
            case 5893: v = UnownedStringSlice{"MaxWorkgroupSizeINTEL"}; return true;
            case 5894: v = UnownedStringSlice{"MaxWorkDimINTEL"}; return true;
            case 5895: v = UnownedStringSlice{"NoGlobalOffsetINTEL"}; return true;
            case 5896: v = UnownedStringSlice{"NumSIMDWorkitemsINTEL"}; return true;
            case 5903: v = UnownedStringSlice{"SchedulerTargetFmaxMhzINTEL"}; return true;
            case 6154: v = UnownedStringSlice{"StreamingInterfaceINTEL"}; return true;
            case 6160: v = UnownedStringSlice{"RegisterMapInterfaceINTEL"}; return true;
            case 6417: v = UnownedStringSlice{"NamedBarrierCountINTEL"}; return true;
            default: return false;
        }
        case 15:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"UniformConstant"}; return true;
            case 1: v = UnownedStringSlice{"Input"}; return true;
            case 2: v = UnownedStringSlice{"Uniform"}; return true;
            case 3: v = UnownedStringSlice{"Output"}; return true;
            case 4: v = UnownedStringSlice{"Workgroup"}; return true;
            case 5: v = UnownedStringSlice{"CrossWorkgroup"}; return true;
            case 6: v = UnownedStringSlice{"Private"}; return true;
            case 7: v = UnownedStringSlice{"Function"}; return true;
            case 8: v = UnownedStringSlice{"Generic"}; return true;
            case 9: v = UnownedStringSlice{"PushConstant"}; return true;
            case 10: v = UnownedStringSlice{"AtomicCounter"}; return true;
            case 11: v = UnownedStringSlice{"Image"}; return true;
            case 12: v = UnownedStringSlice{"StorageBuffer"}; return true;
            case 4172: v = UnownedStringSlice{"TileImageEXT"}; return true;
            case 5068: v = UnownedStringSlice{"NodePayloadAMDX"}; return true;
            case 5076: v = UnownedStringSlice{"NodeOutputPayloadAMDX"}; return true;
            case 5328: v = UnownedStringSlice{"CallableDataNV"}; return true;
            case 5329: v = UnownedStringSlice{"IncomingCallableDataNV"}; return true;
            case 5338: v = UnownedStringSlice{"RayPayloadNV"}; return true;
            case 5339: v = UnownedStringSlice{"HitAttributeNV"}; return true;
            case 5342: v = UnownedStringSlice{"IncomingRayPayloadNV"}; return true;
            case 5343: v = UnownedStringSlice{"ShaderRecordBufferNV"}; return true;
            case 5349: v = UnownedStringSlice{"PhysicalStorageBuffer"}; return true;
            case 5385: v = UnownedStringSlice{"HitObjectAttributeNV"}; return true;
            case 5402: v = UnownedStringSlice{"TaskPayloadWorkgroupEXT"}; return true;
            case 5605: v = UnownedStringSlice{"CodeSectionINTEL"}; return true;
            case 5936: v = UnownedStringSlice{"DeviceOnlyINTEL"}; return true;
            case 5937: v = UnownedStringSlice{"HostOnlyINTEL"}; return true;
            default: return false;
        }
        case 16:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"1D"}; return true;
            case 1: v = UnownedStringSlice{"2D"}; return true;
            case 2: v = UnownedStringSlice{"3D"}; return true;
            case 3: v = UnownedStringSlice{"Cube"}; return true;
            case 4: v = UnownedStringSlice{"Rect"}; return true;
            case 5: v = UnownedStringSlice{"Buffer"}; return true;
            case 6: v = UnownedStringSlice{"SubpassData"}; return true;
            case 4173: v = UnownedStringSlice{"TileImageDataEXT"}; return true;
            default: return false;
        }
        case 17:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"None"}; return true;
            case 1: v = UnownedStringSlice{"ClampToEdge"}; return true;
            case 2: v = UnownedStringSlice{"Clamp"}; return true;
            case 3: v = UnownedStringSlice{"Repeat"}; return true;
            case 4: v = UnownedStringSlice{"RepeatMirrored"}; return true;
            default: return false;
        }
        case 18:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Nearest"}; return true;
            case 1: v = UnownedStringSlice{"Linear"}; return true;
            default: return false;
        }
        case 19:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Unknown"}; return true;
            case 1: v = UnownedStringSlice{"Rgba32f"}; return true;
            case 2: v = UnownedStringSlice{"Rgba16f"}; return true;
            case 3: v = UnownedStringSlice{"R32f"}; return true;
            case 4: v = UnownedStringSlice{"Rgba8"}; return true;
            case 5: v = UnownedStringSlice{"Rgba8Snorm"}; return true;
            case 6: v = UnownedStringSlice{"Rg32f"}; return true;
            case 7: v = UnownedStringSlice{"Rg16f"}; return true;
            case 8: v = UnownedStringSlice{"R11fG11fB10f"}; return true;
            case 9: v = UnownedStringSlice{"R16f"}; return true;
            case 10: v = UnownedStringSlice{"Rgba16"}; return true;
            case 11: v = UnownedStringSlice{"Rgb10A2"}; return true;
            case 12: v = UnownedStringSlice{"Rg16"}; return true;
            case 13: v = UnownedStringSlice{"Rg8"}; return true;
            case 14: v = UnownedStringSlice{"R16"}; return true;
            case 15: v = UnownedStringSlice{"R8"}; return true;
            case 16: v = UnownedStringSlice{"Rgba16Snorm"}; return true;
            case 17: v = UnownedStringSlice{"Rg16Snorm"}; return true;
            case 18: v = UnownedStringSlice{"Rg8Snorm"}; return true;
            case 19: v = UnownedStringSlice{"R16Snorm"}; return true;
            case 20: v = UnownedStringSlice{"R8Snorm"}; return true;
            case 21: v = UnownedStringSlice{"Rgba32i"}; return true;
            case 22: v = UnownedStringSlice{"Rgba16i"}; return true;
            case 23: v = UnownedStringSlice{"Rgba8i"}; return true;
            case 24: v = UnownedStringSlice{"R32i"}; return true;
            case 25: v = UnownedStringSlice{"Rg32i"}; return true;
            case 26: v = UnownedStringSlice{"Rg16i"}; return true;
            case 27: v = UnownedStringSlice{"Rg8i"}; return true;
            case 28: v = UnownedStringSlice{"R16i"}; return true;
            case 29: v = UnownedStringSlice{"R8i"}; return true;
            case 30: v = UnownedStringSlice{"Rgba32ui"}; return true;
            case 31: v = UnownedStringSlice{"Rgba16ui"}; return true;
            case 32: v = UnownedStringSlice{"Rgba8ui"}; return true;
            case 33: v = UnownedStringSlice{"R32ui"}; return true;
            case 34: v = UnownedStringSlice{"Rgb10a2ui"}; return true;
            case 35: v = UnownedStringSlice{"Rg32ui"}; return true;
            case 36: v = UnownedStringSlice{"Rg16ui"}; return true;
            case 37: v = UnownedStringSlice{"Rg8ui"}; return true;
            case 38: v = UnownedStringSlice{"R16ui"}; return true;
            case 39: v = UnownedStringSlice{"R8ui"}; return true;
            case 40: v = UnownedStringSlice{"R64ui"}; return true;
            case 41: v = UnownedStringSlice{"R64i"}; return true;
            default: return false;
        }
        case 20:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"R"}; return true;
            case 1: v = UnownedStringSlice{"A"}; return true;
            case 2: v = UnownedStringSlice{"RG"}; return true;
            case 3: v = UnownedStringSlice{"RA"}; return true;
            case 4: v = UnownedStringSlice{"RGB"}; return true;
            case 5: v = UnownedStringSlice{"RGBA"}; return true;
            case 6: v = UnownedStringSlice{"BGRA"}; return true;
            case 7: v = UnownedStringSlice{"ARGB"}; return true;
            case 8: v = UnownedStringSlice{"Intensity"}; return true;
            case 9: v = UnownedStringSlice{"Luminance"}; return true;
            case 10: v = UnownedStringSlice{"Rx"}; return true;
            case 11: v = UnownedStringSlice{"RGx"}; return true;
            case 12: v = UnownedStringSlice{"RGBx"}; return true;
            case 13: v = UnownedStringSlice{"Depth"}; return true;
            case 14: v = UnownedStringSlice{"DepthStencil"}; return true;
            case 15: v = UnownedStringSlice{"sRGB"}; return true;
            case 16: v = UnownedStringSlice{"sRGBx"}; return true;
            case 17: v = UnownedStringSlice{"sRGBA"}; return true;
            case 18: v = UnownedStringSlice{"sBGRA"}; return true;
            case 19: v = UnownedStringSlice{"ABGR"}; return true;
            default: return false;
        }
        case 21:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"SnormInt8"}; return true;
            case 1: v = UnownedStringSlice{"SnormInt16"}; return true;
            case 2: v = UnownedStringSlice{"UnormInt8"}; return true;
            case 3: v = UnownedStringSlice{"UnormInt16"}; return true;
            case 4: v = UnownedStringSlice{"UnormShort565"}; return true;
            case 5: v = UnownedStringSlice{"UnormShort555"}; return true;
            case 6: v = UnownedStringSlice{"UnormInt101010"}; return true;
            case 7: v = UnownedStringSlice{"SignedInt8"}; return true;
            case 8: v = UnownedStringSlice{"SignedInt16"}; return true;
            case 9: v = UnownedStringSlice{"SignedInt32"}; return true;
            case 10: v = UnownedStringSlice{"UnsignedInt8"}; return true;
            case 11: v = UnownedStringSlice{"UnsignedInt16"}; return true;
            case 12: v = UnownedStringSlice{"UnsignedInt32"}; return true;
            case 13: v = UnownedStringSlice{"HalfFloat"}; return true;
            case 14: v = UnownedStringSlice{"Float"}; return true;
            case 15: v = UnownedStringSlice{"UnormInt24"}; return true;
            case 16: v = UnownedStringSlice{"UnormInt101010_2"}; return true;
            case 19: v = UnownedStringSlice{"UnsignedIntRaw10EXT"}; return true;
            case 20: v = UnownedStringSlice{"UnsignedIntRaw12EXT"}; return true;
            default: return false;
        }
        case 22:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"RTE"}; return true;
            case 1: v = UnownedStringSlice{"RTZ"}; return true;
            case 2: v = UnownedStringSlice{"RTP"}; return true;
            case 3: v = UnownedStringSlice{"RTN"}; return true;
            default: return false;
        }
        case 23:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Preserve"}; return true;
            case 1: v = UnownedStringSlice{"FlushToZero"}; return true;
            default: return false;
        }
        case 24:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"TRN"}; return true;
            case 1: v = UnownedStringSlice{"TRN_ZERO"}; return true;
            case 2: v = UnownedStringSlice{"RND"}; return true;
            case 3: v = UnownedStringSlice{"RND_ZERO"}; return true;
            case 4: v = UnownedStringSlice{"RND_INF"}; return true;
            case 5: v = UnownedStringSlice{"RND_MIN_INF"}; return true;
            case 6: v = UnownedStringSlice{"RND_CONV"}; return true;
            case 7: v = UnownedStringSlice{"RND_CONV_ODD"}; return true;
            default: return false;
        }
        case 25:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"IEEE"}; return true;
            case 1: v = UnownedStringSlice{"ALT"}; return true;
            default: return false;
        }
        case 26:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"WRAP"}; return true;
            case 1: v = UnownedStringSlice{"SAT"}; return true;
            case 2: v = UnownedStringSlice{"SAT_ZERO"}; return true;
            case 3: v = UnownedStringSlice{"SAT_SYM"}; return true;
            default: return false;
        }
        case 27:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Export"}; return true;
            case 1: v = UnownedStringSlice{"Import"}; return true;
            case 2: v = UnownedStringSlice{"LinkOnceODR"}; return true;
            default: return false;
        }
        case 28:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"ReadOnly"}; return true;
            case 1: v = UnownedStringSlice{"WriteOnly"}; return true;
            case 2: v = UnownedStringSlice{"ReadWrite"}; return true;
            default: return false;
        }
        case 29:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"NoneINTEL"}; return true;
            case 1: v = UnownedStringSlice{"ReadINTEL"}; return true;
            case 2: v = UnownedStringSlice{"WriteINTEL"}; return true;
            case 3: v = UnownedStringSlice{"ReadWriteINTEL"}; return true;
            default: return false;
        }
        case 30:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Zext"}; return true;
            case 1: v = UnownedStringSlice{"Sext"}; return true;
            case 2: v = UnownedStringSlice{"ByVal"}; return true;
            case 3: v = UnownedStringSlice{"Sret"}; return true;
            case 4: v = UnownedStringSlice{"NoAlias"}; return true;
            case 5: v = UnownedStringSlice{"NoCapture"}; return true;
            case 6: v = UnownedStringSlice{"NoWrite"}; return true;
            case 7: v = UnownedStringSlice{"NoReadWrite"}; return true;
            case 5940: v = UnownedStringSlice{"RuntimeAlignedINTEL"}; return true;
            default: return false;
        }
        case 31:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"RelaxedPrecision"}; return true;
            case 1: v = UnownedStringSlice{"SpecId"}; return true;
            case 2: v = UnownedStringSlice{"Block"}; return true;
            case 3: v = UnownedStringSlice{"BufferBlock"}; return true;
            case 4: v = UnownedStringSlice{"RowMajor"}; return true;
            case 5: v = UnownedStringSlice{"ColMajor"}; return true;
            case 6: v = UnownedStringSlice{"ArrayStride"}; return true;
            case 7: v = UnownedStringSlice{"MatrixStride"}; return true;
            case 8: v = UnownedStringSlice{"GLSLShared"}; return true;
            case 9: v = UnownedStringSlice{"GLSLPacked"}; return true;
            case 10: v = UnownedStringSlice{"CPacked"}; return true;
            case 11: v = UnownedStringSlice{"BuiltIn"}; return true;
            case 13: v = UnownedStringSlice{"NoPerspective"}; return true;
            case 14: v = UnownedStringSlice{"Flat"}; return true;
            case 15: v = UnownedStringSlice{"Patch"}; return true;
            case 16: v = UnownedStringSlice{"Centroid"}; return true;
            case 17: v = UnownedStringSlice{"Sample"}; return true;
            case 18: v = UnownedStringSlice{"Invariant"}; return true;
            case 19: v = UnownedStringSlice{"Restrict"}; return true;
            case 20: v = UnownedStringSlice{"Aliased"}; return true;
            case 21: v = UnownedStringSlice{"Volatile"}; return true;
            case 22: v = UnownedStringSlice{"Constant"}; return true;
            case 23: v = UnownedStringSlice{"Coherent"}; return true;
            case 24: v = UnownedStringSlice{"NonWritable"}; return true;
            case 25: v = UnownedStringSlice{"NonReadable"}; return true;
            case 26: v = UnownedStringSlice{"Uniform"}; return true;
            case 27: v = UnownedStringSlice{"UniformId"}; return true;
            case 28: v = UnownedStringSlice{"SaturatedConversion"}; return true;
            case 29: v = UnownedStringSlice{"Stream"}; return true;
            case 30: v = UnownedStringSlice{"Location"}; return true;
            case 31: v = UnownedStringSlice{"Component"}; return true;
            case 32: v = UnownedStringSlice{"Index"}; return true;
            case 33: v = UnownedStringSlice{"Binding"}; return true;
            case 34: v = UnownedStringSlice{"DescriptorSet"}; return true;
            case 35: v = UnownedStringSlice{"Offset"}; return true;
            case 36: v = UnownedStringSlice{"XfbBuffer"}; return true;
            case 37: v = UnownedStringSlice{"XfbStride"}; return true;
            case 38: v = UnownedStringSlice{"FuncParamAttr"}; return true;
            case 39: v = UnownedStringSlice{"FPRoundingMode"}; return true;
            case 40: v = UnownedStringSlice{"FPFastMathMode"}; return true;
            case 41: v = UnownedStringSlice{"LinkageAttributes"}; return true;
            case 42: v = UnownedStringSlice{"NoContraction"}; return true;
            case 43: v = UnownedStringSlice{"InputAttachmentIndex"}; return true;
            case 44: v = UnownedStringSlice{"Alignment"}; return true;
            case 45: v = UnownedStringSlice{"MaxByteOffset"}; return true;
            case 46: v = UnownedStringSlice{"AlignmentId"}; return true;
            case 47: v = UnownedStringSlice{"MaxByteOffsetId"}; return true;
            case 4469: v = UnownedStringSlice{"NoSignedWrap"}; return true;
            case 4470: v = UnownedStringSlice{"NoUnsignedWrap"}; return true;
            case 4487: v = UnownedStringSlice{"WeightTextureQCOM"}; return true;
            case 4488: v = UnownedStringSlice{"BlockMatchTextureQCOM"}; return true;
            case 4999: v = UnownedStringSlice{"ExplicitInterpAMD"}; return true;
            case 5019: v = UnownedStringSlice{"NodeSharesPayloadLimitsWithAMDX"}; return true;
            case 5020: v = UnownedStringSlice{"NodeMaxPayloadsAMDX"}; return true;
            case 5078: v = UnownedStringSlice{"TrackFinishWritingAMDX"}; return true;
            case 5091: v = UnownedStringSlice{"PayloadNodeNameAMDX"}; return true;
            case 5248: v = UnownedStringSlice{"OverrideCoverageNV"}; return true;
            case 5250: v = UnownedStringSlice{"PassthroughNV"}; return true;
            case 5252: v = UnownedStringSlice{"ViewportRelativeNV"}; return true;
            case 5256: v = UnownedStringSlice{"SecondaryViewportRelativeNV"}; return true;
            case 5271: v = UnownedStringSlice{"PerPrimitiveNV"}; return true;
            case 5272: v = UnownedStringSlice{"PerViewNV"}; return true;
            case 5273: v = UnownedStringSlice{"PerTaskNV"}; return true;
            case 5285: v = UnownedStringSlice{"PerVertexKHR"}; return true;
            case 5300: v = UnownedStringSlice{"NonUniform"}; return true;
            case 5355: v = UnownedStringSlice{"RestrictPointer"}; return true;
            case 5356: v = UnownedStringSlice{"AliasedPointer"}; return true;
            case 5386: v = UnownedStringSlice{"HitObjectShaderRecordBufferNV"}; return true;
            case 5398: v = UnownedStringSlice{"BindlessSamplerNV"}; return true;
            case 5399: v = UnownedStringSlice{"BindlessImageNV"}; return true;
            case 5400: v = UnownedStringSlice{"BoundSamplerNV"}; return true;
            case 5401: v = UnownedStringSlice{"BoundImageNV"}; return true;
            case 5599: v = UnownedStringSlice{"SIMTCallINTEL"}; return true;
            case 5602: v = UnownedStringSlice{"ReferencedIndirectlyINTEL"}; return true;
            case 5607: v = UnownedStringSlice{"ClobberINTEL"}; return true;
            case 5608: v = UnownedStringSlice{"SideEffectsINTEL"}; return true;
            case 5624: v = UnownedStringSlice{"VectorComputeVariableINTEL"}; return true;
            case 5625: v = UnownedStringSlice{"FuncParamIOKindINTEL"}; return true;
            case 5626: v = UnownedStringSlice{"VectorComputeFunctionINTEL"}; return true;
            case 5627: v = UnownedStringSlice{"StackCallINTEL"}; return true;
            case 5628: v = UnownedStringSlice{"GlobalVariableOffsetINTEL"}; return true;
            case 5634: v = UnownedStringSlice{"CounterBuffer"}; return true;
            case 5635: v = UnownedStringSlice{"UserSemantic"}; return true;
            case 5636: v = UnownedStringSlice{"UserTypeGOOGLE"}; return true;
            case 5822: v = UnownedStringSlice{"FunctionRoundingModeINTEL"}; return true;
            case 5823: v = UnownedStringSlice{"FunctionDenormModeINTEL"}; return true;
            case 5825: v = UnownedStringSlice{"RegisterINTEL"}; return true;
            case 5826: v = UnownedStringSlice{"MemoryINTEL"}; return true;
            case 5827: v = UnownedStringSlice{"NumbanksINTEL"}; return true;
            case 5828: v = UnownedStringSlice{"BankwidthINTEL"}; return true;
            case 5829: v = UnownedStringSlice{"MaxPrivateCopiesINTEL"}; return true;
            case 5830: v = UnownedStringSlice{"SinglepumpINTEL"}; return true;
            case 5831: v = UnownedStringSlice{"DoublepumpINTEL"}; return true;
            case 5832: v = UnownedStringSlice{"MaxReplicatesINTEL"}; return true;
            case 5833: v = UnownedStringSlice{"SimpleDualPortINTEL"}; return true;
            case 5834: v = UnownedStringSlice{"MergeINTEL"}; return true;
            case 5835: v = UnownedStringSlice{"BankBitsINTEL"}; return true;
            case 5836: v = UnownedStringSlice{"ForcePow2DepthINTEL"}; return true;
            case 5883: v = UnownedStringSlice{"StridesizeINTEL"}; return true;
            case 5884: v = UnownedStringSlice{"WordsizeINTEL"}; return true;
            case 5885: v = UnownedStringSlice{"TrueDualPortINTEL"}; return true;
            case 5899: v = UnownedStringSlice{"BurstCoalesceINTEL"}; return true;
            case 5900: v = UnownedStringSlice{"CacheSizeINTEL"}; return true;
            case 5901: v = UnownedStringSlice{"DontStaticallyCoalesceINTEL"}; return true;
            case 5902: v = UnownedStringSlice{"PrefetchINTEL"}; return true;
            case 5905: v = UnownedStringSlice{"StallEnableINTEL"}; return true;
            case 5907: v = UnownedStringSlice{"FuseLoopsInFunctionINTEL"}; return true;
            case 5909: v = UnownedStringSlice{"MathOpDSPModeINTEL"}; return true;
            case 5914: v = UnownedStringSlice{"AliasScopeINTEL"}; return true;
            case 5915: v = UnownedStringSlice{"NoAliasINTEL"}; return true;
            case 5917: v = UnownedStringSlice{"InitiationIntervalINTEL"}; return true;
            case 5918: v = UnownedStringSlice{"MaxConcurrencyINTEL"}; return true;
            case 5919: v = UnownedStringSlice{"PipelineEnableINTEL"}; return true;
            case 5921: v = UnownedStringSlice{"BufferLocationINTEL"}; return true;
            case 5944: v = UnownedStringSlice{"IOPipeStorageINTEL"}; return true;
            case 6080: v = UnownedStringSlice{"FunctionFloatingPointModeINTEL"}; return true;
            case 6085: v = UnownedStringSlice{"SingleElementVectorINTEL"}; return true;
            case 6087: v = UnownedStringSlice{"VectorComputeCallableFunctionINTEL"}; return true;
            case 6140: v = UnownedStringSlice{"MediaBlockIOINTEL"}; return true;
            case 6151: v = UnownedStringSlice{"StallFreeINTEL"}; return true;
            case 6170: v = UnownedStringSlice{"FPMaxErrorDecorationINTEL"}; return true;
            case 6172: v = UnownedStringSlice{"LatencyControlLabelINTEL"}; return true;
            case 6173: v = UnownedStringSlice{"LatencyControlConstraintINTEL"}; return true;
            case 6175: v = UnownedStringSlice{"ConduitKernelArgumentINTEL"}; return true;
            case 6176: v = UnownedStringSlice{"RegisterMapKernelArgumentINTEL"}; return true;
            case 6177: v = UnownedStringSlice{"MMHostInterfaceAddressWidthINTEL"}; return true;
            case 6178: v = UnownedStringSlice{"MMHostInterfaceDataWidthINTEL"}; return true;
            case 6179: v = UnownedStringSlice{"MMHostInterfaceLatencyINTEL"}; return true;
            case 6180: v = UnownedStringSlice{"MMHostInterfaceReadWriteModeINTEL"}; return true;
            case 6181: v = UnownedStringSlice{"MMHostInterfaceMaxBurstINTEL"}; return true;
            case 6182: v = UnownedStringSlice{"MMHostInterfaceWaitRequestINTEL"}; return true;
            case 6183: v = UnownedStringSlice{"StableKernelArgumentINTEL"}; return true;
            case 6188: v = UnownedStringSlice{"HostAccessINTEL"}; return true;
            case 6190: v = UnownedStringSlice{"InitModeINTEL"}; return true;
            case 6191: v = UnownedStringSlice{"ImplementInRegisterMapINTEL"}; return true;
            case 6442: v = UnownedStringSlice{"CacheControlLoadINTEL"}; return true;
            case 6443: v = UnownedStringSlice{"CacheControlStoreINTEL"}; return true;
            default: return false;
        }
        case 32:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Position"}; return true;
            case 1: v = UnownedStringSlice{"PointSize"}; return true;
            case 3: v = UnownedStringSlice{"ClipDistance"}; return true;
            case 4: v = UnownedStringSlice{"CullDistance"}; return true;
            case 5: v = UnownedStringSlice{"VertexId"}; return true;
            case 6: v = UnownedStringSlice{"InstanceId"}; return true;
            case 7: v = UnownedStringSlice{"PrimitiveId"}; return true;
            case 8: v = UnownedStringSlice{"InvocationId"}; return true;
            case 9: v = UnownedStringSlice{"Layer"}; return true;
            case 10: v = UnownedStringSlice{"ViewportIndex"}; return true;
            case 11: v = UnownedStringSlice{"TessLevelOuter"}; return true;
            case 12: v = UnownedStringSlice{"TessLevelInner"}; return true;
            case 13: v = UnownedStringSlice{"TessCoord"}; return true;
            case 14: v = UnownedStringSlice{"PatchVertices"}; return true;
            case 15: v = UnownedStringSlice{"FragCoord"}; return true;
            case 16: v = UnownedStringSlice{"PointCoord"}; return true;
            case 17: v = UnownedStringSlice{"FrontFacing"}; return true;
            case 18: v = UnownedStringSlice{"SampleId"}; return true;
            case 19: v = UnownedStringSlice{"SamplePosition"}; return true;
            case 20: v = UnownedStringSlice{"SampleMask"}; return true;
            case 22: v = UnownedStringSlice{"FragDepth"}; return true;
            case 23: v = UnownedStringSlice{"HelperInvocation"}; return true;
            case 24: v = UnownedStringSlice{"NumWorkgroups"}; return true;
            case 25: v = UnownedStringSlice{"WorkgroupSize"}; return true;
            case 26: v = UnownedStringSlice{"WorkgroupId"}; return true;
            case 27: v = UnownedStringSlice{"LocalInvocationId"}; return true;
            case 28: v = UnownedStringSlice{"GlobalInvocationId"}; return true;
            case 29: v = UnownedStringSlice{"LocalInvocationIndex"}; return true;
            case 30: v = UnownedStringSlice{"WorkDim"}; return true;
            case 31: v = UnownedStringSlice{"GlobalSize"}; return true;
            case 32: v = UnownedStringSlice{"EnqueuedWorkgroupSize"}; return true;
            case 33: v = UnownedStringSlice{"GlobalOffset"}; return true;
            case 34: v = UnownedStringSlice{"GlobalLinearId"}; return true;
            case 36: v = UnownedStringSlice{"SubgroupSize"}; return true;
            case 37: v = UnownedStringSlice{"SubgroupMaxSize"}; return true;
            case 38: v = UnownedStringSlice{"NumSubgroups"}; return true;
            case 39: v = UnownedStringSlice{"NumEnqueuedSubgroups"}; return true;
            case 40: v = UnownedStringSlice{"SubgroupId"}; return true;
            case 41: v = UnownedStringSlice{"SubgroupLocalInvocationId"}; return true;
            case 42: v = UnownedStringSlice{"VertexIndex"}; return true;
            case 43: v = UnownedStringSlice{"InstanceIndex"}; return true;
            case 4160: v = UnownedStringSlice{"CoreIDARM"}; return true;
            case 4161: v = UnownedStringSlice{"CoreCountARM"}; return true;
            case 4162: v = UnownedStringSlice{"CoreMaxIDARM"}; return true;
            case 4163: v = UnownedStringSlice{"WarpIDARM"}; return true;
            case 4164: v = UnownedStringSlice{"WarpMaxIDARM"}; return true;
            case 4416: v = UnownedStringSlice{"SubgroupEqMask"}; return true;
            case 4417: v = UnownedStringSlice{"SubgroupGeMask"}; return true;
            case 4418: v = UnownedStringSlice{"SubgroupGtMask"}; return true;
            case 4419: v = UnownedStringSlice{"SubgroupLeMask"}; return true;
            case 4420: v = UnownedStringSlice{"SubgroupLtMask"}; return true;
            case 4424: v = UnownedStringSlice{"BaseVertex"}; return true;
            case 4425: v = UnownedStringSlice{"BaseInstance"}; return true;
            case 4426: v = UnownedStringSlice{"DrawIndex"}; return true;
            case 4432: v = UnownedStringSlice{"PrimitiveShadingRateKHR"}; return true;
            case 4438: v = UnownedStringSlice{"DeviceIndex"}; return true;
            case 4440: v = UnownedStringSlice{"ViewIndex"}; return true;
            case 4444: v = UnownedStringSlice{"ShadingRateKHR"}; return true;
            case 4992: v = UnownedStringSlice{"BaryCoordNoPerspAMD"}; return true;
            case 4993: v = UnownedStringSlice{"BaryCoordNoPerspCentroidAMD"}; return true;
            case 4994: v = UnownedStringSlice{"BaryCoordNoPerspSampleAMD"}; return true;
            case 4995: v = UnownedStringSlice{"BaryCoordSmoothAMD"}; return true;
            case 4996: v = UnownedStringSlice{"BaryCoordSmoothCentroidAMD"}; return true;
            case 4997: v = UnownedStringSlice{"BaryCoordSmoothSampleAMD"}; return true;
            case 4998: v = UnownedStringSlice{"BaryCoordPullModelAMD"}; return true;
            case 5014: v = UnownedStringSlice{"FragStencilRefEXT"}; return true;
            case 5021: v = UnownedStringSlice{"CoalescedInputCountAMDX"}; return true;
            case 5073: v = UnownedStringSlice{"ShaderIndexAMDX"}; return true;
            case 5253: v = UnownedStringSlice{"ViewportMaskNV"}; return true;
            case 5257: v = UnownedStringSlice{"SecondaryPositionNV"}; return true;
            case 5258: v = UnownedStringSlice{"SecondaryViewportMaskNV"}; return true;
            case 5261: v = UnownedStringSlice{"PositionPerViewNV"}; return true;
            case 5262: v = UnownedStringSlice{"ViewportMaskPerViewNV"}; return true;
            case 5264: v = UnownedStringSlice{"FullyCoveredEXT"}; return true;
            case 5274: v = UnownedStringSlice{"TaskCountNV"}; return true;
            case 5275: v = UnownedStringSlice{"PrimitiveCountNV"}; return true;
            case 5276: v = UnownedStringSlice{"PrimitiveIndicesNV"}; return true;
            case 5277: v = UnownedStringSlice{"ClipDistancePerViewNV"}; return true;
            case 5278: v = UnownedStringSlice{"CullDistancePerViewNV"}; return true;
            case 5279: v = UnownedStringSlice{"LayerPerViewNV"}; return true;
            case 5280: v = UnownedStringSlice{"MeshViewCountNV"}; return true;
            case 5281: v = UnownedStringSlice{"MeshViewIndicesNV"}; return true;
            case 5286: v = UnownedStringSlice{"BaryCoordKHR"}; return true;
            case 5287: v = UnownedStringSlice{"BaryCoordNoPerspKHR"}; return true;
            case 5292: v = UnownedStringSlice{"FragSizeEXT"}; return true;
            case 5293: v = UnownedStringSlice{"FragInvocationCountEXT"}; return true;
            case 5294: v = UnownedStringSlice{"PrimitivePointIndicesEXT"}; return true;
            case 5295: v = UnownedStringSlice{"PrimitiveLineIndicesEXT"}; return true;
            case 5296: v = UnownedStringSlice{"PrimitiveTriangleIndicesEXT"}; return true;
            case 5299: v = UnownedStringSlice{"CullPrimitiveEXT"}; return true;
            case 5319: v = UnownedStringSlice{"LaunchIdNV"}; return true;
            case 5320: v = UnownedStringSlice{"LaunchSizeNV"}; return true;
            case 5321: v = UnownedStringSlice{"WorldRayOriginNV"}; return true;
            case 5322: v = UnownedStringSlice{"WorldRayDirectionNV"}; return true;
            case 5323: v = UnownedStringSlice{"ObjectRayOriginNV"}; return true;
            case 5324: v = UnownedStringSlice{"ObjectRayDirectionNV"}; return true;
            case 5325: v = UnownedStringSlice{"RayTminNV"}; return true;
            case 5326: v = UnownedStringSlice{"RayTmaxNV"}; return true;
            case 5327: v = UnownedStringSlice{"InstanceCustomIndexNV"}; return true;
            case 5330: v = UnownedStringSlice{"ObjectToWorldNV"}; return true;
            case 5331: v = UnownedStringSlice{"WorldToObjectNV"}; return true;
            case 5332: v = UnownedStringSlice{"HitTNV"}; return true;
            case 5333: v = UnownedStringSlice{"HitKindNV"}; return true;
            case 5334: v = UnownedStringSlice{"CurrentRayTimeNV"}; return true;
            case 5335: v = UnownedStringSlice{"HitTriangleVertexPositionsKHR"}; return true;
            case 5337: v = UnownedStringSlice{"HitMicroTriangleVertexPositionsNV"}; return true;
            case 5344: v = UnownedStringSlice{"HitMicroTriangleVertexBarycentricsNV"}; return true;
            case 5351: v = UnownedStringSlice{"IncomingRayFlagsNV"}; return true;
            case 5352: v = UnownedStringSlice{"RayGeometryIndexKHR"}; return true;
            case 5374: v = UnownedStringSlice{"WarpsPerSMNV"}; return true;
            case 5375: v = UnownedStringSlice{"SMCountNV"}; return true;
            case 5376: v = UnownedStringSlice{"WarpIDNV"}; return true;
            case 5377: v = UnownedStringSlice{"SMIDNV"}; return true;
            case 5405: v = UnownedStringSlice{"HitKindFrontFacingMicroTriangleNV"}; return true;
            case 5406: v = UnownedStringSlice{"HitKindBackFacingMicroTriangleNV"}; return true;
            case 6021: v = UnownedStringSlice{"CullMaskKHR"}; return true;
            default: return false;
        }
        case 33:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"CrossDevice"}; return true;
            case 1: v = UnownedStringSlice{"Device"}; return true;
            case 2: v = UnownedStringSlice{"Workgroup"}; return true;
            case 3: v = UnownedStringSlice{"Subgroup"}; return true;
            case 4: v = UnownedStringSlice{"Invocation"}; return true;
            case 5: v = UnownedStringSlice{"QueueFamily"}; return true;
            case 6: v = UnownedStringSlice{"ShaderCallKHR"}; return true;
            default: return false;
        }
        case 34:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Reduce"}; return true;
            case 1: v = UnownedStringSlice{"InclusiveScan"}; return true;
            case 2: v = UnownedStringSlice{"ExclusiveScan"}; return true;
            case 3: v = UnownedStringSlice{"ClusteredReduce"}; return true;
            case 6: v = UnownedStringSlice{"PartitionedReduceNV"}; return true;
            case 7: v = UnownedStringSlice{"PartitionedInclusiveScanNV"}; return true;
            case 8: v = UnownedStringSlice{"PartitionedExclusiveScanNV"}; return true;
            default: return false;
        }
        case 35:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"NoWait"}; return true;
            case 1: v = UnownedStringSlice{"WaitKernel"}; return true;
            case 2: v = UnownedStringSlice{"WaitWorkGroup"}; return true;
            default: return false;
        }
        case 36:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"Matrix"}; return true;
            case 1: v = UnownedStringSlice{"Shader"}; return true;
            case 2: v = UnownedStringSlice{"Geometry"}; return true;
            case 3: v = UnownedStringSlice{"Tessellation"}; return true;
            case 4: v = UnownedStringSlice{"Addresses"}; return true;
            case 5: v = UnownedStringSlice{"Linkage"}; return true;
            case 6: v = UnownedStringSlice{"Kernel"}; return true;
            case 7: v = UnownedStringSlice{"Vector16"}; return true;
            case 8: v = UnownedStringSlice{"Float16Buffer"}; return true;
            case 9: v = UnownedStringSlice{"Float16"}; return true;
            case 10: v = UnownedStringSlice{"Float64"}; return true;
            case 11: v = UnownedStringSlice{"Int64"}; return true;
            case 12: v = UnownedStringSlice{"Int64Atomics"}; return true;
            case 13: v = UnownedStringSlice{"ImageBasic"}; return true;
            case 14: v = UnownedStringSlice{"ImageReadWrite"}; return true;
            case 15: v = UnownedStringSlice{"ImageMipmap"}; return true;
            case 17: v = UnownedStringSlice{"Pipes"}; return true;
            case 18: v = UnownedStringSlice{"Groups"}; return true;
            case 19: v = UnownedStringSlice{"DeviceEnqueue"}; return true;
            case 20: v = UnownedStringSlice{"LiteralSampler"}; return true;
            case 21: v = UnownedStringSlice{"AtomicStorage"}; return true;
            case 22: v = UnownedStringSlice{"Int16"}; return true;
            case 23: v = UnownedStringSlice{"TessellationPointSize"}; return true;
            case 24: v = UnownedStringSlice{"GeometryPointSize"}; return true;
            case 25: v = UnownedStringSlice{"ImageGatherExtended"}; return true;
            case 27: v = UnownedStringSlice{"StorageImageMultisample"}; return true;
            case 28: v = UnownedStringSlice{"UniformBufferArrayDynamicIndexing"}; return true;
            case 29: v = UnownedStringSlice{"SampledImageArrayDynamicIndexing"}; return true;
            case 30: v = UnownedStringSlice{"StorageBufferArrayDynamicIndexing"}; return true;
            case 31: v = UnownedStringSlice{"StorageImageArrayDynamicIndexing"}; return true;
            case 32: v = UnownedStringSlice{"ClipDistance"}; return true;
            case 33: v = UnownedStringSlice{"CullDistance"}; return true;
            case 34: v = UnownedStringSlice{"ImageCubeArray"}; return true;
            case 35: v = UnownedStringSlice{"SampleRateShading"}; return true;
            case 36: v = UnownedStringSlice{"ImageRect"}; return true;
            case 37: v = UnownedStringSlice{"SampledRect"}; return true;
            case 38: v = UnownedStringSlice{"GenericPointer"}; return true;
            case 39: v = UnownedStringSlice{"Int8"}; return true;
            case 40: v = UnownedStringSlice{"InputAttachment"}; return true;
            case 41: v = UnownedStringSlice{"SparseResidency"}; return true;
            case 42: v = UnownedStringSlice{"MinLod"}; return true;
            case 43: v = UnownedStringSlice{"Sampled1D"}; return true;
            case 44: v = UnownedStringSlice{"Image1D"}; return true;
            case 45: v = UnownedStringSlice{"SampledCubeArray"}; return true;
            case 46: v = UnownedStringSlice{"SampledBuffer"}; return true;
            case 47: v = UnownedStringSlice{"ImageBuffer"}; return true;
            case 48: v = UnownedStringSlice{"ImageMSArray"}; return true;
            case 49: v = UnownedStringSlice{"StorageImageExtendedFormats"}; return true;
            case 50: v = UnownedStringSlice{"ImageQuery"}; return true;
            case 51: v = UnownedStringSlice{"DerivativeControl"}; return true;
            case 52: v = UnownedStringSlice{"InterpolationFunction"}; return true;
            case 53: v = UnownedStringSlice{"TransformFeedback"}; return true;
            case 54: v = UnownedStringSlice{"GeometryStreams"}; return true;
            case 55: v = UnownedStringSlice{"StorageImageReadWithoutFormat"}; return true;
            case 56: v = UnownedStringSlice{"StorageImageWriteWithoutFormat"}; return true;
            case 57: v = UnownedStringSlice{"MultiViewport"}; return true;
            case 58: v = UnownedStringSlice{"SubgroupDispatch"}; return true;
            case 59: v = UnownedStringSlice{"NamedBarrier"}; return true;
            case 60: v = UnownedStringSlice{"PipeStorage"}; return true;
            case 61: v = UnownedStringSlice{"GroupNonUniform"}; return true;
            case 62: v = UnownedStringSlice{"GroupNonUniformVote"}; return true;
            case 63: v = UnownedStringSlice{"GroupNonUniformArithmetic"}; return true;
            case 64: v = UnownedStringSlice{"GroupNonUniformBallot"}; return true;
            case 65: v = UnownedStringSlice{"GroupNonUniformShuffle"}; return true;
            case 66: v = UnownedStringSlice{"GroupNonUniformShuffleRelative"}; return true;
            case 67: v = UnownedStringSlice{"GroupNonUniformClustered"}; return true;
            case 68: v = UnownedStringSlice{"GroupNonUniformQuad"}; return true;
            case 69: v = UnownedStringSlice{"ShaderLayer"}; return true;
            case 70: v = UnownedStringSlice{"ShaderViewportIndex"}; return true;
            case 71: v = UnownedStringSlice{"UniformDecoration"}; return true;
            case 4165: v = UnownedStringSlice{"CoreBuiltinsARM"}; return true;
            case 4166: v = UnownedStringSlice{"TileImageColorReadAccessEXT"}; return true;
            case 4167: v = UnownedStringSlice{"TileImageDepthReadAccessEXT"}; return true;
            case 4168: v = UnownedStringSlice{"TileImageStencilReadAccessEXT"}; return true;
            case 4422: v = UnownedStringSlice{"FragmentShadingRateKHR"}; return true;
            case 4423: v = UnownedStringSlice{"SubgroupBallotKHR"}; return true;
            case 4427: v = UnownedStringSlice{"DrawParameters"}; return true;
            case 4428: v = UnownedStringSlice{"WorkgroupMemoryExplicitLayoutKHR"}; return true;
            case 4429: v = UnownedStringSlice{"WorkgroupMemoryExplicitLayout8BitAccessKHR"}; return true;
            case 4430: v = UnownedStringSlice{"WorkgroupMemoryExplicitLayout16BitAccessKHR"}; return true;
            case 4431: v = UnownedStringSlice{"SubgroupVoteKHR"}; return true;
            case 4433: v = UnownedStringSlice{"StorageBuffer16BitAccess"}; return true;
            case 4434: v = UnownedStringSlice{"UniformAndStorageBuffer16BitAccess"}; return true;
            case 4435: v = UnownedStringSlice{"StoragePushConstant16"}; return true;
            case 4436: v = UnownedStringSlice{"StorageInputOutput16"}; return true;
            case 4437: v = UnownedStringSlice{"DeviceGroup"}; return true;
            case 4439: v = UnownedStringSlice{"MultiView"}; return true;
            case 4441: v = UnownedStringSlice{"VariablePointersStorageBuffer"}; return true;
            case 4442: v = UnownedStringSlice{"VariablePointers"}; return true;
            case 4445: v = UnownedStringSlice{"AtomicStorageOps"}; return true;
            case 4447: v = UnownedStringSlice{"SampleMaskPostDepthCoverage"}; return true;
            case 4448: v = UnownedStringSlice{"StorageBuffer8BitAccess"}; return true;
            case 4449: v = UnownedStringSlice{"UniformAndStorageBuffer8BitAccess"}; return true;
            case 4450: v = UnownedStringSlice{"StoragePushConstant8"}; return true;
            case 4464: v = UnownedStringSlice{"DenormPreserve"}; return true;
            case 4465: v = UnownedStringSlice{"DenormFlushToZero"}; return true;
            case 4466: v = UnownedStringSlice{"SignedZeroInfNanPreserve"}; return true;
            case 4467: v = UnownedStringSlice{"RoundingModeRTE"}; return true;
            case 4468: v = UnownedStringSlice{"RoundingModeRTZ"}; return true;
            case 4471: v = UnownedStringSlice{"RayQueryProvisionalKHR"}; return true;
            case 4472: v = UnownedStringSlice{"RayQueryKHR"}; return true;
            case 4478: v = UnownedStringSlice{"RayTraversalPrimitiveCullingKHR"}; return true;
            case 4479: v = UnownedStringSlice{"RayTracingKHR"}; return true;
            case 4484: v = UnownedStringSlice{"TextureSampleWeightedQCOM"}; return true;
            case 4485: v = UnownedStringSlice{"TextureBoxFilterQCOM"}; return true;
            case 4486: v = UnownedStringSlice{"TextureBlockMatchQCOM"}; return true;
            case 5008: v = UnownedStringSlice{"Float16ImageAMD"}; return true;
            case 5009: v = UnownedStringSlice{"ImageGatherBiasLodAMD"}; return true;
            case 5010: v = UnownedStringSlice{"FragmentMaskAMD"}; return true;
            case 5013: v = UnownedStringSlice{"StencilExportEXT"}; return true;
            case 5015: v = UnownedStringSlice{"ImageReadWriteLodAMD"}; return true;
            case 5016: v = UnownedStringSlice{"Int64ImageEXT"}; return true;
            case 5055: v = UnownedStringSlice{"ShaderClockKHR"}; return true;
            case 5067: v = UnownedStringSlice{"ShaderEnqueueAMDX"}; return true;
            case 5249: v = UnownedStringSlice{"SampleMaskOverrideCoverageNV"}; return true;
            case 5251: v = UnownedStringSlice{"GeometryShaderPassthroughNV"}; return true;
            case 5254: v = UnownedStringSlice{"ShaderViewportIndexLayerEXT"}; return true;
            case 5255: v = UnownedStringSlice{"ShaderViewportMaskNV"}; return true;
            case 5259: v = UnownedStringSlice{"ShaderStereoViewNV"}; return true;
            case 5260: v = UnownedStringSlice{"PerViewAttributesNV"}; return true;
            case 5265: v = UnownedStringSlice{"FragmentFullyCoveredEXT"}; return true;
            case 5266: v = UnownedStringSlice{"MeshShadingNV"}; return true;
            case 5282: v = UnownedStringSlice{"ImageFootprintNV"}; return true;
            case 5283: v = UnownedStringSlice{"MeshShadingEXT"}; return true;
            case 5284: v = UnownedStringSlice{"FragmentBarycentricKHR"}; return true;
            case 5288: v = UnownedStringSlice{"ComputeDerivativeGroupQuadsNV"}; return true;
            case 5291: v = UnownedStringSlice{"FragmentDensityEXT"}; return true;
            case 5297: v = UnownedStringSlice{"GroupNonUniformPartitionedNV"}; return true;
            case 5301: v = UnownedStringSlice{"ShaderNonUniform"}; return true;
            case 5302: v = UnownedStringSlice{"RuntimeDescriptorArray"}; return true;
            case 5303: v = UnownedStringSlice{"InputAttachmentArrayDynamicIndexing"}; return true;
            case 5304: v = UnownedStringSlice{"UniformTexelBufferArrayDynamicIndexing"}; return true;
            case 5305: v = UnownedStringSlice{"StorageTexelBufferArrayDynamicIndexing"}; return true;
            case 5306: v = UnownedStringSlice{"UniformBufferArrayNonUniformIndexing"}; return true;
            case 5307: v = UnownedStringSlice{"SampledImageArrayNonUniformIndexing"}; return true;
            case 5308: v = UnownedStringSlice{"StorageBufferArrayNonUniformIndexing"}; return true;
            case 5309: v = UnownedStringSlice{"StorageImageArrayNonUniformIndexing"}; return true;
            case 5310: v = UnownedStringSlice{"InputAttachmentArrayNonUniformIndexing"}; return true;
            case 5311: v = UnownedStringSlice{"UniformTexelBufferArrayNonUniformIndexing"}; return true;
            case 5312: v = UnownedStringSlice{"StorageTexelBufferArrayNonUniformIndexing"}; return true;
            case 5336: v = UnownedStringSlice{"RayTracingPositionFetchKHR"}; return true;
            case 5340: v = UnownedStringSlice{"RayTracingNV"}; return true;
            case 5341: v = UnownedStringSlice{"RayTracingMotionBlurNV"}; return true;
            case 5345: v = UnownedStringSlice{"VulkanMemoryModel"}; return true;
            case 5346: v = UnownedStringSlice{"VulkanMemoryModelDeviceScope"}; return true;
            case 5347: v = UnownedStringSlice{"PhysicalStorageBufferAddresses"}; return true;
            case 5350: v = UnownedStringSlice{"ComputeDerivativeGroupLinearNV"}; return true;
            case 5353: v = UnownedStringSlice{"RayTracingProvisionalKHR"}; return true;
            case 5357: v = UnownedStringSlice{"CooperativeMatrixNV"}; return true;
            case 5363: v = UnownedStringSlice{"FragmentShaderSampleInterlockEXT"}; return true;
            case 5372: v = UnownedStringSlice{"FragmentShaderShadingRateInterlockEXT"}; return true;
            case 5373: v = UnownedStringSlice{"ShaderSMBuiltinsNV"}; return true;
            case 5378: v = UnownedStringSlice{"FragmentShaderPixelInterlockEXT"}; return true;
            case 5379: v = UnownedStringSlice{"DemoteToHelperInvocation"}; return true;
            case 5380: v = UnownedStringSlice{"DisplacementMicromapNV"}; return true;
            case 5381: v = UnownedStringSlice{"RayTracingOpacityMicromapEXT"}; return true;
            case 5383: v = UnownedStringSlice{"ShaderInvocationReorderNV"}; return true;
            case 5390: v = UnownedStringSlice{"BindlessTextureNV"}; return true;
            case 5391: v = UnownedStringSlice{"RayQueryPositionFetchKHR"}; return true;
            case 5409: v = UnownedStringSlice{"RayTracingDisplacementMicromapNV"}; return true;
            case 5568: v = UnownedStringSlice{"SubgroupShuffleINTEL"}; return true;
            case 5569: v = UnownedStringSlice{"SubgroupBufferBlockIOINTEL"}; return true;
            case 5570: v = UnownedStringSlice{"SubgroupImageBlockIOINTEL"}; return true;
            case 5579: v = UnownedStringSlice{"SubgroupImageMediaBlockIOINTEL"}; return true;
            case 5582: v = UnownedStringSlice{"RoundToInfinityINTEL"}; return true;
            case 5583: v = UnownedStringSlice{"FloatingPointModeINTEL"}; return true;
            case 5584: v = UnownedStringSlice{"IntegerFunctions2INTEL"}; return true;
            case 5603: v = UnownedStringSlice{"FunctionPointersINTEL"}; return true;
            case 5604: v = UnownedStringSlice{"IndirectReferencesINTEL"}; return true;
            case 5606: v = UnownedStringSlice{"AsmINTEL"}; return true;
            case 5612: v = UnownedStringSlice{"AtomicFloat32MinMaxEXT"}; return true;
            case 5613: v = UnownedStringSlice{"AtomicFloat64MinMaxEXT"}; return true;
            case 5616: v = UnownedStringSlice{"AtomicFloat16MinMaxEXT"}; return true;
            case 5617: v = UnownedStringSlice{"VectorComputeINTEL"}; return true;
            case 5619: v = UnownedStringSlice{"VectorAnyINTEL"}; return true;
            case 5629: v = UnownedStringSlice{"ExpectAssumeKHR"}; return true;
            case 5696: v = UnownedStringSlice{"SubgroupAvcMotionEstimationINTEL"}; return true;
            case 5697: v = UnownedStringSlice{"SubgroupAvcMotionEstimationIntraINTEL"}; return true;
            case 5698: v = UnownedStringSlice{"SubgroupAvcMotionEstimationChromaINTEL"}; return true;
            case 5817: v = UnownedStringSlice{"VariableLengthArrayINTEL"}; return true;
            case 5821: v = UnownedStringSlice{"FunctionFloatControlINTEL"}; return true;
            case 5824: v = UnownedStringSlice{"FPGAMemoryAttributesINTEL"}; return true;
            case 5837: v = UnownedStringSlice{"FPFastMathModeINTEL"}; return true;
            case 5844: v = UnownedStringSlice{"ArbitraryPrecisionIntegersINTEL"}; return true;
            case 5845: v = UnownedStringSlice{"ArbitraryPrecisionFloatingPointINTEL"}; return true;
            case 5886: v = UnownedStringSlice{"UnstructuredLoopControlsINTEL"}; return true;
            case 5888: v = UnownedStringSlice{"FPGALoopControlsINTEL"}; return true;
            case 5892: v = UnownedStringSlice{"KernelAttributesINTEL"}; return true;
            case 5897: v = UnownedStringSlice{"FPGAKernelAttributesINTEL"}; return true;
            case 5898: v = UnownedStringSlice{"FPGAMemoryAccessesINTEL"}; return true;
            case 5904: v = UnownedStringSlice{"FPGAClusterAttributesINTEL"}; return true;
            case 5906: v = UnownedStringSlice{"LoopFuseINTEL"}; return true;
            case 5908: v = UnownedStringSlice{"FPGADSPControlINTEL"}; return true;
            case 5910: v = UnownedStringSlice{"MemoryAccessAliasingINTEL"}; return true;
            case 5916: v = UnownedStringSlice{"FPGAInvocationPipeliningAttributesINTEL"}; return true;
            case 5920: v = UnownedStringSlice{"FPGABufferLocationINTEL"}; return true;
            case 5922: v = UnownedStringSlice{"ArbitraryPrecisionFixedPointINTEL"}; return true;
            case 5935: v = UnownedStringSlice{"USMStorageClassesINTEL"}; return true;
            case 5939: v = UnownedStringSlice{"RuntimeAlignedAttributeINTEL"}; return true;
            case 5943: v = UnownedStringSlice{"IOPipesINTEL"}; return true;
            case 5945: v = UnownedStringSlice{"BlockingPipesINTEL"}; return true;
            case 5948: v = UnownedStringSlice{"FPGARegINTEL"}; return true;
            case 6016: v = UnownedStringSlice{"DotProductInputAll"}; return true;
            case 6017: v = UnownedStringSlice{"DotProductInput4x8Bit"}; return true;
            case 6018: v = UnownedStringSlice{"DotProductInput4x8BitPacked"}; return true;
            case 6019: v = UnownedStringSlice{"DotProduct"}; return true;
            case 6020: v = UnownedStringSlice{"RayCullMaskKHR"}; return true;
            case 6022: v = UnownedStringSlice{"CooperativeMatrixKHR"}; return true;
            case 6025: v = UnownedStringSlice{"BitInstructions"}; return true;
            case 6026: v = UnownedStringSlice{"GroupNonUniformRotateKHR"}; return true;
            case 6033: v = UnownedStringSlice{"AtomicFloat32AddEXT"}; return true;
            case 6034: v = UnownedStringSlice{"AtomicFloat64AddEXT"}; return true;
            case 6089: v = UnownedStringSlice{"LongCompositesINTEL"}; return true;
            case 6094: v = UnownedStringSlice{"OptNoneINTEL"}; return true;
            case 6095: v = UnownedStringSlice{"AtomicFloat16AddEXT"}; return true;
            case 6114: v = UnownedStringSlice{"DebugInfoModuleINTEL"}; return true;
            case 6115: v = UnownedStringSlice{"BFloat16ConversionINTEL"}; return true;
            case 6141: v = UnownedStringSlice{"SplitBarrierINTEL"}; return true;
            case 6150: v = UnownedStringSlice{"FPGAClusterAttributesV2INTEL"}; return true;
            case 6161: v = UnownedStringSlice{"FPGAKernelAttributesv2INTEL"}; return true;
            case 6169: v = UnownedStringSlice{"FPMaxErrorINTEL"}; return true;
            case 6171: v = UnownedStringSlice{"FPGALatencyControlINTEL"}; return true;
            case 6174: v = UnownedStringSlice{"FPGAArgumentInterfacesINTEL"}; return true;
            case 6187: v = UnownedStringSlice{"GlobalVariableHostAccessINTEL"}; return true;
            case 6189: v = UnownedStringSlice{"GlobalVariableFPGADecorationsINTEL"}; return true;
            case 6400: v = UnownedStringSlice{"GroupUniformArithmeticKHR"}; return true;
            case 6441: v = UnownedStringSlice{"CacheControlsINTEL"}; return true;
            default: return false;
        }
        case 37:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"RayQueryCandidateIntersectionKHR"}; return true;
            case 1: v = UnownedStringSlice{"RayQueryCommittedIntersectionKHR"}; return true;
            default: return false;
        }
        case 38:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"RayQueryCommittedIntersectionNoneKHR"}; return true;
            case 1: v = UnownedStringSlice{"RayQueryCommittedIntersectionTriangleKHR"}; return true;
            case 2: v = UnownedStringSlice{"RayQueryCommittedIntersectionGeneratedKHR"}; return true;
            default: return false;
        }
        case 39:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"RayQueryCandidateIntersectionTriangleKHR"}; return true;
            case 1: v = UnownedStringSlice{"RayQueryCandidateIntersectionAABBKHR"}; return true;
            default: return false;
        }
        case 40:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"PackedVectorFormat4x8Bit"}; return true;
            default: return false;
        }
        case 41:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"NoneKHR"}; return true;
            case 1: v = UnownedStringSlice{"MatrixASignedComponentsKHR"}; return true;
            case 2: v = UnownedStringSlice{"MatrixBSignedComponentsKHR"}; return true;
            case 4: v = UnownedStringSlice{"MatrixCSignedComponentsKHR"}; return true;
            case 8: v = UnownedStringSlice{"MatrixResultSignedComponentsKHR"}; return true;
            case 16: v = UnownedStringSlice{"SaturatingAccumulationKHR"}; return true;
            default: return false;
        }
        case 42:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"RowMajorKHR"}; return true;
            case 1: v = UnownedStringSlice{"ColumnMajorKHR"}; return true;
            default: return false;
        }
        case 43:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"MatrixAKHR"}; return true;
            case 1: v = UnownedStringSlice{"MatrixBKHR"}; return true;
            case 2: v = UnownedStringSlice{"MatrixAccumulatorKHR"}; return true;
            default: return false;
        }
        case 44:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"InitOnDeviceReprogramINTEL"}; return true;
            case 1: v = UnownedStringSlice{"InitOnDeviceResetINTEL"}; return true;
            default: return false;
        }
        case 45:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"UncachedINTEL"}; return true;
            case 1: v = UnownedStringSlice{"CachedINTEL"}; return true;
            case 2: v = UnownedStringSlice{"StreamingINTEL"}; return true;
            case 3: v = UnownedStringSlice{"InvalidateAfterReadINTEL"}; return true;
            case 4: v = UnownedStringSlice{"ConstCachedINTEL"}; return true;
            default: return false;
        }
        case 46:
        switch(k2)
        {
            case 0: v = UnownedStringSlice{"UncachedINTEL"}; return true;
            case 1: v = UnownedStringSlice{"WriteThroughINTEL"}; return true;
            case 2: v = UnownedStringSlice{"WriteBackINTEL"}; return true;
            case 3: v = UnownedStringSlice{"StreamingINTEL"}; return true;
            default: return false;
        }
        default: return false;
    }
}

static bool getOperandKindName(const OperandKind& k, UnownedStringSlice& v)
{
    switch(k.index)
    {
        case 0:
        {
            v = UnownedStringSlice{"ImageOperands"};
            return true;
        }
        case 1:
        {
            v = UnownedStringSlice{"FPFastMathMode"};
            return true;
        }
        case 2:
        {
            v = UnownedStringSlice{"SelectionControl"};
            return true;
        }
        case 3:
        {
            v = UnownedStringSlice{"LoopControl"};
            return true;
        }
        case 4:
        {
            v = UnownedStringSlice{"FunctionControl"};
            return true;
        }
        case 5:
        {
            v = UnownedStringSlice{"MemorySemantics"};
            return true;
        }
        case 6:
        {
            v = UnownedStringSlice{"MemoryAccess"};
            return true;
        }
        case 7:
        {
            v = UnownedStringSlice{"KernelProfilingInfo"};
            return true;
        }
        case 8:
        {
            v = UnownedStringSlice{"RayFlags"};
            return true;
        }
        case 9:
        {
            v = UnownedStringSlice{"FragmentShadingRate"};
            return true;
        }
        case 10:
        {
            v = UnownedStringSlice{"SourceLanguage"};
            return true;
        }
        case 11:
        {
            v = UnownedStringSlice{"ExecutionModel"};
            return true;
        }
        case 12:
        {
            v = UnownedStringSlice{"AddressingModel"};
            return true;
        }
        case 13:
        {
            v = UnownedStringSlice{"MemoryModel"};
            return true;
        }
        case 14:
        {
            v = UnownedStringSlice{"ExecutionMode"};
            return true;
        }
        case 15:
        {
            v = UnownedStringSlice{"StorageClass"};
            return true;
        }
        case 16:
        {
            v = UnownedStringSlice{"Dim"};
            return true;
        }
        case 17:
        {
            v = UnownedStringSlice{"SamplerAddressingMode"};
            return true;
        }
        case 18:
        {
            v = UnownedStringSlice{"SamplerFilterMode"};
            return true;
        }
        case 19:
        {
            v = UnownedStringSlice{"ImageFormat"};
            return true;
        }
        case 20:
        {
            v = UnownedStringSlice{"ImageChannelOrder"};
            return true;
        }
        case 21:
        {
            v = UnownedStringSlice{"ImageChannelDataType"};
            return true;
        }
        case 22:
        {
            v = UnownedStringSlice{"FPRoundingMode"};
            return true;
        }
        case 23:
        {
            v = UnownedStringSlice{"FPDenormMode"};
            return true;
        }
        case 24:
        {
            v = UnownedStringSlice{"QuantizationModes"};
            return true;
        }
        case 25:
        {
            v = UnownedStringSlice{"FPOperationMode"};
            return true;
        }
        case 26:
        {
            v = UnownedStringSlice{"OverflowModes"};
            return true;
        }
        case 27:
        {
            v = UnownedStringSlice{"LinkageType"};
            return true;
        }
        case 28:
        {
            v = UnownedStringSlice{"AccessQualifier"};
            return true;
        }
        case 29:
        {
            v = UnownedStringSlice{"HostAccessQualifier"};
            return true;
        }
        case 30:
        {
            v = UnownedStringSlice{"FunctionParameterAttribute"};
            return true;
        }
        case 31:
        {
            v = UnownedStringSlice{"Decoration"};
            return true;
        }
        case 32:
        {
            v = UnownedStringSlice{"BuiltIn"};
            return true;
        }
        case 33:
        {
            v = UnownedStringSlice{"Scope"};
            return true;
        }
        case 34:
        {
            v = UnownedStringSlice{"GroupOperation"};
            return true;
        }
        case 35:
        {
            v = UnownedStringSlice{"KernelEnqueueFlags"};
            return true;
        }
        case 36:
        {
            v = UnownedStringSlice{"Capability"};
            return true;
        }
        case 37:
        {
            v = UnownedStringSlice{"RayQueryIntersection"};
            return true;
        }
        case 38:
        {
            v = UnownedStringSlice{"RayQueryCommittedIntersectionType"};
            return true;
        }
        case 39:
        {
            v = UnownedStringSlice{"RayQueryCandidateIntersectionType"};
            return true;
        }
        case 40:
        {
            v = UnownedStringSlice{"PackedVectorFormat"};
            return true;
        }
        case 41:
        {
            v = UnownedStringSlice{"CooperativeMatrixOperands"};
            return true;
        }
        case 42:
        {
            v = UnownedStringSlice{"CooperativeMatrixLayout"};
            return true;
        }
        case 43:
        {
            v = UnownedStringSlice{"CooperativeMatrixUse"};
            return true;
        }
        case 44:
        {
            v = UnownedStringSlice{"InitializationModeQualifier"};
            return true;
        }
        case 45:
        {
            v = UnownedStringSlice{"LoadCacheControl"};
            return true;
        }
        case 46:
        {
            v = UnownedStringSlice{"StoreCacheControl"};
            return true;
        }
        case 47:
        {
            v = UnownedStringSlice{"IdResultType"};
            return true;
        }
        case 48:
        {
            v = UnownedStringSlice{"IdResult"};
            return true;
        }
        case 49:
        {
            v = UnownedStringSlice{"IdMemorySemantics"};
            return true;
        }
        case 50:
        {
            v = UnownedStringSlice{"IdScope"};
            return true;
        }
        case 51:
        {
            v = UnownedStringSlice{"IdRef"};
            return true;
        }
        case 52:
        {
            v = UnownedStringSlice{"LiteralInteger"};
            return true;
        }
        case 53:
        {
            v = UnownedStringSlice{"LiteralString"};
            return true;
        }
        case 54:
        {
            v = UnownedStringSlice{"LiteralFloat"};
            return true;
        }
        case 55:
        {
            v = UnownedStringSlice{"LiteralContextDependentNumber"};
            return true;
        }
        case 56:
        {
            v = UnownedStringSlice{"LiteralExtInstInteger"};
            return true;
        }
        case 57:
        {
            v = UnownedStringSlice{"LiteralSpecConstantOpInteger"};
            return true;
        }
        case 58:
        {
            v = UnownedStringSlice{"PairLiteralIntegerIdRef"};
            return true;
        }
        case 59:
        {
            v = UnownedStringSlice{"PairIdRefLiteralInteger"};
            return true;
        }
        case 60:
        {
            v = UnownedStringSlice{"PairIdRefIdRef"};
            return true;
        }
        default: return false;
    }
}

static bool getOperandKindUnderneathId(const OperandKind& k, OperandKind& v)
{
    switch(k.index)
    {
        case 49:
        {
            v = OperandKind{5};
            return true;
        }
        case 50:
        {
            v = OperandKind{33};
            return true;
        }
        default: return false;
    }
}

RefPtr<SPIRVCoreGrammarInfo> SPIRVCoreGrammarInfo::getEmbeddedVersion()
{
    static RefPtr<SPIRVCoreGrammarInfo> embedded = [](){
        RefPtr<SPIRVCoreGrammarInfo> info = new SPIRVCoreGrammarInfo();
        info->opcodes.embedded = &lookupSpvOp;
        info->capabilities.embedded = &lookupSpvCapability;
        info->allEnumsWithTypePrefix.embedded = &lookupEnumWithTypePrefix;
        info->opInfos.embedded = &getOpInfo;
        info->opNames.embedded = &getOpName;
        info->operandKinds.embedded = &lookupOperandKind;
        info->allEnums.embedded = &lookupQualifiedEnum;
        info->allEnumNames.embedded = &getQualifiedEnumName;
        info->operandKindNames.embedded = &getOperandKindName;
        info->operandKindUnderneathIds.embedded = &getOperandKindUnderneathId;
        return info;
    }();
    return embedded;
}
}
back to top