diff --git a/build/scripts/actions/spirv.lua b/build/scripts/actions/spirv.lua new file mode 100644 index 000000000..b47c81fa9 --- /dev/null +++ b/build/scripts/actions/spirv.lua @@ -0,0 +1,223 @@ +ACTION.Name = "UpdateSpirV" +ACTION.Description = "Download and parse the SpirV grammar and generate a .cpp file for it" + +local spirvGrammarURI = "https://raw.githubusercontent.com/KhronosGroup/SPIRV-Headers/master/include/spirv/unified1/spirv.core.grammar.json" + +ACTION.Function = function() + io.write("Downloading Spir-V grammar... ") + local content, resultStr, resultCode = http.get(spirvGrammarURI, { + headers = { "From: Premake", "Referer: Premake" } + }) + + if (resultCode ~= 200) then + error("Failed to download SpirV grammar: " .. resultStr) + end + + print("Done") + + local result, err = json.decode(content) + assert(result, err) + + local instructions = {} + local instructionById = {} + for _, instruction in pairs(result.instructions) do + local duplicateId = instructionById[instruction.opcode] + if (duplicateId == nil) then + table.insert(instructions, instruction) + instructionById[instruction.opcode] = #instructions + else + instructions[duplicateId] = instruction + end + end + + local operands = {} + local operandByInstruction = {} + for _, instruction in pairs(instructions) do + if (instruction.operands) then + local firstId = #operands + local operandCount = #instruction.operands + for _, operand in pairs(instruction.operands) do + table.insert(operands, operand) + end + + operandByInstruction[instruction.opcode] = { firstId = firstId, count = operandCount } + end + end + + local headerFile = io.open("../include/Nazara/Shader/SpirvData.hpp", "w+") + assert(headerFile, "failed to open Spir-V header") + + headerFile:write([[ +// Copyright (C) ]] .. os.date("%Y") .. [[ Jérôme Leclercq +// This file is part of the "Nazara Engine - Shader generator" +// For conditions of distribution and use, see copyright notice in Config.hpp" + +// This file was generated automatically, please do not edit + +#pragma once + +#ifndef NAZARA_SPIRVDATA_HPP +#define NAZARA_SPIRVDATA_HPP + +#include +#include + +namespace Nz +{ +]]) + + -- SpirV operations + headerFile:write([[ + enum class SpirvOp + { +]]) + + for _, instruction in pairs(result.instructions) do + headerFile:write("\t\t" .. instruction.opname .. " = " .. instruction.opcode .. ",\n") + end + +headerFile:write([[ + }; + +]]) + + -- SpirV operands + headerFile:write([[ + enum class SpirvOperandKind + { +]]) + + for _, operand in pairs(result.operand_kinds) do + headerFile:write("\t\t" .. operand.kind .. ",\n") + end + + headerFile:write([[ + }; + +]]) + + -- SpirV enums + for _, operand in pairs(result.operand_kinds) do + if (operand.category == "ValueEnum") then + headerFile:write([[ + enum class Spirv]] .. operand.kind .. [[ + + { +]]) + + for _, enumerant in pairs(operand.enumerants) do + local eName = enumerant.enumerant:match("^%d") and operand.kind .. enumerant.enumerant or enumerant.enumerant + headerFile:write([[ + ]] .. eName .. [[ = ]] .. enumerant.value .. [[, +]]) + end + + headerFile:write([[ + }; + +]]) + end + end + + -- Struct + headerFile:write([[ + struct SpirvInstruction + { + struct Operand + { + SpirvOperandKind kind; + const char* name; + }; + + SpirvOp op; + const char* name; + const Operand* operands; + std::size_t minOperandCount; + }; + +]]) + + -- Functions signatures + headerFile:write([[ + NAZARA_SHADER_API const SpirvInstruction* GetInstructionData(UInt16 op); +]]) + +headerFile:write([[ +} + +#endif +]]) + + local sourceFile = io.open("../src/Nazara/Shader/SpirvData.cpp", "w+") + assert(sourceFile, "failed to open Spir-V source") + + sourceFile:write([[ +// Copyright (C) ]] .. os.date("%Y") .. [[ Jérôme Leclercq +// This file is part of the "Nazara Engine - Shader generator" +// For conditions of distribution and use, see copyright notice in Config.hpp" + +// This file was generated automatically, please do not edit + +#include +#include +#include +#include + +namespace Nz +{ + static constexpr std::array s_operands = { + { +]]) + for _, operand in pairs(operands) do + sourceFile:write([[ + { + SpirvOperandKind::]] .. operand.kind .. [[, + R"(]] .. (operand.name or operand.kind) .. [[)" + }, +]]) + end + + sourceFile:write([[ + } + }; + + static std::array s_instructions = { + { +]]) + + for _, instruction in pairs(instructions) do + local opByInstruction = operandByInstruction[instruction.opcode] + + sourceFile:write([[ + { + SpirvOp::]] .. instruction.opname .. [[, + R"(]] .. instruction.opname .. [[)", + ]] .. (opByInstruction and "&s_operands[" .. opByInstruction.firstId .. "]" or "nullptr") .. [[, + ]] .. (opByInstruction and opByInstruction.count or "0") .. [[, + }, +]]) + end + + sourceFile:write([[ + } + }; + +]]) + + -- Operand to string + sourceFile:write([[ + const SpirvInstruction* GetInstructionData(UInt16 op) + { + auto it = std::lower_bound(std::begin(s_instructions), std::end(s_instructions), op, [](const SpirvInstruction& inst, UInt16 op) { return UInt16(inst.op) < op; }); + if (it != std::end(s_instructions) && UInt16(it->op) == op) + return &*it; + else + return nullptr; + } +]]) + + sourceFile:write([[ +} +]]) + +end \ No newline at end of file diff --git a/include/Nazara/Shader/SpirvData.hpp b/include/Nazara/Shader/SpirvData.hpp new file mode 100644 index 000000000..eccc122ad --- /dev/null +++ b/include/Nazara/Shader/SpirvData.hpp @@ -0,0 +1,1382 @@ +// Copyright (C) 2020 Jérôme Leclercq +// This file is part of the "Nazara Engine - Shader generator" +// For conditions of distribution and use, see copyright notice in Config.hpp" + +// This file was generated automatically, please do not edit + +#pragma once + +#ifndef NAZARA_SPIRVDATA_HPP +#define NAZARA_SPIRVDATA_HPP + +#include +#include + +namespace Nz +{ + enum class SpirvOp + { + OpNop = 0, + OpUndef = 1, + OpSourceContinued = 2, + OpSource = 3, + OpSourceExtension = 4, + OpName = 5, + OpMemberName = 6, + OpString = 7, + OpLine = 8, + OpExtension = 10, + OpExtInstImport = 11, + OpExtInst = 12, + OpMemoryModel = 14, + OpEntryPoint = 15, + OpExecutionMode = 16, + OpCapability = 17, + OpTypeVoid = 19, + OpTypeBool = 20, + OpTypeInt = 21, + OpTypeFloat = 22, + OpTypeVector = 23, + OpTypeMatrix = 24, + OpTypeImage = 25, + OpTypeSampler = 26, + OpTypeSampledImage = 27, + OpTypeArray = 28, + OpTypeRuntimeArray = 29, + OpTypeStruct = 30, + OpTypeOpaque = 31, + OpTypePointer = 32, + OpTypeFunction = 33, + OpTypeEvent = 34, + OpTypeDeviceEvent = 35, + OpTypeReserveId = 36, + OpTypeQueue = 37, + OpTypePipe = 38, + OpTypeForwardPointer = 39, + OpConstantTrue = 41, + OpConstantFalse = 42, + OpConstant = 43, + OpConstantComposite = 44, + OpConstantSampler = 45, + OpConstantNull = 46, + OpSpecConstantTrue = 48, + OpSpecConstantFalse = 49, + OpSpecConstant = 50, + OpSpecConstantComposite = 51, + OpSpecConstantOp = 52, + OpFunction = 54, + OpFunctionParameter = 55, + OpFunctionEnd = 56, + OpFunctionCall = 57, + OpVariable = 59, + OpImageTexelPointer = 60, + OpLoad = 61, + OpStore = 62, + OpCopyMemory = 63, + OpCopyMemorySized = 64, + OpAccessChain = 65, + OpInBoundsAccessChain = 66, + OpPtrAccessChain = 67, + OpArrayLength = 68, + OpGenericPtrMemSemantics = 69, + OpInBoundsPtrAccessChain = 70, + OpDecorate = 71, + OpMemberDecorate = 72, + OpDecorationGroup = 73, + OpGroupDecorate = 74, + OpGroupMemberDecorate = 75, + OpVectorExtractDynamic = 77, + OpVectorInsertDynamic = 78, + OpVectorShuffle = 79, + OpCompositeConstruct = 80, + OpCompositeExtract = 81, + OpCompositeInsert = 82, + OpCopyObject = 83, + OpTranspose = 84, + OpSampledImage = 86, + OpImageSampleImplicitLod = 87, + OpImageSampleExplicitLod = 88, + OpImageSampleDrefImplicitLod = 89, + OpImageSampleDrefExplicitLod = 90, + OpImageSampleProjImplicitLod = 91, + OpImageSampleProjExplicitLod = 92, + OpImageSampleProjDrefImplicitLod = 93, + OpImageSampleProjDrefExplicitLod = 94, + OpImageFetch = 95, + OpImageGather = 96, + OpImageDrefGather = 97, + OpImageRead = 98, + OpImageWrite = 99, + OpImage = 100, + OpImageQueryFormat = 101, + OpImageQueryOrder = 102, + OpImageQuerySizeLod = 103, + OpImageQuerySize = 104, + OpImageQueryLod = 105, + OpImageQueryLevels = 106, + OpImageQuerySamples = 107, + OpConvertFToU = 109, + OpConvertFToS = 110, + OpConvertSToF = 111, + OpConvertUToF = 112, + OpUConvert = 113, + OpSConvert = 114, + OpFConvert = 115, + OpQuantizeToF16 = 116, + OpConvertPtrToU = 117, + OpSatConvertSToU = 118, + OpSatConvertUToS = 119, + OpConvertUToPtr = 120, + OpPtrCastToGeneric = 121, + OpGenericCastToPtr = 122, + OpGenericCastToPtrExplicit = 123, + OpBitcast = 124, + OpSNegate = 126, + OpFNegate = 127, + OpIAdd = 128, + OpFAdd = 129, + OpISub = 130, + OpFSub = 131, + OpIMul = 132, + OpFMul = 133, + OpUDiv = 134, + OpSDiv = 135, + OpFDiv = 136, + OpUMod = 137, + OpSRem = 138, + OpSMod = 139, + OpFRem = 140, + OpFMod = 141, + OpVectorTimesScalar = 142, + OpMatrixTimesScalar = 143, + OpVectorTimesMatrix = 144, + OpMatrixTimesVector = 145, + OpMatrixTimesMatrix = 146, + OpOuterProduct = 147, + OpDot = 148, + OpIAddCarry = 149, + OpISubBorrow = 150, + OpUMulExtended = 151, + OpSMulExtended = 152, + OpAny = 154, + OpAll = 155, + OpIsNan = 156, + OpIsInf = 157, + OpIsFinite = 158, + OpIsNormal = 159, + OpSignBitSet = 160, + OpLessOrGreater = 161, + OpOrdered = 162, + OpUnordered = 163, + OpLogicalEqual = 164, + OpLogicalNotEqual = 165, + OpLogicalOr = 166, + OpLogicalAnd = 167, + OpLogicalNot = 168, + OpSelect = 169, + OpIEqual = 170, + OpINotEqual = 171, + OpUGreaterThan = 172, + OpSGreaterThan = 173, + OpUGreaterThanEqual = 174, + OpSGreaterThanEqual = 175, + OpULessThan = 176, + OpSLessThan = 177, + OpULessThanEqual = 178, + OpSLessThanEqual = 179, + OpFOrdEqual = 180, + OpFUnordEqual = 181, + OpFOrdNotEqual = 182, + OpFUnordNotEqual = 183, + OpFOrdLessThan = 184, + OpFUnordLessThan = 185, + OpFOrdGreaterThan = 186, + OpFUnordGreaterThan = 187, + OpFOrdLessThanEqual = 188, + OpFUnordLessThanEqual = 189, + OpFOrdGreaterThanEqual = 190, + OpFUnordGreaterThanEqual = 191, + OpShiftRightLogical = 194, + OpShiftRightArithmetic = 195, + OpShiftLeftLogical = 196, + OpBitwiseOr = 197, + OpBitwiseXor = 198, + OpBitwiseAnd = 199, + OpNot = 200, + OpBitFieldInsert = 201, + OpBitFieldSExtract = 202, + OpBitFieldUExtract = 203, + OpBitReverse = 204, + OpBitCount = 205, + OpDPdx = 207, + OpDPdy = 208, + OpFwidth = 209, + OpDPdxFine = 210, + OpDPdyFine = 211, + OpFwidthFine = 212, + OpDPdxCoarse = 213, + OpDPdyCoarse = 214, + OpFwidthCoarse = 215, + OpEmitVertex = 218, + OpEndPrimitive = 219, + OpEmitStreamVertex = 220, + OpEndStreamPrimitive = 221, + OpControlBarrier = 224, + OpMemoryBarrier = 225, + OpAtomicLoad = 227, + OpAtomicStore = 228, + OpAtomicExchange = 229, + OpAtomicCompareExchange = 230, + OpAtomicCompareExchangeWeak = 231, + OpAtomicIIncrement = 232, + OpAtomicIDecrement = 233, + OpAtomicIAdd = 234, + OpAtomicISub = 235, + OpAtomicSMin = 236, + OpAtomicUMin = 237, + OpAtomicSMax = 238, + OpAtomicUMax = 239, + OpAtomicAnd = 240, + OpAtomicOr = 241, + OpAtomicXor = 242, + OpPhi = 245, + OpLoopMerge = 246, + OpSelectionMerge = 247, + OpLabel = 248, + OpBranch = 249, + OpBranchConditional = 250, + OpSwitch = 251, + OpKill = 252, + OpReturn = 253, + OpReturnValue = 254, + OpUnreachable = 255, + OpLifetimeStart = 256, + OpLifetimeStop = 257, + OpGroupAsyncCopy = 259, + OpGroupWaitEvents = 260, + OpGroupAll = 261, + OpGroupAny = 262, + OpGroupBroadcast = 263, + OpGroupIAdd = 264, + OpGroupFAdd = 265, + OpGroupFMin = 266, + OpGroupUMin = 267, + OpGroupSMin = 268, + OpGroupFMax = 269, + OpGroupUMax = 270, + OpGroupSMax = 271, + OpReadPipe = 274, + OpWritePipe = 275, + OpReservedReadPipe = 276, + OpReservedWritePipe = 277, + OpReserveReadPipePackets = 278, + OpReserveWritePipePackets = 279, + OpCommitReadPipe = 280, + OpCommitWritePipe = 281, + OpIsValidReserveId = 282, + OpGetNumPipePackets = 283, + OpGetMaxPipePackets = 284, + OpGroupReserveReadPipePackets = 285, + OpGroupReserveWritePipePackets = 286, + OpGroupCommitReadPipe = 287, + OpGroupCommitWritePipe = 288, + OpEnqueueMarker = 291, + OpEnqueueKernel = 292, + OpGetKernelNDrangeSubGroupCount = 293, + OpGetKernelNDrangeMaxSubGroupSize = 294, + OpGetKernelWorkGroupSize = 295, + OpGetKernelPreferredWorkGroupSizeMultiple = 296, + OpRetainEvent = 297, + OpReleaseEvent = 298, + OpCreateUserEvent = 299, + OpIsValidEvent = 300, + OpSetUserEventStatus = 301, + OpCaptureEventProfilingInfo = 302, + OpGetDefaultQueue = 303, + OpBuildNDRange = 304, + OpImageSparseSampleImplicitLod = 305, + OpImageSparseSampleExplicitLod = 306, + OpImageSparseSampleDrefImplicitLod = 307, + OpImageSparseSampleDrefExplicitLod = 308, + OpImageSparseSampleProjImplicitLod = 309, + OpImageSparseSampleProjExplicitLod = 310, + OpImageSparseSampleProjDrefImplicitLod = 311, + OpImageSparseSampleProjDrefExplicitLod = 312, + OpImageSparseFetch = 313, + OpImageSparseGather = 314, + OpImageSparseDrefGather = 315, + OpImageSparseTexelsResident = 316, + OpNoLine = 317, + OpAtomicFlagTestAndSet = 318, + OpAtomicFlagClear = 319, + OpImageSparseRead = 320, + OpSizeOf = 321, + OpTypePipeStorage = 322, + OpConstantPipeStorage = 323, + OpCreatePipeFromPipeStorage = 324, + OpGetKernelLocalSizeForSubgroupCount = 325, + OpGetKernelMaxNumSubgroups = 326, + OpTypeNamedBarrier = 327, + OpNamedBarrierInitialize = 328, + OpMemoryNamedBarrier = 329, + OpModuleProcessed = 330, + OpExecutionModeId = 331, + OpDecorateId = 332, + OpGroupNonUniformElect = 333, + OpGroupNonUniformAll = 334, + OpGroupNonUniformAny = 335, + OpGroupNonUniformAllEqual = 336, + OpGroupNonUniformBroadcast = 337, + OpGroupNonUniformBroadcastFirst = 338, + OpGroupNonUniformBallot = 339, + OpGroupNonUniformInverseBallot = 340, + OpGroupNonUniformBallotBitExtract = 341, + OpGroupNonUniformBallotBitCount = 342, + OpGroupNonUniformBallotFindLSB = 343, + OpGroupNonUniformBallotFindMSB = 344, + OpGroupNonUniformShuffle = 345, + OpGroupNonUniformShuffleXor = 346, + OpGroupNonUniformShuffleUp = 347, + OpGroupNonUniformShuffleDown = 348, + OpGroupNonUniformIAdd = 349, + OpGroupNonUniformFAdd = 350, + OpGroupNonUniformIMul = 351, + OpGroupNonUniformFMul = 352, + OpGroupNonUniformSMin = 353, + OpGroupNonUniformUMin = 354, + OpGroupNonUniformFMin = 355, + OpGroupNonUniformSMax = 356, + OpGroupNonUniformUMax = 357, + OpGroupNonUniformFMax = 358, + OpGroupNonUniformBitwiseAnd = 359, + OpGroupNonUniformBitwiseOr = 360, + OpGroupNonUniformBitwiseXor = 361, + OpGroupNonUniformLogicalAnd = 362, + OpGroupNonUniformLogicalOr = 363, + OpGroupNonUniformLogicalXor = 364, + OpGroupNonUniformQuadBroadcast = 365, + OpGroupNonUniformQuadSwap = 366, + OpCopyLogical = 400, + OpPtrEqual = 401, + OpPtrNotEqual = 402, + OpPtrDiff = 403, + OpTerminateInvocation = 4416, + OpSubgroupBallotKHR = 4421, + OpSubgroupFirstInvocationKHR = 4422, + OpSubgroupAllKHR = 4428, + OpSubgroupAnyKHR = 4429, + OpSubgroupAllEqualKHR = 4430, + OpSubgroupReadInvocationKHR = 4432, + OpTypeRayQueryProvisionalKHR = 4472, + OpRayQueryInitializeKHR = 4473, + OpRayQueryTerminateKHR = 4474, + OpRayQueryGenerateIntersectionKHR = 4475, + OpRayQueryConfirmIntersectionKHR = 4476, + OpRayQueryProceedKHR = 4477, + OpRayQueryGetIntersectionTypeKHR = 4479, + OpGroupIAddNonUniformAMD = 5000, + OpGroupFAddNonUniformAMD = 5001, + OpGroupFMinNonUniformAMD = 5002, + OpGroupUMinNonUniformAMD = 5003, + OpGroupSMinNonUniformAMD = 5004, + OpGroupFMaxNonUniformAMD = 5005, + OpGroupUMaxNonUniformAMD = 5006, + OpGroupSMaxNonUniformAMD = 5007, + OpFragmentMaskFetchAMD = 5011, + OpFragmentFetchAMD = 5012, + OpReadClockKHR = 5056, + OpImageSampleFootprintNV = 5283, + OpGroupNonUniformPartitionNV = 5296, + OpWritePackedPrimitiveIndices4x8NV = 5299, + OpReportIntersectionNV = 5334, + OpReportIntersectionKHR = 5334, + OpIgnoreIntersectionNV = 5335, + OpIgnoreIntersectionKHR = 5335, + OpTerminateRayNV = 5336, + OpTerminateRayKHR = 5336, + OpTraceNV = 5337, + OpTraceRayKHR = 5337, + OpTypeAccelerationStructureNV = 5341, + OpTypeAccelerationStructureKHR = 5341, + OpExecuteCallableNV = 5344, + OpExecuteCallableKHR = 5344, + OpTypeCooperativeMatrixNV = 5358, + OpCooperativeMatrixLoadNV = 5359, + OpCooperativeMatrixStoreNV = 5360, + OpCooperativeMatrixMulAddNV = 5361, + OpCooperativeMatrixLengthNV = 5362, + OpBeginInvocationInterlockEXT = 5364, + OpEndInvocationInterlockEXT = 5365, + OpDemoteToHelperInvocationEXT = 5380, + OpIsHelperInvocationEXT = 5381, + OpSubgroupShuffleINTEL = 5571, + OpSubgroupShuffleDownINTEL = 5572, + OpSubgroupShuffleUpINTEL = 5573, + OpSubgroupShuffleXorINTEL = 5574, + OpSubgroupBlockReadINTEL = 5575, + OpSubgroupBlockWriteINTEL = 5576, + OpSubgroupImageBlockReadINTEL = 5577, + OpSubgroupImageBlockWriteINTEL = 5578, + OpSubgroupImageMediaBlockReadINTEL = 5580, + OpSubgroupImageMediaBlockWriteINTEL = 5581, + OpUCountLeadingZerosINTEL = 5585, + OpUCountTrailingZerosINTEL = 5586, + OpAbsISubINTEL = 5587, + OpAbsUSubINTEL = 5588, + OpIAddSatINTEL = 5589, + OpUAddSatINTEL = 5590, + OpIAverageINTEL = 5591, + OpUAverageINTEL = 5592, + OpIAverageRoundedINTEL = 5593, + OpUAverageRoundedINTEL = 5594, + OpISubSatINTEL = 5595, + OpUSubSatINTEL = 5596, + OpIMul32x16INTEL = 5597, + OpUMul32x16INTEL = 5598, + OpFunctionPointerINTEL = 5600, + OpFunctionPointerCallINTEL = 5601, + OpDecorateString = 5632, + OpDecorateStringGOOGLE = 5632, + OpMemberDecorateString = 5633, + OpMemberDecorateStringGOOGLE = 5633, + OpVmeImageINTEL = 5699, + OpTypeVmeImageINTEL = 5700, + OpTypeAvcImePayloadINTEL = 5701, + OpTypeAvcRefPayloadINTEL = 5702, + OpTypeAvcSicPayloadINTEL = 5703, + OpTypeAvcMcePayloadINTEL = 5704, + OpTypeAvcMceResultINTEL = 5705, + OpTypeAvcImeResultINTEL = 5706, + OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, + OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, + OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, + OpTypeAvcImeDualReferenceStreaminINTEL = 5710, + OpTypeAvcRefResultINTEL = 5711, + OpTypeAvcSicResultINTEL = 5712, + OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, + OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, + OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, + OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, + OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, + OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, + OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, + OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, + OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, + OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, + OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, + OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, + OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, + OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, + OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, + OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, + OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, + OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, + OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, + OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, + OpSubgroupAvcMceConvertToImeResultINTEL = 5733, + OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, + OpSubgroupAvcMceConvertToRefResultINTEL = 5735, + OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, + OpSubgroupAvcMceConvertToSicResultINTEL = 5737, + OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, + OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, + OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, + OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, + OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, + OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, + OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, + OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, + OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, + OpSubgroupAvcImeInitializeINTEL = 5747, + OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, + OpSubgroupAvcImeSetDualReferenceINTEL = 5749, + OpSubgroupAvcImeRefWindowSizeINTEL = 5750, + OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, + OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, + OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, + OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, + OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, + OpSubgroupAvcImeSetWeightedSadINTEL = 5756, + OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, + OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, + OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, + OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, + OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, + OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, + OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, + OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, + OpSubgroupAvcImeConvertToMceResultINTEL = 5765, + OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, + OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, + OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, + OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, + OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, + OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, + OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, + OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, + OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, + OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, + OpSubgroupAvcImeGetBorderReachedINTEL = 5776, + OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, + OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, + OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, + OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, + OpSubgroupAvcFmeInitializeINTEL = 5781, + OpSubgroupAvcBmeInitializeINTEL = 5782, + OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, + OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, + OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, + OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, + OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, + OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, + OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, + OpSubgroupAvcRefConvertToMceResultINTEL = 5790, + OpSubgroupAvcSicInitializeINTEL = 5791, + OpSubgroupAvcSicConfigureSkcINTEL = 5792, + OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, + OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, + OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, + OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, + OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, + OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, + OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, + OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, + OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, + OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, + OpSubgroupAvcSicEvaluateIpeINTEL = 5803, + OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, + OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, + OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, + OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, + OpSubgroupAvcSicConvertToMceResultINTEL = 5808, + OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, + OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, + OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, + OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, + OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, + OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, + OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, + OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, + OpLoopControlINTEL = 5887, + OpReadPipeBlockingINTEL = 5946, + OpWritePipeBlockingINTEL = 5947, + OpFPGARegINTEL = 5949, + OpRayQueryGetRayTMinKHR = 6016, + OpRayQueryGetRayFlagsKHR = 6017, + OpRayQueryGetIntersectionTKHR = 6018, + OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, + OpRayQueryGetIntersectionInstanceIdKHR = 6020, + OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, + OpRayQueryGetIntersectionGeometryIndexKHR = 6022, + OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, + OpRayQueryGetIntersectionBarycentricsKHR = 6024, + OpRayQueryGetIntersectionFrontFaceKHR = 6025, + OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, + OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, + OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, + OpRayQueryGetWorldRayDirectionKHR = 6029, + OpRayQueryGetWorldRayOriginKHR = 6030, + OpRayQueryGetIntersectionObjectToWorldKHR = 6031, + OpRayQueryGetIntersectionWorldToObjectKHR = 6032, + OpAtomicFAddEXT = 6035, + }; + + enum class SpirvOperandKind + { + ImageOperands, + FPFastMathMode, + SelectionControl, + LoopControl, + FunctionControl, + MemorySemantics, + MemoryAccess, + KernelProfilingInfo, + RayFlags, + SourceLanguage, + ExecutionModel, + AddressingModel, + MemoryModel, + ExecutionMode, + StorageClass, + Dim, + SamplerAddressingMode, + SamplerFilterMode, + ImageFormat, + ImageChannelOrder, + ImageChannelDataType, + FPRoundingMode, + LinkageType, + AccessQualifier, + FunctionParameterAttribute, + Decoration, + BuiltIn, + Scope, + GroupOperation, + KernelEnqueueFlags, + Capability, + RayQueryIntersection, + RayQueryCommittedIntersectionType, + RayQueryCandidateIntersectionType, + IdResultType, + IdResult, + IdMemorySemantics, + IdScope, + IdRef, + LiteralInteger, + LiteralString, + LiteralContextDependentNumber, + LiteralExtInstInteger, + LiteralSpecConstantOpInteger, + PairLiteralIntegerIdRef, + PairIdRefLiteralInteger, + PairIdRefIdRef, + }; + + enum class SpirvSourceLanguage + { + Unknown = 0, + ESSL = 1, + GLSL = 2, + OpenCL_C = 3, + OpenCL_CPP = 4, + HLSL = 5, + }; + + enum class SpirvExecutionModel + { + Vertex = 0, + TessellationControl = 1, + TessellationEvaluation = 2, + Geometry = 3, + Fragment = 4, + GLCompute = 5, + Kernel = 6, + TaskNV = 5267, + MeshNV = 5268, + RayGenerationNV = 5313, + RayGenerationKHR = 5313, + IntersectionNV = 5314, + IntersectionKHR = 5314, + AnyHitNV = 5315, + AnyHitKHR = 5315, + ClosestHitNV = 5316, + ClosestHitKHR = 5316, + MissNV = 5317, + MissKHR = 5317, + CallableNV = 5318, + CallableKHR = 5318, + }; + + enum class SpirvAddressingModel + { + Logical = 0, + Physical32 = 1, + Physical64 = 2, + PhysicalStorageBuffer64 = 5348, + PhysicalStorageBuffer64EXT = 5348, + }; + + enum class SpirvMemoryModel + { + Simple = 0, + GLSL450 = 1, + OpenCL = 2, + Vulkan = 3, + VulkanKHR = 3, + }; + + enum class SpirvExecutionMode + { + Invocations = 0, + SpacingEqual = 1, + SpacingFractionalEven = 2, + SpacingFractionalOdd = 3, + VertexOrderCw = 4, + VertexOrderCcw = 5, + PixelCenterInteger = 6, + OriginUpperLeft = 7, + OriginLowerLeft = 8, + EarlyFragmentTests = 9, + PointMode = 10, + Xfb = 11, + DepthReplacing = 12, + DepthGreater = 14, + DepthLess = 15, + DepthUnchanged = 16, + LocalSize = 17, + LocalSizeHint = 18, + InputPoints = 19, + InputLines = 20, + InputLinesAdjacency = 21, + Triangles = 22, + InputTrianglesAdjacency = 23, + Quads = 24, + Isolines = 25, + OutputVertices = 26, + OutputPoints = 27, + OutputLineStrip = 28, + OutputTriangleStrip = 29, + VecTypeHint = 30, + ContractionOff = 31, + Initializer = 33, + Finalizer = 34, + SubgroupSize = 35, + SubgroupsPerWorkgroup = 36, + SubgroupsPerWorkgroupId = 37, + LocalSizeId = 38, + LocalSizeHintId = 39, + PostDepthCoverage = 4446, + DenormPreserve = 4459, + DenormFlushToZero = 4460, + SignedZeroInfNanPreserve = 4461, + RoundingModeRTE = 4462, + RoundingModeRTZ = 4463, + StencilRefReplacingEXT = 5027, + OutputLinesNV = 5269, + OutputPrimitivesNV = 5270, + DerivativeGroupQuadsNV = 5289, + DerivativeGroupLinearNV = 5290, + OutputTrianglesNV = 5298, + PixelInterlockOrderedEXT = 5366, + PixelInterlockUnorderedEXT = 5367, + SampleInterlockOrderedEXT = 5368, + SampleInterlockUnorderedEXT = 5369, + ShadingRateInterlockOrderedEXT = 5370, + ShadingRateInterlockUnorderedEXT = 5371, + MaxWorkgroupSizeINTEL = 5893, + MaxWorkDimINTEL = 5894, + NoGlobalOffsetINTEL = 5895, + NumSIMDWorkitemsINTEL = 5896, + }; + + enum class SpirvStorageClass + { + UniformConstant = 0, + Input = 1, + Uniform = 2, + Output = 3, + Workgroup = 4, + CrossWorkgroup = 5, + Private = 6, + Function = 7, + Generic = 8, + PushConstant = 9, + AtomicCounter = 10, + Image = 11, + StorageBuffer = 12, + CallableDataNV = 5328, + CallableDataKHR = 5328, + IncomingCallableDataNV = 5329, + IncomingCallableDataKHR = 5329, + RayPayloadNV = 5338, + RayPayloadKHR = 5338, + HitAttributeNV = 5339, + HitAttributeKHR = 5339, + IncomingRayPayloadNV = 5342, + IncomingRayPayloadKHR = 5342, + ShaderRecordBufferNV = 5343, + ShaderRecordBufferKHR = 5343, + PhysicalStorageBuffer = 5349, + PhysicalStorageBufferEXT = 5349, + CodeSectionINTEL = 5605, + }; + + enum class SpirvDim + { + Dim1D = 0, + Dim2D = 1, + Dim3D = 2, + Cube = 3, + Rect = 4, + Buffer = 5, + SubpassData = 6, + }; + + enum class SpirvSamplerAddressingMode + { + None = 0, + ClampToEdge = 1, + Clamp = 2, + Repeat = 3, + RepeatMirrored = 4, + }; + + enum class SpirvSamplerFilterMode + { + Nearest = 0, + Linear = 1, + }; + + enum class SpirvImageFormat + { + Unknown = 0, + Rgba32f = 1, + Rgba16f = 2, + R32f = 3, + Rgba8 = 4, + Rgba8Snorm = 5, + Rg32f = 6, + Rg16f = 7, + R11fG11fB10f = 8, + R16f = 9, + Rgba16 = 10, + Rgb10A2 = 11, + Rg16 = 12, + Rg8 = 13, + R16 = 14, + R8 = 15, + Rgba16Snorm = 16, + Rg16Snorm = 17, + Rg8Snorm = 18, + R16Snorm = 19, + R8Snorm = 20, + Rgba32i = 21, + Rgba16i = 22, + Rgba8i = 23, + R32i = 24, + Rg32i = 25, + Rg16i = 26, + Rg8i = 27, + R16i = 28, + R8i = 29, + Rgba32ui = 30, + Rgba16ui = 31, + Rgba8ui = 32, + R32ui = 33, + Rgb10a2ui = 34, + Rg32ui = 35, + Rg16ui = 36, + Rg8ui = 37, + R16ui = 38, + R8ui = 39, + }; + + enum class SpirvImageChannelOrder + { + R = 0, + A = 1, + RG = 2, + RA = 3, + RGB = 4, + RGBA = 5, + BGRA = 6, + ARGB = 7, + Intensity = 8, + Luminance = 9, + Rx = 10, + RGx = 11, + RGBx = 12, + Depth = 13, + DepthStencil = 14, + sRGB = 15, + sRGBx = 16, + sRGBA = 17, + sBGRA = 18, + ABGR = 19, + }; + + enum class SpirvImageChannelDataType + { + SnormInt8 = 0, + SnormInt16 = 1, + UnormInt8 = 2, + UnormInt16 = 3, + UnormShort565 = 4, + UnormShort555 = 5, + UnormInt101010 = 6, + SignedInt8 = 7, + SignedInt16 = 8, + SignedInt32 = 9, + UnsignedInt8 = 10, + UnsignedInt16 = 11, + UnsignedInt32 = 12, + HalfFloat = 13, + Float = 14, + UnormInt24 = 15, + UnormInt101010_2 = 16, + }; + + enum class SpirvFPRoundingMode + { + RTE = 0, + RTZ = 1, + RTP = 2, + RTN = 3, + }; + + enum class SpirvLinkageType + { + Export = 0, + Import = 1, + }; + + enum class SpirvAccessQualifier + { + ReadOnly = 0, + WriteOnly = 1, + ReadWrite = 2, + }; + + enum class SpirvFunctionParameterAttribute + { + Zext = 0, + Sext = 1, + ByVal = 2, + Sret = 3, + NoAlias = 4, + NoCapture = 5, + NoWrite = 6, + NoReadWrite = 7, + }; + + enum class SpirvDecoration + { + RelaxedPrecision = 0, + SpecId = 1, + Block = 2, + BufferBlock = 3, + RowMajor = 4, + ColMajor = 5, + ArrayStride = 6, + MatrixStride = 7, + GLSLShared = 8, + GLSLPacked = 9, + CPacked = 10, + BuiltIn = 11, + NoPerspective = 13, + Flat = 14, + Patch = 15, + Centroid = 16, + Sample = 17, + Invariant = 18, + Restrict = 19, + Aliased = 20, + Volatile = 21, + Constant = 22, + Coherent = 23, + NonWritable = 24, + NonReadable = 25, + Uniform = 26, + UniformId = 27, + SaturatedConversion = 28, + Stream = 29, + Location = 30, + Component = 31, + Index = 32, + Binding = 33, + DescriptorSet = 34, + Offset = 35, + XfbBuffer = 36, + XfbStride = 37, + FuncParamAttr = 38, + FPRoundingMode = 39, + FPFastMathMode = 40, + LinkageAttributes = 41, + NoContraction = 42, + InputAttachmentIndex = 43, + Alignment = 44, + MaxByteOffset = 45, + AlignmentId = 46, + MaxByteOffsetId = 47, + NoSignedWrap = 4469, + NoUnsignedWrap = 4470, + ExplicitInterpAMD = 4999, + OverrideCoverageNV = 5248, + PassthroughNV = 5250, + ViewportRelativeNV = 5252, + SecondaryViewportRelativeNV = 5256, + PerPrimitiveNV = 5271, + PerViewNV = 5272, + PerTaskNV = 5273, + PerVertexNV = 5285, + NonUniform = 5300, + NonUniformEXT = 5300, + RestrictPointer = 5355, + RestrictPointerEXT = 5355, + AliasedPointer = 5356, + AliasedPointerEXT = 5356, + ReferencedIndirectlyINTEL = 5602, + CounterBuffer = 5634, + HlslCounterBufferGOOGLE = 5634, + UserSemantic = 5635, + HlslSemanticGOOGLE = 5635, + UserTypeGOOGLE = 5636, + RegisterINTEL = 5825, + MemoryINTEL = 5826, + NumbanksINTEL = 5827, + BankwidthINTEL = 5828, + MaxPrivateCopiesINTEL = 5829, + SinglepumpINTEL = 5830, + DoublepumpINTEL = 5831, + MaxReplicatesINTEL = 5832, + SimpleDualPortINTEL = 5833, + MergeINTEL = 5834, + BankBitsINTEL = 5835, + ForcePow2DepthINTEL = 5836, + }; + + enum class SpirvBuiltIn + { + Position = 0, + PointSize = 1, + ClipDistance = 3, + CullDistance = 4, + VertexId = 5, + InstanceId = 6, + PrimitiveId = 7, + InvocationId = 8, + Layer = 9, + ViewportIndex = 10, + TessLevelOuter = 11, + TessLevelInner = 12, + TessCoord = 13, + PatchVertices = 14, + FragCoord = 15, + PointCoord = 16, + FrontFacing = 17, + SampleId = 18, + SamplePosition = 19, + SampleMask = 20, + FragDepth = 22, + HelperInvocation = 23, + NumWorkgroups = 24, + WorkgroupSize = 25, + WorkgroupId = 26, + LocalInvocationId = 27, + GlobalInvocationId = 28, + LocalInvocationIndex = 29, + WorkDim = 30, + GlobalSize = 31, + EnqueuedWorkgroupSize = 32, + GlobalOffset = 33, + GlobalLinearId = 34, + SubgroupSize = 36, + SubgroupMaxSize = 37, + NumSubgroups = 38, + NumEnqueuedSubgroups = 39, + SubgroupId = 40, + SubgroupLocalInvocationId = 41, + VertexIndex = 42, + InstanceIndex = 43, + SubgroupEqMask = 4416, + SubgroupGeMask = 4417, + SubgroupGtMask = 4418, + SubgroupLeMask = 4419, + SubgroupLtMask = 4420, + SubgroupEqMaskKHR = 4416, + SubgroupGeMaskKHR = 4417, + SubgroupGtMaskKHR = 4418, + SubgroupLeMaskKHR = 4419, + SubgroupLtMaskKHR = 4420, + BaseVertex = 4424, + BaseInstance = 4425, + DrawIndex = 4426, + DeviceIndex = 4438, + ViewIndex = 4440, + BaryCoordNoPerspAMD = 4992, + BaryCoordNoPerspCentroidAMD = 4993, + BaryCoordNoPerspSampleAMD = 4994, + BaryCoordSmoothAMD = 4995, + BaryCoordSmoothCentroidAMD = 4996, + BaryCoordSmoothSampleAMD = 4997, + BaryCoordPullModelAMD = 4998, + FragStencilRefEXT = 5014, + ViewportMaskNV = 5253, + SecondaryPositionNV = 5257, + SecondaryViewportMaskNV = 5258, + PositionPerViewNV = 5261, + ViewportMaskPerViewNV = 5262, + FullyCoveredEXT = 5264, + TaskCountNV = 5274, + PrimitiveCountNV = 5275, + PrimitiveIndicesNV = 5276, + ClipDistancePerViewNV = 5277, + CullDistancePerViewNV = 5278, + LayerPerViewNV = 5279, + MeshViewCountNV = 5280, + MeshViewIndicesNV = 5281, + BaryCoordNV = 5286, + BaryCoordNoPerspNV = 5287, + FragSizeEXT = 5292, + FragmentSizeNV = 5292, + FragInvocationCountEXT = 5293, + InvocationsPerPixelNV = 5293, + LaunchIdNV = 5319, + LaunchIdKHR = 5319, + LaunchSizeNV = 5320, + LaunchSizeKHR = 5320, + WorldRayOriginNV = 5321, + WorldRayOriginKHR = 5321, + WorldRayDirectionNV = 5322, + WorldRayDirectionKHR = 5322, + ObjectRayOriginNV = 5323, + ObjectRayOriginKHR = 5323, + ObjectRayDirectionNV = 5324, + ObjectRayDirectionKHR = 5324, + RayTminNV = 5325, + RayTminKHR = 5325, + RayTmaxNV = 5326, + RayTmaxKHR = 5326, + InstanceCustomIndexNV = 5327, + InstanceCustomIndexKHR = 5327, + ObjectToWorldNV = 5330, + ObjectToWorldKHR = 5330, + WorldToObjectNV = 5331, + WorldToObjectKHR = 5331, + HitTNV = 5332, + HitTKHR = 5332, + HitKindNV = 5333, + HitKindKHR = 5333, + IncomingRayFlagsNV = 5351, + IncomingRayFlagsKHR = 5351, + RayGeometryIndexKHR = 5352, + WarpsPerSMNV = 5374, + SMCountNV = 5375, + WarpIDNV = 5376, + SMIDNV = 5377, + }; + + enum class SpirvScope + { + CrossDevice = 0, + Device = 1, + Workgroup = 2, + Subgroup = 3, + Invocation = 4, + QueueFamily = 5, + QueueFamilyKHR = 5, + ShaderCallKHR = 6, + }; + + enum class SpirvGroupOperation + { + Reduce = 0, + InclusiveScan = 1, + ExclusiveScan = 2, + ClusteredReduce = 3, + PartitionedReduceNV = 6, + PartitionedInclusiveScanNV = 7, + PartitionedExclusiveScanNV = 8, + }; + + enum class SpirvKernelEnqueueFlags + { + NoWait = 0, + WaitKernel = 1, + WaitWorkGroup = 2, + }; + + enum class SpirvCapability + { + Matrix = 0, + Shader = 1, + Geometry = 2, + Tessellation = 3, + Addresses = 4, + Linkage = 5, + Kernel = 6, + Vector16 = 7, + Float16Buffer = 8, + Float16 = 9, + Float64 = 10, + Int64 = 11, + Int64Atomics = 12, + ImageBasic = 13, + ImageReadWrite = 14, + ImageMipmap = 15, + Pipes = 17, + Groups = 18, + DeviceEnqueue = 19, + LiteralSampler = 20, + AtomicStorage = 21, + Int16 = 22, + TessellationPointSize = 23, + GeometryPointSize = 24, + ImageGatherExtended = 25, + StorageImageMultisample = 27, + UniformBufferArrayDynamicIndexing = 28, + SampledImageArrayDynamicIndexing = 29, + StorageBufferArrayDynamicIndexing = 30, + StorageImageArrayDynamicIndexing = 31, + ClipDistance = 32, + CullDistance = 33, + ImageCubeArray = 34, + SampleRateShading = 35, + ImageRect = 36, + SampledRect = 37, + GenericPointer = 38, + Int8 = 39, + InputAttachment = 40, + SparseResidency = 41, + MinLod = 42, + Sampled1D = 43, + Image1D = 44, + SampledCubeArray = 45, + SampledBuffer = 46, + ImageBuffer = 47, + ImageMSArray = 48, + StorageImageExtendedFormats = 49, + ImageQuery = 50, + DerivativeControl = 51, + InterpolationFunction = 52, + TransformFeedback = 53, + GeometryStreams = 54, + StorageImageReadWithoutFormat = 55, + StorageImageWriteWithoutFormat = 56, + MultiViewport = 57, + SubgroupDispatch = 58, + NamedBarrier = 59, + PipeStorage = 60, + GroupNonUniform = 61, + GroupNonUniformVote = 62, + GroupNonUniformArithmetic = 63, + GroupNonUniformBallot = 64, + GroupNonUniformShuffle = 65, + GroupNonUniformShuffleRelative = 66, + GroupNonUniformClustered = 67, + GroupNonUniformQuad = 68, + ShaderLayer = 69, + ShaderViewportIndex = 70, + SubgroupBallotKHR = 4423, + DrawParameters = 4427, + SubgroupVoteKHR = 4431, + StorageBuffer16BitAccess = 4433, + StorageUniformBufferBlock16 = 4433, + UniformAndStorageBuffer16BitAccess = 4434, + StorageUniform16 = 4434, + StoragePushConstant16 = 4435, + StorageInputOutput16 = 4436, + DeviceGroup = 4437, + MultiView = 4439, + VariablePointersStorageBuffer = 4441, + VariablePointers = 4442, + AtomicStorageOps = 4445, + SampleMaskPostDepthCoverage = 4447, + StorageBuffer8BitAccess = 4448, + UniformAndStorageBuffer8BitAccess = 4449, + StoragePushConstant8 = 4450, + DenormPreserve = 4464, + DenormFlushToZero = 4465, + SignedZeroInfNanPreserve = 4466, + RoundingModeRTE = 4467, + RoundingModeRTZ = 4468, + RayQueryProvisionalKHR = 4471, + RayTraversalPrimitiveCullingProvisionalKHR = 4478, + Float16ImageAMD = 5008, + ImageGatherBiasLodAMD = 5009, + FragmentMaskAMD = 5010, + StencilExportEXT = 5013, + ImageReadWriteLodAMD = 5015, + ShaderClockKHR = 5055, + SampleMaskOverrideCoverageNV = 5249, + GeometryShaderPassthroughNV = 5251, + ShaderViewportIndexLayerEXT = 5254, + ShaderViewportIndexLayerNV = 5254, + ShaderViewportMaskNV = 5255, + ShaderStereoViewNV = 5259, + PerViewAttributesNV = 5260, + FragmentFullyCoveredEXT = 5265, + MeshShadingNV = 5266, + ImageFootprintNV = 5282, + FragmentBarycentricNV = 5284, + ComputeDerivativeGroupQuadsNV = 5288, + FragmentDensityEXT = 5291, + ShadingRateNV = 5291, + GroupNonUniformPartitionedNV = 5297, + ShaderNonUniform = 5301, + ShaderNonUniformEXT = 5301, + RuntimeDescriptorArray = 5302, + RuntimeDescriptorArrayEXT = 5302, + InputAttachmentArrayDynamicIndexing = 5303, + InputAttachmentArrayDynamicIndexingEXT = 5303, + UniformTexelBufferArrayDynamicIndexing = 5304, + UniformTexelBufferArrayDynamicIndexingEXT = 5304, + StorageTexelBufferArrayDynamicIndexing = 5305, + StorageTexelBufferArrayDynamicIndexingEXT = 5305, + UniformBufferArrayNonUniformIndexing = 5306, + UniformBufferArrayNonUniformIndexingEXT = 5306, + SampledImageArrayNonUniformIndexing = 5307, + SampledImageArrayNonUniformIndexingEXT = 5307, + StorageBufferArrayNonUniformIndexing = 5308, + StorageBufferArrayNonUniformIndexingEXT = 5308, + StorageImageArrayNonUniformIndexing = 5309, + StorageImageArrayNonUniformIndexingEXT = 5309, + InputAttachmentArrayNonUniformIndexing = 5310, + InputAttachmentArrayNonUniformIndexingEXT = 5310, + UniformTexelBufferArrayNonUniformIndexing = 5311, + UniformTexelBufferArrayNonUniformIndexingEXT = 5311, + StorageTexelBufferArrayNonUniformIndexing = 5312, + StorageTexelBufferArrayNonUniformIndexingEXT = 5312, + RayTracingNV = 5340, + VulkanMemoryModel = 5345, + VulkanMemoryModelKHR = 5345, + VulkanMemoryModelDeviceScope = 5346, + VulkanMemoryModelDeviceScopeKHR = 5346, + PhysicalStorageBufferAddresses = 5347, + PhysicalStorageBufferAddressesEXT = 5347, + ComputeDerivativeGroupLinearNV = 5350, + RayTracingProvisionalKHR = 5353, + CooperativeMatrixNV = 5357, + FragmentShaderSampleInterlockEXT = 5363, + FragmentShaderShadingRateInterlockEXT = 5372, + ShaderSMBuiltinsNV = 5373, + FragmentShaderPixelInterlockEXT = 5378, + DemoteToHelperInvocationEXT = 5379, + SubgroupShuffleINTEL = 5568, + SubgroupBufferBlockIOINTEL = 5569, + SubgroupImageBlockIOINTEL = 5570, + SubgroupImageMediaBlockIOINTEL = 5579, + IntegerFunctions2INTEL = 5584, + FunctionPointersINTEL = 5603, + IndirectReferencesINTEL = 5604, + SubgroupAvcMotionEstimationINTEL = 5696, + SubgroupAvcMotionEstimationIntraINTEL = 5697, + SubgroupAvcMotionEstimationChromaINTEL = 5698, + FPGAMemoryAttributesINTEL = 5824, + UnstructuredLoopControlsINTEL = 5886, + FPGALoopControlsINTEL = 5888, + KernelAttributesINTEL = 5892, + FPGAKernelAttributesINTEL = 5897, + BlockingPipesINTEL = 5945, + FPGARegINTEL = 5948, + AtomicFloat32AddEXT = 6033, + AtomicFloat64AddEXT = 6034, + }; + + enum class SpirvRayQueryIntersection + { + RayQueryCandidateIntersectionKHR = 0, + RayQueryCommittedIntersectionKHR = 1, + }; + + enum class SpirvRayQueryCommittedIntersectionType + { + RayQueryCommittedIntersectionNoneKHR = 0, + RayQueryCommittedIntersectionTriangleKHR = 1, + RayQueryCommittedIntersectionGeneratedKHR = 2, + }; + + enum class SpirvRayQueryCandidateIntersectionType + { + RayQueryCandidateIntersectionTriangleKHR = 0, + RayQueryCandidateIntersectionAABBKHR = 1, + }; + + struct SpirvInstruction + { + struct Operand + { + SpirvOperandKind kind; + const char* name; + }; + + SpirvOp op; + const char* name; + const Operand* operands; + std::size_t minOperandCount; + }; + + NAZARA_SHADER_API const SpirvInstruction* GetInstructionData(UInt16 op); +} + +#endif diff --git a/src/Nazara/Shader/SpirvData.cpp b/src/Nazara/Shader/SpirvData.cpp new file mode 100644 index 000000000..dae33b777 --- /dev/null +++ b/src/Nazara/Shader/SpirvData.cpp @@ -0,0 +1,11862 @@ +// Copyright (C) 2020 Jérôme Leclercq +// This file is part of the "Nazara Engine - Shader generator" +// For conditions of distribution and use, see copyright notice in Config.hpp" + +// This file was generated automatically, please do not edit + +#include +#include +#include +#include + +namespace Nz +{ + static constexpr std::array s_operands = { + { + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralString, + R"('Continued Source')" + }, + { + SpirvOperandKind::SourceLanguage, + R"(SourceLanguage)" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Version')" + }, + { + SpirvOperandKind::IdRef, + R"('File')" + }, + { + SpirvOperandKind::LiteralString, + R"('Source')" + }, + { + SpirvOperandKind::LiteralString, + R"('Extension')" + }, + { + SpirvOperandKind::IdRef, + R"('Target')" + }, + { + SpirvOperandKind::LiteralString, + R"('Name')" + }, + { + SpirvOperandKind::IdRef, + R"('Type')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Member')" + }, + { + SpirvOperandKind::LiteralString, + R"('Name')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralString, + R"('String')" + }, + { + SpirvOperandKind::IdRef, + R"('File')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Line')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Column')" + }, + { + SpirvOperandKind::LiteralString, + R"('Name')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralString, + R"('Name')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Set')" + }, + { + SpirvOperandKind::LiteralExtInstInteger, + R"('Instruction')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1', + +'Operand 2', + +...)" + }, + { + SpirvOperandKind::AddressingModel, + R"(AddressingModel)" + }, + { + SpirvOperandKind::MemoryModel, + R"(MemoryModel)" + }, + { + SpirvOperandKind::ExecutionModel, + R"(ExecutionModel)" + }, + { + SpirvOperandKind::IdRef, + R"('Entry Point')" + }, + { + SpirvOperandKind::LiteralString, + R"('Name')" + }, + { + SpirvOperandKind::IdRef, + R"('Interface')" + }, + { + SpirvOperandKind::IdRef, + R"('Entry Point')" + }, + { + SpirvOperandKind::ExecutionMode, + R"('Mode')" + }, + { + SpirvOperandKind::Capability, + R"('Capability')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Width')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Signedness')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Width')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Component Type')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Component Count')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Column Type')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Column Count')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Type')" + }, + { + SpirvOperandKind::Dim, + R"(Dim)" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Depth')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Arrayed')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('MS')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Sampled')" + }, + { + SpirvOperandKind::ImageFormat, + R"(ImageFormat)" + }, + { + SpirvOperandKind::AccessQualifier, + R"(AccessQualifier)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image Type')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Element Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Length')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Element Type')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Member 0 type', + +'member 1 type', + +...)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralString, + R"(The name of the opaque type.)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::StorageClass, + R"(StorageClass)" + }, + { + SpirvOperandKind::IdRef, + R"('Type')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Return Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Parameter 0 Type', + +'Parameter 1 Type', + +...)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::AccessQualifier, + R"('Qualifier')" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer Type')" + }, + { + SpirvOperandKind::StorageClass, + R"(StorageClass)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralContextDependentNumber, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Constituents')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::SamplerAddressingMode, + R"(SamplerAddressingMode)" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Param')" + }, + { + SpirvOperandKind::SamplerFilterMode, + R"(SamplerFilterMode)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralContextDependentNumber, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Constituents')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralSpecConstantOpInteger, + R"('Opcode')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::FunctionControl, + R"(FunctionControl)" + }, + { + SpirvOperandKind::IdRef, + R"('Function Type')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Function')" + }, + { + SpirvOperandKind::IdRef, + R"('Argument 0', + +'Argument 1', + +...)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::StorageClass, + R"(StorageClass)" + }, + { + SpirvOperandKind::IdRef, + R"('Initializer')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Sample')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::MemoryAccess, + R"(MemoryAccess)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdRef, + R"('Object')" + }, + { + SpirvOperandKind::MemoryAccess, + R"(MemoryAccess)" + }, + { + SpirvOperandKind::IdRef, + R"('Target')" + }, + { + SpirvOperandKind::IdRef, + R"('Source')" + }, + { + SpirvOperandKind::MemoryAccess, + R"(MemoryAccess)" + }, + { + SpirvOperandKind::MemoryAccess, + R"(MemoryAccess)" + }, + { + SpirvOperandKind::IdRef, + R"('Target')" + }, + { + SpirvOperandKind::IdRef, + R"('Source')" + }, + { + SpirvOperandKind::IdRef, + R"('Size')" + }, + { + SpirvOperandKind::MemoryAccess, + R"(MemoryAccess)" + }, + { + SpirvOperandKind::MemoryAccess, + R"(MemoryAccess)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Indexes')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Indexes')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Element')" + }, + { + SpirvOperandKind::IdRef, + R"('Indexes')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Structure')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Array member')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Element')" + }, + { + SpirvOperandKind::IdRef, + R"('Indexes')" + }, + { + SpirvOperandKind::IdRef, + R"('Target')" + }, + { + SpirvOperandKind::Decoration, + R"(Decoration)" + }, + { + SpirvOperandKind::IdRef, + R"('Structure Type')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Member')" + }, + { + SpirvOperandKind::Decoration, + R"(Decoration)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Decoration Group')" + }, + { + SpirvOperandKind::IdRef, + R"('Targets')" + }, + { + SpirvOperandKind::IdRef, + R"('Decoration Group')" + }, + { + SpirvOperandKind::PairIdRefLiteralInteger, + R"('Targets')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Vector')" + }, + { + SpirvOperandKind::IdRef, + R"('Index')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Vector')" + }, + { + SpirvOperandKind::IdRef, + R"('Component')" + }, + { + SpirvOperandKind::IdRef, + R"('Index')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Vector 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Vector 2')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Components')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Constituents')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Composite')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Indexes')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Object')" + }, + { + SpirvOperandKind::IdRef, + R"('Composite')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Indexes')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Matrix')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Sampler')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Component')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Texel')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Level of Detail')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Float Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Float Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Signed Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Unsigned Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Unsigned Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Signed Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Float Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Signed Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Unsigned Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Integer Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::StorageClass, + R"('Storage')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Vector')" + }, + { + SpirvOperandKind::IdRef, + R"('Scalar')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Matrix')" + }, + { + SpirvOperandKind::IdRef, + R"('Scalar')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Vector')" + }, + { + SpirvOperandKind::IdRef, + R"('Matrix')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Matrix')" + }, + { + SpirvOperandKind::IdRef, + R"('Vector')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('LeftMatrix')" + }, + { + SpirvOperandKind::IdRef, + R"('RightMatrix')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Vector 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Vector 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Vector 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Vector 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Vector')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Vector')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('x')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('x')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('x')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('x')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('x')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('x')" + }, + { + SpirvOperandKind::IdRef, + R"('y')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('x')" + }, + { + SpirvOperandKind::IdRef, + R"('y')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('x')" + }, + { + SpirvOperandKind::IdRef, + R"('y')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Condition')" + }, + { + SpirvOperandKind::IdRef, + R"('Object 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Object 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Shift')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Shift')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Shift')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Insert')" + }, + { + SpirvOperandKind::IdRef, + R"('Offset')" + }, + { + SpirvOperandKind::IdRef, + R"('Count')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Offset')" + }, + { + SpirvOperandKind::IdRef, + R"('Count')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdRef, + R"('Offset')" + }, + { + SpirvOperandKind::IdRef, + R"('Count')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Base')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('P')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('P')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('P')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('P')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('P')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('P')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('P')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('P')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('P')" + }, + { + SpirvOperandKind::IdRef, + R"('Stream')" + }, + { + SpirvOperandKind::IdRef, + R"('Stream')" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Equal')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Unequal')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Comparator')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Equal')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Unequal')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Comparator')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::PairIdRefIdRef, + R"('Variable, Parent, ...')" + }, + { + SpirvOperandKind::IdRef, + R"('Merge Block')" + }, + { + SpirvOperandKind::IdRef, + R"('Continue Target')" + }, + { + SpirvOperandKind::LoopControl, + R"(LoopControl)" + }, + { + SpirvOperandKind::IdRef, + R"('Merge Block')" + }, + { + SpirvOperandKind::SelectionControl, + R"(SelectionControl)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Target Label')" + }, + { + SpirvOperandKind::IdRef, + R"('Condition')" + }, + { + SpirvOperandKind::IdRef, + R"('True Label')" + }, + { + SpirvOperandKind::IdRef, + R"('False Label')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Branch weights')" + }, + { + SpirvOperandKind::IdRef, + R"('Selector')" + }, + { + SpirvOperandKind::IdRef, + R"('Default')" + }, + { + SpirvOperandKind::PairLiteralIntegerIdRef, + R"('Target')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Size')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Destination')" + }, + { + SpirvOperandKind::IdRef, + R"('Source')" + }, + { + SpirvOperandKind::IdRef, + R"('Num Elements')" + }, + { + SpirvOperandKind::IdRef, + R"('Stride')" + }, + { + SpirvOperandKind::IdRef, + R"('Event')" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Num Events')" + }, + { + SpirvOperandKind::IdRef, + R"('Events List')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Predicate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Predicate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('LocalId')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Reserve Id')" + }, + { + SpirvOperandKind::IdRef, + R"('Index')" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Reserve Id')" + }, + { + SpirvOperandKind::IdRef, + R"('Index')" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Num Packets')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Num Packets')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Reserve Id')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Reserve Id')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Reserve Id')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Num Packets')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Num Packets')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Reserve Id')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe')" + }, + { + SpirvOperandKind::IdRef, + R"('Reserve Id')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Queue')" + }, + { + SpirvOperandKind::IdRef, + R"('Num Events')" + }, + { + SpirvOperandKind::IdRef, + R"('Wait Events')" + }, + { + SpirvOperandKind::IdRef, + R"('Ret Event')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Queue')" + }, + { + SpirvOperandKind::IdRef, + R"('Flags')" + }, + { + SpirvOperandKind::IdRef, + R"('ND Range')" + }, + { + SpirvOperandKind::IdRef, + R"('Num Events')" + }, + { + SpirvOperandKind::IdRef, + R"('Wait Events')" + }, + { + SpirvOperandKind::IdRef, + R"('Ret Event')" + }, + { + SpirvOperandKind::IdRef, + R"('Invoke')" + }, + { + SpirvOperandKind::IdRef, + R"('Param')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Align')" + }, + { + SpirvOperandKind::IdRef, + R"('Local Size')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('ND Range')" + }, + { + SpirvOperandKind::IdRef, + R"('Invoke')" + }, + { + SpirvOperandKind::IdRef, + R"('Param')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Align')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('ND Range')" + }, + { + SpirvOperandKind::IdRef, + R"('Invoke')" + }, + { + SpirvOperandKind::IdRef, + R"('Param')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Align')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Invoke')" + }, + { + SpirvOperandKind::IdRef, + R"('Param')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Align')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Invoke')" + }, + { + SpirvOperandKind::IdRef, + R"('Param')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Align')" + }, + { + SpirvOperandKind::IdRef, + R"('Event')" + }, + { + SpirvOperandKind::IdRef, + R"('Event')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Event')" + }, + { + SpirvOperandKind::IdRef, + R"('Event')" + }, + { + SpirvOperandKind::IdRef, + R"('Status')" + }, + { + SpirvOperandKind::IdRef, + R"('Event')" + }, + { + SpirvOperandKind::IdRef, + R"('Profiling Info')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('GlobalWorkSize')" + }, + { + SpirvOperandKind::IdRef, + R"('LocalWorkSize')" + }, + { + SpirvOperandKind::IdRef, + R"('GlobalWorkOffset')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Component')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('D~ref~')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Resident Code')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Packet Size')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Capacity')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pipe Storage')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Subgroup Count')" + }, + { + SpirvOperandKind::IdRef, + R"('Invoke')" + }, + { + SpirvOperandKind::IdRef, + R"('Param')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Align')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Invoke')" + }, + { + SpirvOperandKind::IdRef, + R"('Param')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Param Align')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Subgroup Count')" + }, + { + SpirvOperandKind::IdRef, + R"('Named Barrier')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::LiteralString, + R"('Process')" + }, + { + SpirvOperandKind::IdRef, + R"('Entry Point')" + }, + { + SpirvOperandKind::ExecutionMode, + R"('Mode')" + }, + { + SpirvOperandKind::IdRef, + R"('Target')" + }, + { + SpirvOperandKind::Decoration, + R"(Decoration)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Predicate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Predicate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Id')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Predicate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Index')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Id')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Mask')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Delta')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Delta')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('ClusterSize')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Index')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Direction')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Predicate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Predicate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Predicate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Predicate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Index')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Accel')" + }, + { + SpirvOperandKind::IdRef, + R"('RayFlags')" + }, + { + SpirvOperandKind::IdRef, + R"('CullMask')" + }, + { + SpirvOperandKind::IdRef, + R"('RayOrigin')" + }, + { + SpirvOperandKind::IdRef, + R"('RayTMin')" + }, + { + SpirvOperandKind::IdRef, + R"('RayDirection')" + }, + { + SpirvOperandKind::IdRef, + R"('RayTMax')" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('HitT')" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::GroupOperation, + R"('Operation')" + }, + { + SpirvOperandKind::IdRef, + R"('X')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Fragment Index')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Sampled Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Granularity')" + }, + { + SpirvOperandKind::IdRef, + R"('Coarse')" + }, + { + SpirvOperandKind::ImageOperands, + R"(ImageOperands)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdRef, + R"('Index Offset')" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Indices')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Hit')" + }, + { + SpirvOperandKind::IdRef, + R"('HitKind')" + }, + { + SpirvOperandKind::IdRef, + R"('Accel')" + }, + { + SpirvOperandKind::IdRef, + R"('Ray Flags')" + }, + { + SpirvOperandKind::IdRef, + R"('Cull Mask')" + }, + { + SpirvOperandKind::IdRef, + R"('SBT Offset')" + }, + { + SpirvOperandKind::IdRef, + R"('SBT Stride')" + }, + { + SpirvOperandKind::IdRef, + R"('Miss Index')" + }, + { + SpirvOperandKind::IdRef, + R"('Ray Origin')" + }, + { + SpirvOperandKind::IdRef, + R"('Ray Tmin')" + }, + { + SpirvOperandKind::IdRef, + R"('Ray Direction')" + }, + { + SpirvOperandKind::IdRef, + R"('Ray Tmax')" + }, + { + SpirvOperandKind::IdRef, + R"('PayloadId')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('SBT Index')" + }, + { + SpirvOperandKind::IdRef, + R"('Callable DataId')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Component Type')" + }, + { + SpirvOperandKind::IdScope, + R"('Execution')" + }, + { + SpirvOperandKind::IdRef, + R"('Rows')" + }, + { + SpirvOperandKind::IdRef, + R"('Columns')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdRef, + R"('Stride')" + }, + { + SpirvOperandKind::IdRef, + R"('Column Major')" + }, + { + SpirvOperandKind::MemoryAccess, + R"(MemoryAccess)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdRef, + R"('Object')" + }, + { + SpirvOperandKind::IdRef, + R"('Stride')" + }, + { + SpirvOperandKind::IdRef, + R"('Column Major')" + }, + { + SpirvOperandKind::MemoryAccess, + R"(MemoryAccess)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('A')" + }, + { + SpirvOperandKind::IdRef, + R"('B')" + }, + { + SpirvOperandKind::IdRef, + R"('C')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Type')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Data')" + }, + { + SpirvOperandKind::IdRef, + R"('InvocationId')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Current')" + }, + { + SpirvOperandKind::IdRef, + R"('Next')" + }, + { + SpirvOperandKind::IdRef, + R"('Delta')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Previous')" + }, + { + SpirvOperandKind::IdRef, + R"('Current')" + }, + { + SpirvOperandKind::IdRef, + R"('Delta')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Data')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Ptr')" + }, + { + SpirvOperandKind::IdRef, + R"('Ptr')" + }, + { + SpirvOperandKind::IdRef, + R"('Data')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Data')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Width')" + }, + { + SpirvOperandKind::IdRef, + R"('Height')" + }, + { + SpirvOperandKind::IdRef, + R"('Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Coordinate')" + }, + { + SpirvOperandKind::IdRef, + R"('Width')" + }, + { + SpirvOperandKind::IdRef, + R"('Height')" + }, + { + SpirvOperandKind::IdRef, + R"('Data')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 2')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Function')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Operand 1')" + }, + { + SpirvOperandKind::IdRef, + R"('Target')" + }, + { + SpirvOperandKind::Decoration, + R"(Decoration)" + }, + { + SpirvOperandKind::IdRef, + R"('Struct Type')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Member')" + }, + { + SpirvOperandKind::Decoration, + R"(Decoration)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Sampler')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image Type')" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Slice Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Qp')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Reference Base Penalty')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Slice Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Qp')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Shape Penalty')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Slice Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Qp')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Direction Cost')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Slice Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Qp')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Slice Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Qp')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Cost Center Delta')" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Cost Table')" + }, + { + SpirvOperandKind::IdRef, + R"('Cost Precision')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Slice Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Qp')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Source Field Polarity')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Reference Field Polarity')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Forward Reference Field Polarity')" + }, + { + SpirvOperandKind::IdRef, + R"('Backward Reference Field Polarity')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Reference Ids')" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Reference Parameter Field Polarities')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Coord')" + }, + { + SpirvOperandKind::IdRef, + R"('Partition Mask')" + }, + { + SpirvOperandKind::IdRef, + R"('SAD Adjustment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Ref Offset')" + }, + { + SpirvOperandKind::IdRef, + R"('Search Window Config')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Fwd Ref Offset')" + }, + { + SpirvOperandKind::IdRef, + R"('Bwd Ref Offset')" + }, + { + SpirvOperandKind::IdRef, + R"('id> Search Window Config')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Search Window Config')" + }, + { + SpirvOperandKind::IdRef, + R"('Dual Ref')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Ref Offset')" + }, + { + SpirvOperandKind::IdRef, + R"('Src Coord')" + }, + { + SpirvOperandKind::IdRef, + R"('Ref Window Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Image Size')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Max Motion Vector Count')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Threshold')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Sad Weights')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Fwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Bwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Streamin Components')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Fwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Bwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Streamin Components')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Fwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Bwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Streamin Components')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Fwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Bwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Streamin Components')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Major Shape')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Major Shape')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Major Shape')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Major Shape')" + }, + { + SpirvOperandKind::IdRef, + R"('Direction')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Major Shape')" + }, + { + SpirvOperandKind::IdRef, + R"('Direction')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdRef, + R"('Major Shape')" + }, + { + SpirvOperandKind::IdRef, + R"('Direction')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Image Select')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Coord')" + }, + { + SpirvOperandKind::IdRef, + R"('Motion Vectors')" + }, + { + SpirvOperandKind::IdRef, + R"('Major Shapes')" + }, + { + SpirvOperandKind::IdRef, + R"('Minor Shapes')" + }, + { + SpirvOperandKind::IdRef, + R"('Direction')" + }, + { + SpirvOperandKind::IdRef, + R"('Pixel Resolution')" + }, + { + SpirvOperandKind::IdRef, + R"('Sad Adjustment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Coord')" + }, + { + SpirvOperandKind::IdRef, + R"('Motion Vectors')" + }, + { + SpirvOperandKind::IdRef, + R"('Major Shapes')" + }, + { + SpirvOperandKind::IdRef, + R"('Minor Shapes')" + }, + { + SpirvOperandKind::IdRef, + R"('Direction')" + }, + { + SpirvOperandKind::IdRef, + R"('Pixel Resolution')" + }, + { + SpirvOperandKind::IdRef, + R"('Bidirectional Weight')" + }, + { + SpirvOperandKind::IdRef, + R"('Sad Adjustment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Fwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Bwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Reference Ids')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Reference Ids')" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Reference Field Polarities')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Coord')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Skip Block Partition Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Skip Motion Vector Mask')" + }, + { + SpirvOperandKind::IdRef, + R"('Motion Vectors')" + }, + { + SpirvOperandKind::IdRef, + R"('Bidirectional Weight')" + }, + { + SpirvOperandKind::IdRef, + R"('Sad Adjustment')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Luma Intra Partition Mask')" + }, + { + SpirvOperandKind::IdRef, + R"('Intra Neighbour Availabilty')" + }, + { + SpirvOperandKind::IdRef, + R"('Left Edge Luma Pixels')" + }, + { + SpirvOperandKind::IdRef, + R"('Upper Left Corner Luma Pixel')" + }, + { + SpirvOperandKind::IdRef, + R"('Upper Edge Luma Pixels')" + }, + { + SpirvOperandKind::IdRef, + R"('Upper Right Edge Luma Pixels')" + }, + { + SpirvOperandKind::IdRef, + R"('Sad Adjustment')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Luma Intra Partition Mask')" + }, + { + SpirvOperandKind::IdRef, + R"('Intra Neighbour Availabilty')" + }, + { + SpirvOperandKind::IdRef, + R"('Left Edge Luma Pixels')" + }, + { + SpirvOperandKind::IdRef, + R"('Upper Left Corner Luma Pixel')" + }, + { + SpirvOperandKind::IdRef, + R"('Upper Edge Luma Pixels')" + }, + { + SpirvOperandKind::IdRef, + R"('Upper Right Edge Luma Pixels')" + }, + { + SpirvOperandKind::IdRef, + R"('Left Edge Chroma Pixels')" + }, + { + SpirvOperandKind::IdRef, + R"('Upper Left Corner Chroma Pixel')" + }, + { + SpirvOperandKind::IdRef, + R"('Upper Edge Chroma Pixels')" + }, + { + SpirvOperandKind::IdRef, + R"('Sad Adjustment')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Skip Block Partition Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Direction')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Shape Penalty')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Luma Mode Penalty')" + }, + { + SpirvOperandKind::IdRef, + R"('Luma Packed Neighbor Modes')" + }, + { + SpirvOperandKind::IdRef, + R"('Luma Packed Non Dc Penalty')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Chroma Mode Base Penalty')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Sad Coefficients')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Block Based Skip Type')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Fwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Bwd Ref Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Reference Ids')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Src Image')" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Reference Ids')" + }, + { + SpirvOperandKind::IdRef, + R"('Packed Reference Field Polarities')" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Payload')" + }, + { + SpirvOperandKind::LiteralInteger, + R"('Loop Control Parameters')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Size')" + }, + { + SpirvOperandKind::IdRef, + R"('Packet Alignment')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Result')" + }, + { + SpirvOperandKind::IdRef, + R"('Input')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('RayQuery')" + }, + { + SpirvOperandKind::IdRef, + R"('Intersection')" + }, + { + SpirvOperandKind::IdResultType, + R"(IdResultType)" + }, + { + SpirvOperandKind::IdResult, + R"(IdResult)" + }, + { + SpirvOperandKind::IdRef, + R"('Pointer')" + }, + { + SpirvOperandKind::IdScope, + R"('Memory')" + }, + { + SpirvOperandKind::IdMemorySemantics, + R"('Semantics')" + }, + { + SpirvOperandKind::IdRef, + R"('Value')" + }, + } + }; + + static std::array s_instructions = { + { + { + SpirvOp::OpNop, + R"(OpNop)", + nullptr, + 0, + }, + { + SpirvOp::OpUndef, + R"(OpUndef)", + &s_operands[0], + 2, + }, + { + SpirvOp::OpSourceContinued, + R"(OpSourceContinued)", + &s_operands[2], + 1, + }, + { + SpirvOp::OpSource, + R"(OpSource)", + &s_operands[3], + 4, + }, + { + SpirvOp::OpSourceExtension, + R"(OpSourceExtension)", + &s_operands[7], + 1, + }, + { + SpirvOp::OpName, + R"(OpName)", + &s_operands[8], + 2, + }, + { + SpirvOp::OpMemberName, + R"(OpMemberName)", + &s_operands[10], + 3, + }, + { + SpirvOp::OpString, + R"(OpString)", + &s_operands[13], + 2, + }, + { + SpirvOp::OpLine, + R"(OpLine)", + &s_operands[15], + 3, + }, + { + SpirvOp::OpExtension, + R"(OpExtension)", + &s_operands[18], + 1, + }, + { + SpirvOp::OpExtInstImport, + R"(OpExtInstImport)", + &s_operands[19], + 2, + }, + { + SpirvOp::OpExtInst, + R"(OpExtInst)", + &s_operands[21], + 5, + }, + { + SpirvOp::OpMemoryModel, + R"(OpMemoryModel)", + &s_operands[26], + 2, + }, + { + SpirvOp::OpEntryPoint, + R"(OpEntryPoint)", + &s_operands[28], + 4, + }, + { + SpirvOp::OpExecutionMode, + R"(OpExecutionMode)", + &s_operands[32], + 2, + }, + { + SpirvOp::OpCapability, + R"(OpCapability)", + &s_operands[34], + 1, + }, + { + SpirvOp::OpTypeVoid, + R"(OpTypeVoid)", + &s_operands[35], + 1, + }, + { + SpirvOp::OpTypeBool, + R"(OpTypeBool)", + &s_operands[36], + 1, + }, + { + SpirvOp::OpTypeInt, + R"(OpTypeInt)", + &s_operands[37], + 3, + }, + { + SpirvOp::OpTypeFloat, + R"(OpTypeFloat)", + &s_operands[40], + 2, + }, + { + SpirvOp::OpTypeVector, + R"(OpTypeVector)", + &s_operands[42], + 3, + }, + { + SpirvOp::OpTypeMatrix, + R"(OpTypeMatrix)", + &s_operands[45], + 3, + }, + { + SpirvOp::OpTypeImage, + R"(OpTypeImage)", + &s_operands[48], + 9, + }, + { + SpirvOp::OpTypeSampler, + R"(OpTypeSampler)", + &s_operands[57], + 1, + }, + { + SpirvOp::OpTypeSampledImage, + R"(OpTypeSampledImage)", + &s_operands[58], + 2, + }, + { + SpirvOp::OpTypeArray, + R"(OpTypeArray)", + &s_operands[60], + 3, + }, + { + SpirvOp::OpTypeRuntimeArray, + R"(OpTypeRuntimeArray)", + &s_operands[63], + 2, + }, + { + SpirvOp::OpTypeStruct, + R"(OpTypeStruct)", + &s_operands[65], + 2, + }, + { + SpirvOp::OpTypeOpaque, + R"(OpTypeOpaque)", + &s_operands[67], + 2, + }, + { + SpirvOp::OpTypePointer, + R"(OpTypePointer)", + &s_operands[69], + 3, + }, + { + SpirvOp::OpTypeFunction, + R"(OpTypeFunction)", + &s_operands[72], + 3, + }, + { + SpirvOp::OpTypeEvent, + R"(OpTypeEvent)", + &s_operands[75], + 1, + }, + { + SpirvOp::OpTypeDeviceEvent, + R"(OpTypeDeviceEvent)", + &s_operands[76], + 1, + }, + { + SpirvOp::OpTypeReserveId, + R"(OpTypeReserveId)", + &s_operands[77], + 1, + }, + { + SpirvOp::OpTypeQueue, + R"(OpTypeQueue)", + &s_operands[78], + 1, + }, + { + SpirvOp::OpTypePipe, + R"(OpTypePipe)", + &s_operands[79], + 2, + }, + { + SpirvOp::OpTypeForwardPointer, + R"(OpTypeForwardPointer)", + &s_operands[81], + 2, + }, + { + SpirvOp::OpConstantTrue, + R"(OpConstantTrue)", + &s_operands[83], + 2, + }, + { + SpirvOp::OpConstantFalse, + R"(OpConstantFalse)", + &s_operands[85], + 2, + }, + { + SpirvOp::OpConstant, + R"(OpConstant)", + &s_operands[87], + 3, + }, + { + SpirvOp::OpConstantComposite, + R"(OpConstantComposite)", + &s_operands[90], + 3, + }, + { + SpirvOp::OpConstantSampler, + R"(OpConstantSampler)", + &s_operands[93], + 5, + }, + { + SpirvOp::OpConstantNull, + R"(OpConstantNull)", + &s_operands[98], + 2, + }, + { + SpirvOp::OpSpecConstantTrue, + R"(OpSpecConstantTrue)", + &s_operands[100], + 2, + }, + { + SpirvOp::OpSpecConstantFalse, + R"(OpSpecConstantFalse)", + &s_operands[102], + 2, + }, + { + SpirvOp::OpSpecConstant, + R"(OpSpecConstant)", + &s_operands[104], + 3, + }, + { + SpirvOp::OpSpecConstantComposite, + R"(OpSpecConstantComposite)", + &s_operands[107], + 3, + }, + { + SpirvOp::OpSpecConstantOp, + R"(OpSpecConstantOp)", + &s_operands[110], + 3, + }, + { + SpirvOp::OpFunction, + R"(OpFunction)", + &s_operands[113], + 4, + }, + { + SpirvOp::OpFunctionParameter, + R"(OpFunctionParameter)", + &s_operands[117], + 2, + }, + { + SpirvOp::OpFunctionEnd, + R"(OpFunctionEnd)", + nullptr, + 0, + }, + { + SpirvOp::OpFunctionCall, + R"(OpFunctionCall)", + &s_operands[119], + 4, + }, + { + SpirvOp::OpVariable, + R"(OpVariable)", + &s_operands[123], + 4, + }, + { + SpirvOp::OpImageTexelPointer, + R"(OpImageTexelPointer)", + &s_operands[127], + 5, + }, + { + SpirvOp::OpLoad, + R"(OpLoad)", + &s_operands[132], + 4, + }, + { + SpirvOp::OpStore, + R"(OpStore)", + &s_operands[136], + 3, + }, + { + SpirvOp::OpCopyMemory, + R"(OpCopyMemory)", + &s_operands[139], + 4, + }, + { + SpirvOp::OpCopyMemorySized, + R"(OpCopyMemorySized)", + &s_operands[143], + 5, + }, + { + SpirvOp::OpAccessChain, + R"(OpAccessChain)", + &s_operands[148], + 4, + }, + { + SpirvOp::OpInBoundsAccessChain, + R"(OpInBoundsAccessChain)", + &s_operands[152], + 4, + }, + { + SpirvOp::OpPtrAccessChain, + R"(OpPtrAccessChain)", + &s_operands[156], + 5, + }, + { + SpirvOp::OpArrayLength, + R"(OpArrayLength)", + &s_operands[161], + 4, + }, + { + SpirvOp::OpGenericPtrMemSemantics, + R"(OpGenericPtrMemSemantics)", + &s_operands[165], + 3, + }, + { + SpirvOp::OpInBoundsPtrAccessChain, + R"(OpInBoundsPtrAccessChain)", + &s_operands[168], + 5, + }, + { + SpirvOp::OpDecorate, + R"(OpDecorate)", + &s_operands[173], + 2, + }, + { + SpirvOp::OpMemberDecorate, + R"(OpMemberDecorate)", + &s_operands[175], + 3, + }, + { + SpirvOp::OpDecorationGroup, + R"(OpDecorationGroup)", + &s_operands[178], + 1, + }, + { + SpirvOp::OpGroupDecorate, + R"(OpGroupDecorate)", + &s_operands[179], + 2, + }, + { + SpirvOp::OpGroupMemberDecorate, + R"(OpGroupMemberDecorate)", + &s_operands[181], + 2, + }, + { + SpirvOp::OpVectorExtractDynamic, + R"(OpVectorExtractDynamic)", + &s_operands[183], + 4, + }, + { + SpirvOp::OpVectorInsertDynamic, + R"(OpVectorInsertDynamic)", + &s_operands[187], + 5, + }, + { + SpirvOp::OpVectorShuffle, + R"(OpVectorShuffle)", + &s_operands[192], + 5, + }, + { + SpirvOp::OpCompositeConstruct, + R"(OpCompositeConstruct)", + &s_operands[197], + 3, + }, + { + SpirvOp::OpCompositeExtract, + R"(OpCompositeExtract)", + &s_operands[200], + 4, + }, + { + SpirvOp::OpCompositeInsert, + R"(OpCompositeInsert)", + &s_operands[204], + 5, + }, + { + SpirvOp::OpCopyObject, + R"(OpCopyObject)", + &s_operands[209], + 3, + }, + { + SpirvOp::OpTranspose, + R"(OpTranspose)", + &s_operands[212], + 3, + }, + { + SpirvOp::OpSampledImage, + R"(OpSampledImage)", + &s_operands[215], + 4, + }, + { + SpirvOp::OpImageSampleImplicitLod, + R"(OpImageSampleImplicitLod)", + &s_operands[219], + 5, + }, + { + SpirvOp::OpImageSampleExplicitLod, + R"(OpImageSampleExplicitLod)", + &s_operands[224], + 5, + }, + { + SpirvOp::OpImageSampleDrefImplicitLod, + R"(OpImageSampleDrefImplicitLod)", + &s_operands[229], + 6, + }, + { + SpirvOp::OpImageSampleDrefExplicitLod, + R"(OpImageSampleDrefExplicitLod)", + &s_operands[235], + 6, + }, + { + SpirvOp::OpImageSampleProjImplicitLod, + R"(OpImageSampleProjImplicitLod)", + &s_operands[241], + 5, + }, + { + SpirvOp::OpImageSampleProjExplicitLod, + R"(OpImageSampleProjExplicitLod)", + &s_operands[246], + 5, + }, + { + SpirvOp::OpImageSampleProjDrefImplicitLod, + R"(OpImageSampleProjDrefImplicitLod)", + &s_operands[251], + 6, + }, + { + SpirvOp::OpImageSampleProjDrefExplicitLod, + R"(OpImageSampleProjDrefExplicitLod)", + &s_operands[257], + 6, + }, + { + SpirvOp::OpImageFetch, + R"(OpImageFetch)", + &s_operands[263], + 5, + }, + { + SpirvOp::OpImageGather, + R"(OpImageGather)", + &s_operands[268], + 6, + }, + { + SpirvOp::OpImageDrefGather, + R"(OpImageDrefGather)", + &s_operands[274], + 6, + }, + { + SpirvOp::OpImageRead, + R"(OpImageRead)", + &s_operands[280], + 5, + }, + { + SpirvOp::OpImageWrite, + R"(OpImageWrite)", + &s_operands[285], + 4, + }, + { + SpirvOp::OpImage, + R"(OpImage)", + &s_operands[289], + 3, + }, + { + SpirvOp::OpImageQueryFormat, + R"(OpImageQueryFormat)", + &s_operands[292], + 3, + }, + { + SpirvOp::OpImageQueryOrder, + R"(OpImageQueryOrder)", + &s_operands[295], + 3, + }, + { + SpirvOp::OpImageQuerySizeLod, + R"(OpImageQuerySizeLod)", + &s_operands[298], + 4, + }, + { + SpirvOp::OpImageQuerySize, + R"(OpImageQuerySize)", + &s_operands[302], + 3, + }, + { + SpirvOp::OpImageQueryLod, + R"(OpImageQueryLod)", + &s_operands[305], + 4, + }, + { + SpirvOp::OpImageQueryLevels, + R"(OpImageQueryLevels)", + &s_operands[309], + 3, + }, + { + SpirvOp::OpImageQuerySamples, + R"(OpImageQuerySamples)", + &s_operands[312], + 3, + }, + { + SpirvOp::OpConvertFToU, + R"(OpConvertFToU)", + &s_operands[315], + 3, + }, + { + SpirvOp::OpConvertFToS, + R"(OpConvertFToS)", + &s_operands[318], + 3, + }, + { + SpirvOp::OpConvertSToF, + R"(OpConvertSToF)", + &s_operands[321], + 3, + }, + { + SpirvOp::OpConvertUToF, + R"(OpConvertUToF)", + &s_operands[324], + 3, + }, + { + SpirvOp::OpUConvert, + R"(OpUConvert)", + &s_operands[327], + 3, + }, + { + SpirvOp::OpSConvert, + R"(OpSConvert)", + &s_operands[330], + 3, + }, + { + SpirvOp::OpFConvert, + R"(OpFConvert)", + &s_operands[333], + 3, + }, + { + SpirvOp::OpQuantizeToF16, + R"(OpQuantizeToF16)", + &s_operands[336], + 3, + }, + { + SpirvOp::OpConvertPtrToU, + R"(OpConvertPtrToU)", + &s_operands[339], + 3, + }, + { + SpirvOp::OpSatConvertSToU, + R"(OpSatConvertSToU)", + &s_operands[342], + 3, + }, + { + SpirvOp::OpSatConvertUToS, + R"(OpSatConvertUToS)", + &s_operands[345], + 3, + }, + { + SpirvOp::OpConvertUToPtr, + R"(OpConvertUToPtr)", + &s_operands[348], + 3, + }, + { + SpirvOp::OpPtrCastToGeneric, + R"(OpPtrCastToGeneric)", + &s_operands[351], + 3, + }, + { + SpirvOp::OpGenericCastToPtr, + R"(OpGenericCastToPtr)", + &s_operands[354], + 3, + }, + { + SpirvOp::OpGenericCastToPtrExplicit, + R"(OpGenericCastToPtrExplicit)", + &s_operands[357], + 4, + }, + { + SpirvOp::OpBitcast, + R"(OpBitcast)", + &s_operands[361], + 3, + }, + { + SpirvOp::OpSNegate, + R"(OpSNegate)", + &s_operands[364], + 3, + }, + { + SpirvOp::OpFNegate, + R"(OpFNegate)", + &s_operands[367], + 3, + }, + { + SpirvOp::OpIAdd, + R"(OpIAdd)", + &s_operands[370], + 4, + }, + { + SpirvOp::OpFAdd, + R"(OpFAdd)", + &s_operands[374], + 4, + }, + { + SpirvOp::OpISub, + R"(OpISub)", + &s_operands[378], + 4, + }, + { + SpirvOp::OpFSub, + R"(OpFSub)", + &s_operands[382], + 4, + }, + { + SpirvOp::OpIMul, + R"(OpIMul)", + &s_operands[386], + 4, + }, + { + SpirvOp::OpFMul, + R"(OpFMul)", + &s_operands[390], + 4, + }, + { + SpirvOp::OpUDiv, + R"(OpUDiv)", + &s_operands[394], + 4, + }, + { + SpirvOp::OpSDiv, + R"(OpSDiv)", + &s_operands[398], + 4, + }, + { + SpirvOp::OpFDiv, + R"(OpFDiv)", + &s_operands[402], + 4, + }, + { + SpirvOp::OpUMod, + R"(OpUMod)", + &s_operands[406], + 4, + }, + { + SpirvOp::OpSRem, + R"(OpSRem)", + &s_operands[410], + 4, + }, + { + SpirvOp::OpSMod, + R"(OpSMod)", + &s_operands[414], + 4, + }, + { + SpirvOp::OpFRem, + R"(OpFRem)", + &s_operands[418], + 4, + }, + { + SpirvOp::OpFMod, + R"(OpFMod)", + &s_operands[422], + 4, + }, + { + SpirvOp::OpVectorTimesScalar, + R"(OpVectorTimesScalar)", + &s_operands[426], + 4, + }, + { + SpirvOp::OpMatrixTimesScalar, + R"(OpMatrixTimesScalar)", + &s_operands[430], + 4, + }, + { + SpirvOp::OpVectorTimesMatrix, + R"(OpVectorTimesMatrix)", + &s_operands[434], + 4, + }, + { + SpirvOp::OpMatrixTimesVector, + R"(OpMatrixTimesVector)", + &s_operands[438], + 4, + }, + { + SpirvOp::OpMatrixTimesMatrix, + R"(OpMatrixTimesMatrix)", + &s_operands[442], + 4, + }, + { + SpirvOp::OpOuterProduct, + R"(OpOuterProduct)", + &s_operands[446], + 4, + }, + { + SpirvOp::OpDot, + R"(OpDot)", + &s_operands[450], + 4, + }, + { + SpirvOp::OpIAddCarry, + R"(OpIAddCarry)", + &s_operands[454], + 4, + }, + { + SpirvOp::OpISubBorrow, + R"(OpISubBorrow)", + &s_operands[458], + 4, + }, + { + SpirvOp::OpUMulExtended, + R"(OpUMulExtended)", + &s_operands[462], + 4, + }, + { + SpirvOp::OpSMulExtended, + R"(OpSMulExtended)", + &s_operands[466], + 4, + }, + { + SpirvOp::OpAny, + R"(OpAny)", + &s_operands[470], + 3, + }, + { + SpirvOp::OpAll, + R"(OpAll)", + &s_operands[473], + 3, + }, + { + SpirvOp::OpIsNan, + R"(OpIsNan)", + &s_operands[476], + 3, + }, + { + SpirvOp::OpIsInf, + R"(OpIsInf)", + &s_operands[479], + 3, + }, + { + SpirvOp::OpIsFinite, + R"(OpIsFinite)", + &s_operands[482], + 3, + }, + { + SpirvOp::OpIsNormal, + R"(OpIsNormal)", + &s_operands[485], + 3, + }, + { + SpirvOp::OpSignBitSet, + R"(OpSignBitSet)", + &s_operands[488], + 3, + }, + { + SpirvOp::OpLessOrGreater, + R"(OpLessOrGreater)", + &s_operands[491], + 4, + }, + { + SpirvOp::OpOrdered, + R"(OpOrdered)", + &s_operands[495], + 4, + }, + { + SpirvOp::OpUnordered, + R"(OpUnordered)", + &s_operands[499], + 4, + }, + { + SpirvOp::OpLogicalEqual, + R"(OpLogicalEqual)", + &s_operands[503], + 4, + }, + { + SpirvOp::OpLogicalNotEqual, + R"(OpLogicalNotEqual)", + &s_operands[507], + 4, + }, + { + SpirvOp::OpLogicalOr, + R"(OpLogicalOr)", + &s_operands[511], + 4, + }, + { + SpirvOp::OpLogicalAnd, + R"(OpLogicalAnd)", + &s_operands[515], + 4, + }, + { + SpirvOp::OpLogicalNot, + R"(OpLogicalNot)", + &s_operands[519], + 3, + }, + { + SpirvOp::OpSelect, + R"(OpSelect)", + &s_operands[522], + 5, + }, + { + SpirvOp::OpIEqual, + R"(OpIEqual)", + &s_operands[527], + 4, + }, + { + SpirvOp::OpINotEqual, + R"(OpINotEqual)", + &s_operands[531], + 4, + }, + { + SpirvOp::OpUGreaterThan, + R"(OpUGreaterThan)", + &s_operands[535], + 4, + }, + { + SpirvOp::OpSGreaterThan, + R"(OpSGreaterThan)", + &s_operands[539], + 4, + }, + { + SpirvOp::OpUGreaterThanEqual, + R"(OpUGreaterThanEqual)", + &s_operands[543], + 4, + }, + { + SpirvOp::OpSGreaterThanEqual, + R"(OpSGreaterThanEqual)", + &s_operands[547], + 4, + }, + { + SpirvOp::OpULessThan, + R"(OpULessThan)", + &s_operands[551], + 4, + }, + { + SpirvOp::OpSLessThan, + R"(OpSLessThan)", + &s_operands[555], + 4, + }, + { + SpirvOp::OpULessThanEqual, + R"(OpULessThanEqual)", + &s_operands[559], + 4, + }, + { + SpirvOp::OpSLessThanEqual, + R"(OpSLessThanEqual)", + &s_operands[563], + 4, + }, + { + SpirvOp::OpFOrdEqual, + R"(OpFOrdEqual)", + &s_operands[567], + 4, + }, + { + SpirvOp::OpFUnordEqual, + R"(OpFUnordEqual)", + &s_operands[571], + 4, + }, + { + SpirvOp::OpFOrdNotEqual, + R"(OpFOrdNotEqual)", + &s_operands[575], + 4, + }, + { + SpirvOp::OpFUnordNotEqual, + R"(OpFUnordNotEqual)", + &s_operands[579], + 4, + }, + { + SpirvOp::OpFOrdLessThan, + R"(OpFOrdLessThan)", + &s_operands[583], + 4, + }, + { + SpirvOp::OpFUnordLessThan, + R"(OpFUnordLessThan)", + &s_operands[587], + 4, + }, + { + SpirvOp::OpFOrdGreaterThan, + R"(OpFOrdGreaterThan)", + &s_operands[591], + 4, + }, + { + SpirvOp::OpFUnordGreaterThan, + R"(OpFUnordGreaterThan)", + &s_operands[595], + 4, + }, + { + SpirvOp::OpFOrdLessThanEqual, + R"(OpFOrdLessThanEqual)", + &s_operands[599], + 4, + }, + { + SpirvOp::OpFUnordLessThanEqual, + R"(OpFUnordLessThanEqual)", + &s_operands[603], + 4, + }, + { + SpirvOp::OpFOrdGreaterThanEqual, + R"(OpFOrdGreaterThanEqual)", + &s_operands[607], + 4, + }, + { + SpirvOp::OpFUnordGreaterThanEqual, + R"(OpFUnordGreaterThanEqual)", + &s_operands[611], + 4, + }, + { + SpirvOp::OpShiftRightLogical, + R"(OpShiftRightLogical)", + &s_operands[615], + 4, + }, + { + SpirvOp::OpShiftRightArithmetic, + R"(OpShiftRightArithmetic)", + &s_operands[619], + 4, + }, + { + SpirvOp::OpShiftLeftLogical, + R"(OpShiftLeftLogical)", + &s_operands[623], + 4, + }, + { + SpirvOp::OpBitwiseOr, + R"(OpBitwiseOr)", + &s_operands[627], + 4, + }, + { + SpirvOp::OpBitwiseXor, + R"(OpBitwiseXor)", + &s_operands[631], + 4, + }, + { + SpirvOp::OpBitwiseAnd, + R"(OpBitwiseAnd)", + &s_operands[635], + 4, + }, + { + SpirvOp::OpNot, + R"(OpNot)", + &s_operands[639], + 3, + }, + { + SpirvOp::OpBitFieldInsert, + R"(OpBitFieldInsert)", + &s_operands[642], + 6, + }, + { + SpirvOp::OpBitFieldSExtract, + R"(OpBitFieldSExtract)", + &s_operands[648], + 5, + }, + { + SpirvOp::OpBitFieldUExtract, + R"(OpBitFieldUExtract)", + &s_operands[653], + 5, + }, + { + SpirvOp::OpBitReverse, + R"(OpBitReverse)", + &s_operands[658], + 3, + }, + { + SpirvOp::OpBitCount, + R"(OpBitCount)", + &s_operands[661], + 3, + }, + { + SpirvOp::OpDPdx, + R"(OpDPdx)", + &s_operands[664], + 3, + }, + { + SpirvOp::OpDPdy, + R"(OpDPdy)", + &s_operands[667], + 3, + }, + { + SpirvOp::OpFwidth, + R"(OpFwidth)", + &s_operands[670], + 3, + }, + { + SpirvOp::OpDPdxFine, + R"(OpDPdxFine)", + &s_operands[673], + 3, + }, + { + SpirvOp::OpDPdyFine, + R"(OpDPdyFine)", + &s_operands[676], + 3, + }, + { + SpirvOp::OpFwidthFine, + R"(OpFwidthFine)", + &s_operands[679], + 3, + }, + { + SpirvOp::OpDPdxCoarse, + R"(OpDPdxCoarse)", + &s_operands[682], + 3, + }, + { + SpirvOp::OpDPdyCoarse, + R"(OpDPdyCoarse)", + &s_operands[685], + 3, + }, + { + SpirvOp::OpFwidthCoarse, + R"(OpFwidthCoarse)", + &s_operands[688], + 3, + }, + { + SpirvOp::OpEmitVertex, + R"(OpEmitVertex)", + nullptr, + 0, + }, + { + SpirvOp::OpEndPrimitive, + R"(OpEndPrimitive)", + nullptr, + 0, + }, + { + SpirvOp::OpEmitStreamVertex, + R"(OpEmitStreamVertex)", + &s_operands[691], + 1, + }, + { + SpirvOp::OpEndStreamPrimitive, + R"(OpEndStreamPrimitive)", + &s_operands[692], + 1, + }, + { + SpirvOp::OpControlBarrier, + R"(OpControlBarrier)", + &s_operands[693], + 3, + }, + { + SpirvOp::OpMemoryBarrier, + R"(OpMemoryBarrier)", + &s_operands[696], + 2, + }, + { + SpirvOp::OpAtomicLoad, + R"(OpAtomicLoad)", + &s_operands[698], + 5, + }, + { + SpirvOp::OpAtomicStore, + R"(OpAtomicStore)", + &s_operands[703], + 4, + }, + { + SpirvOp::OpAtomicExchange, + R"(OpAtomicExchange)", + &s_operands[707], + 6, + }, + { + SpirvOp::OpAtomicCompareExchange, + R"(OpAtomicCompareExchange)", + &s_operands[713], + 8, + }, + { + SpirvOp::OpAtomicCompareExchangeWeak, + R"(OpAtomicCompareExchangeWeak)", + &s_operands[721], + 8, + }, + { + SpirvOp::OpAtomicIIncrement, + R"(OpAtomicIIncrement)", + &s_operands[729], + 5, + }, + { + SpirvOp::OpAtomicIDecrement, + R"(OpAtomicIDecrement)", + &s_operands[734], + 5, + }, + { + SpirvOp::OpAtomicIAdd, + R"(OpAtomicIAdd)", + &s_operands[739], + 6, + }, + { + SpirvOp::OpAtomicISub, + R"(OpAtomicISub)", + &s_operands[745], + 6, + }, + { + SpirvOp::OpAtomicSMin, + R"(OpAtomicSMin)", + &s_operands[751], + 6, + }, + { + SpirvOp::OpAtomicUMin, + R"(OpAtomicUMin)", + &s_operands[757], + 6, + }, + { + SpirvOp::OpAtomicSMax, + R"(OpAtomicSMax)", + &s_operands[763], + 6, + }, + { + SpirvOp::OpAtomicUMax, + R"(OpAtomicUMax)", + &s_operands[769], + 6, + }, + { + SpirvOp::OpAtomicAnd, + R"(OpAtomicAnd)", + &s_operands[775], + 6, + }, + { + SpirvOp::OpAtomicOr, + R"(OpAtomicOr)", + &s_operands[781], + 6, + }, + { + SpirvOp::OpAtomicXor, + R"(OpAtomicXor)", + &s_operands[787], + 6, + }, + { + SpirvOp::OpPhi, + R"(OpPhi)", + &s_operands[793], + 3, + }, + { + SpirvOp::OpLoopMerge, + R"(OpLoopMerge)", + &s_operands[796], + 3, + }, + { + SpirvOp::OpSelectionMerge, + R"(OpSelectionMerge)", + &s_operands[799], + 2, + }, + { + SpirvOp::OpLabel, + R"(OpLabel)", + &s_operands[801], + 1, + }, + { + SpirvOp::OpBranch, + R"(OpBranch)", + &s_operands[802], + 1, + }, + { + SpirvOp::OpBranchConditional, + R"(OpBranchConditional)", + &s_operands[803], + 4, + }, + { + SpirvOp::OpSwitch, + R"(OpSwitch)", + &s_operands[807], + 3, + }, + { + SpirvOp::OpKill, + R"(OpKill)", + nullptr, + 0, + }, + { + SpirvOp::OpReturn, + R"(OpReturn)", + nullptr, + 0, + }, + { + SpirvOp::OpReturnValue, + R"(OpReturnValue)", + &s_operands[810], + 1, + }, + { + SpirvOp::OpUnreachable, + R"(OpUnreachable)", + nullptr, + 0, + }, + { + SpirvOp::OpLifetimeStart, + R"(OpLifetimeStart)", + &s_operands[811], + 2, + }, + { + SpirvOp::OpLifetimeStop, + R"(OpLifetimeStop)", + &s_operands[813], + 2, + }, + { + SpirvOp::OpGroupAsyncCopy, + R"(OpGroupAsyncCopy)", + &s_operands[815], + 8, + }, + { + SpirvOp::OpGroupWaitEvents, + R"(OpGroupWaitEvents)", + &s_operands[823], + 3, + }, + { + SpirvOp::OpGroupAll, + R"(OpGroupAll)", + &s_operands[826], + 4, + }, + { + SpirvOp::OpGroupAny, + R"(OpGroupAny)", + &s_operands[830], + 4, + }, + { + SpirvOp::OpGroupBroadcast, + R"(OpGroupBroadcast)", + &s_operands[834], + 5, + }, + { + SpirvOp::OpGroupIAdd, + R"(OpGroupIAdd)", + &s_operands[839], + 5, + }, + { + SpirvOp::OpGroupFAdd, + R"(OpGroupFAdd)", + &s_operands[844], + 5, + }, + { + SpirvOp::OpGroupFMin, + R"(OpGroupFMin)", + &s_operands[849], + 5, + }, + { + SpirvOp::OpGroupUMin, + R"(OpGroupUMin)", + &s_operands[854], + 5, + }, + { + SpirvOp::OpGroupSMin, + R"(OpGroupSMin)", + &s_operands[859], + 5, + }, + { + SpirvOp::OpGroupFMax, + R"(OpGroupFMax)", + &s_operands[864], + 5, + }, + { + SpirvOp::OpGroupUMax, + R"(OpGroupUMax)", + &s_operands[869], + 5, + }, + { + SpirvOp::OpGroupSMax, + R"(OpGroupSMax)", + &s_operands[874], + 5, + }, + { + SpirvOp::OpReadPipe, + R"(OpReadPipe)", + &s_operands[879], + 6, + }, + { + SpirvOp::OpWritePipe, + R"(OpWritePipe)", + &s_operands[885], + 6, + }, + { + SpirvOp::OpReservedReadPipe, + R"(OpReservedReadPipe)", + &s_operands[891], + 8, + }, + { + SpirvOp::OpReservedWritePipe, + R"(OpReservedWritePipe)", + &s_operands[899], + 8, + }, + { + SpirvOp::OpReserveReadPipePackets, + R"(OpReserveReadPipePackets)", + &s_operands[907], + 6, + }, + { + SpirvOp::OpReserveWritePipePackets, + R"(OpReserveWritePipePackets)", + &s_operands[913], + 6, + }, + { + SpirvOp::OpCommitReadPipe, + R"(OpCommitReadPipe)", + &s_operands[919], + 4, + }, + { + SpirvOp::OpCommitWritePipe, + R"(OpCommitWritePipe)", + &s_operands[923], + 4, + }, + { + SpirvOp::OpIsValidReserveId, + R"(OpIsValidReserveId)", + &s_operands[927], + 3, + }, + { + SpirvOp::OpGetNumPipePackets, + R"(OpGetNumPipePackets)", + &s_operands[930], + 5, + }, + { + SpirvOp::OpGetMaxPipePackets, + R"(OpGetMaxPipePackets)", + &s_operands[935], + 5, + }, + { + SpirvOp::OpGroupReserveReadPipePackets, + R"(OpGroupReserveReadPipePackets)", + &s_operands[940], + 7, + }, + { + SpirvOp::OpGroupReserveWritePipePackets, + R"(OpGroupReserveWritePipePackets)", + &s_operands[947], + 7, + }, + { + SpirvOp::OpGroupCommitReadPipe, + R"(OpGroupCommitReadPipe)", + &s_operands[954], + 5, + }, + { + SpirvOp::OpGroupCommitWritePipe, + R"(OpGroupCommitWritePipe)", + &s_operands[959], + 5, + }, + { + SpirvOp::OpEnqueueMarker, + R"(OpEnqueueMarker)", + &s_operands[964], + 6, + }, + { + SpirvOp::OpEnqueueKernel, + R"(OpEnqueueKernel)", + &s_operands[970], + 13, + }, + { + SpirvOp::OpGetKernelNDrangeSubGroupCount, + R"(OpGetKernelNDrangeSubGroupCount)", + &s_operands[983], + 7, + }, + { + SpirvOp::OpGetKernelNDrangeMaxSubGroupSize, + R"(OpGetKernelNDrangeMaxSubGroupSize)", + &s_operands[990], + 7, + }, + { + SpirvOp::OpGetKernelWorkGroupSize, + R"(OpGetKernelWorkGroupSize)", + &s_operands[997], + 6, + }, + { + SpirvOp::OpGetKernelPreferredWorkGroupSizeMultiple, + R"(OpGetKernelPreferredWorkGroupSizeMultiple)", + &s_operands[1003], + 6, + }, + { + SpirvOp::OpRetainEvent, + R"(OpRetainEvent)", + &s_operands[1009], + 1, + }, + { + SpirvOp::OpReleaseEvent, + R"(OpReleaseEvent)", + &s_operands[1010], + 1, + }, + { + SpirvOp::OpCreateUserEvent, + R"(OpCreateUserEvent)", + &s_operands[1011], + 2, + }, + { + SpirvOp::OpIsValidEvent, + R"(OpIsValidEvent)", + &s_operands[1013], + 3, + }, + { + SpirvOp::OpSetUserEventStatus, + R"(OpSetUserEventStatus)", + &s_operands[1016], + 2, + }, + { + SpirvOp::OpCaptureEventProfilingInfo, + R"(OpCaptureEventProfilingInfo)", + &s_operands[1018], + 3, + }, + { + SpirvOp::OpGetDefaultQueue, + R"(OpGetDefaultQueue)", + &s_operands[1021], + 2, + }, + { + SpirvOp::OpBuildNDRange, + R"(OpBuildNDRange)", + &s_operands[1023], + 5, + }, + { + SpirvOp::OpImageSparseSampleImplicitLod, + R"(OpImageSparseSampleImplicitLod)", + &s_operands[1028], + 5, + }, + { + SpirvOp::OpImageSparseSampleExplicitLod, + R"(OpImageSparseSampleExplicitLod)", + &s_operands[1033], + 5, + }, + { + SpirvOp::OpImageSparseSampleDrefImplicitLod, + R"(OpImageSparseSampleDrefImplicitLod)", + &s_operands[1038], + 6, + }, + { + SpirvOp::OpImageSparseSampleDrefExplicitLod, + R"(OpImageSparseSampleDrefExplicitLod)", + &s_operands[1044], + 6, + }, + { + SpirvOp::OpImageSparseSampleProjImplicitLod, + R"(OpImageSparseSampleProjImplicitLod)", + &s_operands[1050], + 5, + }, + { + SpirvOp::OpImageSparseSampleProjExplicitLod, + R"(OpImageSparseSampleProjExplicitLod)", + &s_operands[1055], + 5, + }, + { + SpirvOp::OpImageSparseSampleProjDrefImplicitLod, + R"(OpImageSparseSampleProjDrefImplicitLod)", + &s_operands[1060], + 6, + }, + { + SpirvOp::OpImageSparseSampleProjDrefExplicitLod, + R"(OpImageSparseSampleProjDrefExplicitLod)", + &s_operands[1066], + 6, + }, + { + SpirvOp::OpImageSparseFetch, + R"(OpImageSparseFetch)", + &s_operands[1072], + 5, + }, + { + SpirvOp::OpImageSparseGather, + R"(OpImageSparseGather)", + &s_operands[1077], + 6, + }, + { + SpirvOp::OpImageSparseDrefGather, + R"(OpImageSparseDrefGather)", + &s_operands[1083], + 6, + }, + { + SpirvOp::OpImageSparseTexelsResident, + R"(OpImageSparseTexelsResident)", + &s_operands[1089], + 3, + }, + { + SpirvOp::OpNoLine, + R"(OpNoLine)", + nullptr, + 0, + }, + { + SpirvOp::OpAtomicFlagTestAndSet, + R"(OpAtomicFlagTestAndSet)", + &s_operands[1092], + 5, + }, + { + SpirvOp::OpAtomicFlagClear, + R"(OpAtomicFlagClear)", + &s_operands[1097], + 3, + }, + { + SpirvOp::OpImageSparseRead, + R"(OpImageSparseRead)", + &s_operands[1100], + 5, + }, + { + SpirvOp::OpSizeOf, + R"(OpSizeOf)", + &s_operands[1105], + 3, + }, + { + SpirvOp::OpTypePipeStorage, + R"(OpTypePipeStorage)", + &s_operands[1108], + 1, + }, + { + SpirvOp::OpConstantPipeStorage, + R"(OpConstantPipeStorage)", + &s_operands[1109], + 5, + }, + { + SpirvOp::OpCreatePipeFromPipeStorage, + R"(OpCreatePipeFromPipeStorage)", + &s_operands[1114], + 3, + }, + { + SpirvOp::OpGetKernelLocalSizeForSubgroupCount, + R"(OpGetKernelLocalSizeForSubgroupCount)", + &s_operands[1117], + 7, + }, + { + SpirvOp::OpGetKernelMaxNumSubgroups, + R"(OpGetKernelMaxNumSubgroups)", + &s_operands[1124], + 6, + }, + { + SpirvOp::OpTypeNamedBarrier, + R"(OpTypeNamedBarrier)", + &s_operands[1130], + 1, + }, + { + SpirvOp::OpNamedBarrierInitialize, + R"(OpNamedBarrierInitialize)", + &s_operands[1131], + 3, + }, + { + SpirvOp::OpMemoryNamedBarrier, + R"(OpMemoryNamedBarrier)", + &s_operands[1134], + 3, + }, + { + SpirvOp::OpModuleProcessed, + R"(OpModuleProcessed)", + &s_operands[1137], + 1, + }, + { + SpirvOp::OpExecutionModeId, + R"(OpExecutionModeId)", + &s_operands[1138], + 2, + }, + { + SpirvOp::OpDecorateId, + R"(OpDecorateId)", + &s_operands[1140], + 2, + }, + { + SpirvOp::OpGroupNonUniformElect, + R"(OpGroupNonUniformElect)", + &s_operands[1142], + 3, + }, + { + SpirvOp::OpGroupNonUniformAll, + R"(OpGroupNonUniformAll)", + &s_operands[1145], + 4, + }, + { + SpirvOp::OpGroupNonUniformAny, + R"(OpGroupNonUniformAny)", + &s_operands[1149], + 4, + }, + { + SpirvOp::OpGroupNonUniformAllEqual, + R"(OpGroupNonUniformAllEqual)", + &s_operands[1153], + 4, + }, + { + SpirvOp::OpGroupNonUniformBroadcast, + R"(OpGroupNonUniformBroadcast)", + &s_operands[1157], + 5, + }, + { + SpirvOp::OpGroupNonUniformBroadcastFirst, + R"(OpGroupNonUniformBroadcastFirst)", + &s_operands[1162], + 4, + }, + { + SpirvOp::OpGroupNonUniformBallot, + R"(OpGroupNonUniformBallot)", + &s_operands[1166], + 4, + }, + { + SpirvOp::OpGroupNonUniformInverseBallot, + R"(OpGroupNonUniformInverseBallot)", + &s_operands[1170], + 4, + }, + { + SpirvOp::OpGroupNonUniformBallotBitExtract, + R"(OpGroupNonUniformBallotBitExtract)", + &s_operands[1174], + 5, + }, + { + SpirvOp::OpGroupNonUniformBallotBitCount, + R"(OpGroupNonUniformBallotBitCount)", + &s_operands[1179], + 5, + }, + { + SpirvOp::OpGroupNonUniformBallotFindLSB, + R"(OpGroupNonUniformBallotFindLSB)", + &s_operands[1184], + 4, + }, + { + SpirvOp::OpGroupNonUniformBallotFindMSB, + R"(OpGroupNonUniformBallotFindMSB)", + &s_operands[1188], + 4, + }, + { + SpirvOp::OpGroupNonUniformShuffle, + R"(OpGroupNonUniformShuffle)", + &s_operands[1192], + 5, + }, + { + SpirvOp::OpGroupNonUniformShuffleXor, + R"(OpGroupNonUniformShuffleXor)", + &s_operands[1197], + 5, + }, + { + SpirvOp::OpGroupNonUniformShuffleUp, + R"(OpGroupNonUniformShuffleUp)", + &s_operands[1202], + 5, + }, + { + SpirvOp::OpGroupNonUniformShuffleDown, + R"(OpGroupNonUniformShuffleDown)", + &s_operands[1207], + 5, + }, + { + SpirvOp::OpGroupNonUniformIAdd, + R"(OpGroupNonUniformIAdd)", + &s_operands[1212], + 6, + }, + { + SpirvOp::OpGroupNonUniformFAdd, + R"(OpGroupNonUniformFAdd)", + &s_operands[1218], + 6, + }, + { + SpirvOp::OpGroupNonUniformIMul, + R"(OpGroupNonUniformIMul)", + &s_operands[1224], + 6, + }, + { + SpirvOp::OpGroupNonUniformFMul, + R"(OpGroupNonUniformFMul)", + &s_operands[1230], + 6, + }, + { + SpirvOp::OpGroupNonUniformSMin, + R"(OpGroupNonUniformSMin)", + &s_operands[1236], + 6, + }, + { + SpirvOp::OpGroupNonUniformUMin, + R"(OpGroupNonUniformUMin)", + &s_operands[1242], + 6, + }, + { + SpirvOp::OpGroupNonUniformFMin, + R"(OpGroupNonUniformFMin)", + &s_operands[1248], + 6, + }, + { + SpirvOp::OpGroupNonUniformSMax, + R"(OpGroupNonUniformSMax)", + &s_operands[1254], + 6, + }, + { + SpirvOp::OpGroupNonUniformUMax, + R"(OpGroupNonUniformUMax)", + &s_operands[1260], + 6, + }, + { + SpirvOp::OpGroupNonUniformFMax, + R"(OpGroupNonUniformFMax)", + &s_operands[1266], + 6, + }, + { + SpirvOp::OpGroupNonUniformBitwiseAnd, + R"(OpGroupNonUniformBitwiseAnd)", + &s_operands[1272], + 6, + }, + { + SpirvOp::OpGroupNonUniformBitwiseOr, + R"(OpGroupNonUniformBitwiseOr)", + &s_operands[1278], + 6, + }, + { + SpirvOp::OpGroupNonUniformBitwiseXor, + R"(OpGroupNonUniformBitwiseXor)", + &s_operands[1284], + 6, + }, + { + SpirvOp::OpGroupNonUniformLogicalAnd, + R"(OpGroupNonUniformLogicalAnd)", + &s_operands[1290], + 6, + }, + { + SpirvOp::OpGroupNonUniformLogicalOr, + R"(OpGroupNonUniformLogicalOr)", + &s_operands[1296], + 6, + }, + { + SpirvOp::OpGroupNonUniformLogicalXor, + R"(OpGroupNonUniformLogicalXor)", + &s_operands[1302], + 6, + }, + { + SpirvOp::OpGroupNonUniformQuadBroadcast, + R"(OpGroupNonUniformQuadBroadcast)", + &s_operands[1308], + 5, + }, + { + SpirvOp::OpGroupNonUniformQuadSwap, + R"(OpGroupNonUniformQuadSwap)", + &s_operands[1313], + 5, + }, + { + SpirvOp::OpCopyLogical, + R"(OpCopyLogical)", + &s_operands[1318], + 3, + }, + { + SpirvOp::OpPtrEqual, + R"(OpPtrEqual)", + &s_operands[1321], + 4, + }, + { + SpirvOp::OpPtrNotEqual, + R"(OpPtrNotEqual)", + &s_operands[1325], + 4, + }, + { + SpirvOp::OpPtrDiff, + R"(OpPtrDiff)", + &s_operands[1329], + 4, + }, + { + SpirvOp::OpTerminateInvocation, + R"(OpTerminateInvocation)", + nullptr, + 0, + }, + { + SpirvOp::OpSubgroupBallotKHR, + R"(OpSubgroupBallotKHR)", + &s_operands[1333], + 3, + }, + { + SpirvOp::OpSubgroupFirstInvocationKHR, + R"(OpSubgroupFirstInvocationKHR)", + &s_operands[1336], + 3, + }, + { + SpirvOp::OpSubgroupAllKHR, + R"(OpSubgroupAllKHR)", + &s_operands[1339], + 3, + }, + { + SpirvOp::OpSubgroupAnyKHR, + R"(OpSubgroupAnyKHR)", + &s_operands[1342], + 3, + }, + { + SpirvOp::OpSubgroupAllEqualKHR, + R"(OpSubgroupAllEqualKHR)", + &s_operands[1345], + 3, + }, + { + SpirvOp::OpSubgroupReadInvocationKHR, + R"(OpSubgroupReadInvocationKHR)", + &s_operands[1348], + 4, + }, + { + SpirvOp::OpTypeRayQueryProvisionalKHR, + R"(OpTypeRayQueryProvisionalKHR)", + &s_operands[1352], + 1, + }, + { + SpirvOp::OpRayQueryInitializeKHR, + R"(OpRayQueryInitializeKHR)", + &s_operands[1353], + 8, + }, + { + SpirvOp::OpRayQueryTerminateKHR, + R"(OpRayQueryTerminateKHR)", + &s_operands[1361], + 1, + }, + { + SpirvOp::OpRayQueryGenerateIntersectionKHR, + R"(OpRayQueryGenerateIntersectionKHR)", + &s_operands[1362], + 2, + }, + { + SpirvOp::OpRayQueryConfirmIntersectionKHR, + R"(OpRayQueryConfirmIntersectionKHR)", + &s_operands[1364], + 1, + }, + { + SpirvOp::OpRayQueryProceedKHR, + R"(OpRayQueryProceedKHR)", + &s_operands[1365], + 3, + }, + { + SpirvOp::OpRayQueryGetIntersectionTypeKHR, + R"(OpRayQueryGetIntersectionTypeKHR)", + &s_operands[1368], + 4, + }, + { + SpirvOp::OpGroupIAddNonUniformAMD, + R"(OpGroupIAddNonUniformAMD)", + &s_operands[1372], + 5, + }, + { + SpirvOp::OpGroupFAddNonUniformAMD, + R"(OpGroupFAddNonUniformAMD)", + &s_operands[1377], + 5, + }, + { + SpirvOp::OpGroupFMinNonUniformAMD, + R"(OpGroupFMinNonUniformAMD)", + &s_operands[1382], + 5, + }, + { + SpirvOp::OpGroupUMinNonUniformAMD, + R"(OpGroupUMinNonUniformAMD)", + &s_operands[1387], + 5, + }, + { + SpirvOp::OpGroupSMinNonUniformAMD, + R"(OpGroupSMinNonUniformAMD)", + &s_operands[1392], + 5, + }, + { + SpirvOp::OpGroupFMaxNonUniformAMD, + R"(OpGroupFMaxNonUniformAMD)", + &s_operands[1397], + 5, + }, + { + SpirvOp::OpGroupUMaxNonUniformAMD, + R"(OpGroupUMaxNonUniformAMD)", + &s_operands[1402], + 5, + }, + { + SpirvOp::OpGroupSMaxNonUniformAMD, + R"(OpGroupSMaxNonUniformAMD)", + &s_operands[1407], + 5, + }, + { + SpirvOp::OpFragmentMaskFetchAMD, + R"(OpFragmentMaskFetchAMD)", + &s_operands[1412], + 4, + }, + { + SpirvOp::OpFragmentFetchAMD, + R"(OpFragmentFetchAMD)", + &s_operands[1416], + 5, + }, + { + SpirvOp::OpReadClockKHR, + R"(OpReadClockKHR)", + &s_operands[1421], + 3, + }, + { + SpirvOp::OpImageSampleFootprintNV, + R"(OpImageSampleFootprintNV)", + &s_operands[1424], + 7, + }, + { + SpirvOp::OpGroupNonUniformPartitionNV, + R"(OpGroupNonUniformPartitionNV)", + &s_operands[1431], + 3, + }, + { + SpirvOp::OpWritePackedPrimitiveIndices4x8NV, + R"(OpWritePackedPrimitiveIndices4x8NV)", + &s_operands[1434], + 2, + }, + { + SpirvOp::OpReportIntersectionKHR, + R"(OpReportIntersectionKHR)", + &s_operands[1436], + 4, + }, + { + SpirvOp::OpIgnoreIntersectionKHR, + R"(OpIgnoreIntersectionKHR)", + nullptr, + 0, + }, + { + SpirvOp::OpTerminateRayKHR, + R"(OpTerminateRayKHR)", + nullptr, + 0, + }, + { + SpirvOp::OpTraceRayKHR, + R"(OpTraceRayKHR)", + &s_operands[1440], + 11, + }, + { + SpirvOp::OpTypeAccelerationStructureKHR, + R"(OpTypeAccelerationStructureKHR)", + &s_operands[1451], + 1, + }, + { + SpirvOp::OpExecuteCallableKHR, + R"(OpExecuteCallableKHR)", + &s_operands[1452], + 2, + }, + { + SpirvOp::OpTypeCooperativeMatrixNV, + R"(OpTypeCooperativeMatrixNV)", + &s_operands[1454], + 5, + }, + { + SpirvOp::OpCooperativeMatrixLoadNV, + R"(OpCooperativeMatrixLoadNV)", + &s_operands[1459], + 6, + }, + { + SpirvOp::OpCooperativeMatrixStoreNV, + R"(OpCooperativeMatrixStoreNV)", + &s_operands[1465], + 5, + }, + { + SpirvOp::OpCooperativeMatrixMulAddNV, + R"(OpCooperativeMatrixMulAddNV)", + &s_operands[1470], + 5, + }, + { + SpirvOp::OpCooperativeMatrixLengthNV, + R"(OpCooperativeMatrixLengthNV)", + &s_operands[1475], + 3, + }, + { + SpirvOp::OpBeginInvocationInterlockEXT, + R"(OpBeginInvocationInterlockEXT)", + nullptr, + 0, + }, + { + SpirvOp::OpEndInvocationInterlockEXT, + R"(OpEndInvocationInterlockEXT)", + nullptr, + 0, + }, + { + SpirvOp::OpDemoteToHelperInvocationEXT, + R"(OpDemoteToHelperInvocationEXT)", + nullptr, + 0, + }, + { + SpirvOp::OpIsHelperInvocationEXT, + R"(OpIsHelperInvocationEXT)", + &s_operands[1478], + 2, + }, + { + SpirvOp::OpSubgroupShuffleINTEL, + R"(OpSubgroupShuffleINTEL)", + &s_operands[1480], + 4, + }, + { + SpirvOp::OpSubgroupShuffleDownINTEL, + R"(OpSubgroupShuffleDownINTEL)", + &s_operands[1484], + 5, + }, + { + SpirvOp::OpSubgroupShuffleUpINTEL, + R"(OpSubgroupShuffleUpINTEL)", + &s_operands[1489], + 5, + }, + { + SpirvOp::OpSubgroupShuffleXorINTEL, + R"(OpSubgroupShuffleXorINTEL)", + &s_operands[1494], + 4, + }, + { + SpirvOp::OpSubgroupBlockReadINTEL, + R"(OpSubgroupBlockReadINTEL)", + &s_operands[1498], + 3, + }, + { + SpirvOp::OpSubgroupBlockWriteINTEL, + R"(OpSubgroupBlockWriteINTEL)", + &s_operands[1501], + 2, + }, + { + SpirvOp::OpSubgroupImageBlockReadINTEL, + R"(OpSubgroupImageBlockReadINTEL)", + &s_operands[1503], + 4, + }, + { + SpirvOp::OpSubgroupImageBlockWriteINTEL, + R"(OpSubgroupImageBlockWriteINTEL)", + &s_operands[1507], + 3, + }, + { + SpirvOp::OpSubgroupImageMediaBlockReadINTEL, + R"(OpSubgroupImageMediaBlockReadINTEL)", + &s_operands[1510], + 6, + }, + { + SpirvOp::OpSubgroupImageMediaBlockWriteINTEL, + R"(OpSubgroupImageMediaBlockWriteINTEL)", + &s_operands[1516], + 5, + }, + { + SpirvOp::OpUCountLeadingZerosINTEL, + R"(OpUCountLeadingZerosINTEL)", + &s_operands[1521], + 3, + }, + { + SpirvOp::OpUCountTrailingZerosINTEL, + R"(OpUCountTrailingZerosINTEL)", + &s_operands[1524], + 3, + }, + { + SpirvOp::OpAbsISubINTEL, + R"(OpAbsISubINTEL)", + &s_operands[1527], + 4, + }, + { + SpirvOp::OpAbsUSubINTEL, + R"(OpAbsUSubINTEL)", + &s_operands[1531], + 4, + }, + { + SpirvOp::OpIAddSatINTEL, + R"(OpIAddSatINTEL)", + &s_operands[1535], + 4, + }, + { + SpirvOp::OpUAddSatINTEL, + R"(OpUAddSatINTEL)", + &s_operands[1539], + 4, + }, + { + SpirvOp::OpIAverageINTEL, + R"(OpIAverageINTEL)", + &s_operands[1543], + 4, + }, + { + SpirvOp::OpUAverageINTEL, + R"(OpUAverageINTEL)", + &s_operands[1547], + 4, + }, + { + SpirvOp::OpIAverageRoundedINTEL, + R"(OpIAverageRoundedINTEL)", + &s_operands[1551], + 4, + }, + { + SpirvOp::OpUAverageRoundedINTEL, + R"(OpUAverageRoundedINTEL)", + &s_operands[1555], + 4, + }, + { + SpirvOp::OpISubSatINTEL, + R"(OpISubSatINTEL)", + &s_operands[1559], + 4, + }, + { + SpirvOp::OpUSubSatINTEL, + R"(OpUSubSatINTEL)", + &s_operands[1563], + 4, + }, + { + SpirvOp::OpIMul32x16INTEL, + R"(OpIMul32x16INTEL)", + &s_operands[1567], + 4, + }, + { + SpirvOp::OpUMul32x16INTEL, + R"(OpUMul32x16INTEL)", + &s_operands[1571], + 4, + }, + { + SpirvOp::OpFunctionPointerINTEL, + R"(OpFunctionPointerINTEL)", + &s_operands[1575], + 3, + }, + { + SpirvOp::OpFunctionPointerCallINTEL, + R"(OpFunctionPointerCallINTEL)", + &s_operands[1578], + 3, + }, + { + SpirvOp::OpDecorateStringGOOGLE, + R"(OpDecorateStringGOOGLE)", + &s_operands[1581], + 2, + }, + { + SpirvOp::OpMemberDecorateStringGOOGLE, + R"(OpMemberDecorateStringGOOGLE)", + &s_operands[1583], + 3, + }, + { + SpirvOp::OpVmeImageINTEL, + R"(OpVmeImageINTEL)", + &s_operands[1586], + 4, + }, + { + SpirvOp::OpTypeVmeImageINTEL, + R"(OpTypeVmeImageINTEL)", + &s_operands[1590], + 2, + }, + { + SpirvOp::OpTypeAvcImePayloadINTEL, + R"(OpTypeAvcImePayloadINTEL)", + &s_operands[1592], + 1, + }, + { + SpirvOp::OpTypeAvcRefPayloadINTEL, + R"(OpTypeAvcRefPayloadINTEL)", + &s_operands[1593], + 1, + }, + { + SpirvOp::OpTypeAvcSicPayloadINTEL, + R"(OpTypeAvcSicPayloadINTEL)", + &s_operands[1594], + 1, + }, + { + SpirvOp::OpTypeAvcMcePayloadINTEL, + R"(OpTypeAvcMcePayloadINTEL)", + &s_operands[1595], + 1, + }, + { + SpirvOp::OpTypeAvcMceResultINTEL, + R"(OpTypeAvcMceResultINTEL)", + &s_operands[1596], + 1, + }, + { + SpirvOp::OpTypeAvcImeResultINTEL, + R"(OpTypeAvcImeResultINTEL)", + &s_operands[1597], + 1, + }, + { + SpirvOp::OpTypeAvcImeResultSingleReferenceStreamoutINTEL, + R"(OpTypeAvcImeResultSingleReferenceStreamoutINTEL)", + &s_operands[1598], + 1, + }, + { + SpirvOp::OpTypeAvcImeResultDualReferenceStreamoutINTEL, + R"(OpTypeAvcImeResultDualReferenceStreamoutINTEL)", + &s_operands[1599], + 1, + }, + { + SpirvOp::OpTypeAvcImeSingleReferenceStreaminINTEL, + R"(OpTypeAvcImeSingleReferenceStreaminINTEL)", + &s_operands[1600], + 1, + }, + { + SpirvOp::OpTypeAvcImeDualReferenceStreaminINTEL, + R"(OpTypeAvcImeDualReferenceStreaminINTEL)", + &s_operands[1601], + 1, + }, + { + SpirvOp::OpTypeAvcRefResultINTEL, + R"(OpTypeAvcRefResultINTEL)", + &s_operands[1602], + 1, + }, + { + SpirvOp::OpTypeAvcSicResultINTEL, + R"(OpTypeAvcSicResultINTEL)", + &s_operands[1603], + 1, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL, + R"(OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL)", + &s_operands[1604], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL, + R"(OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL)", + &s_operands[1608], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL, + R"(OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL)", + &s_operands[1612], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceSetInterShapePenaltyINTEL, + R"(OpSubgroupAvcMceSetInterShapePenaltyINTEL)", + &s_operands[1616], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL, + R"(OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL)", + &s_operands[1620], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL, + R"(OpSubgroupAvcMceSetInterDirectionPenaltyINTEL)", + &s_operands[1624], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL, + R"(OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL)", + &s_operands[1628], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL, + R"(OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL)", + &s_operands[1632], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL, + R"(OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL)", + &s_operands[1636], + 2, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL, + R"(OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL)", + &s_operands[1638], + 2, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL, + R"(OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL)", + &s_operands[1640], + 2, + }, + { + SpirvOp::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL, + R"(OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL)", + &s_operands[1642], + 6, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL, + R"(OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL)", + &s_operands[1648], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL, + R"(OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL)", + &s_operands[1652], + 2, + }, + { + SpirvOp::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL, + R"(OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL)", + &s_operands[1654], + 2, + }, + { + SpirvOp::OpSubgroupAvcMceSetAcOnlyHaarINTEL, + R"(OpSubgroupAvcMceSetAcOnlyHaarINTEL)", + &s_operands[1656], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL, + R"(OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL)", + &s_operands[1659], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL, + R"(OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL)", + &s_operands[1663], + 4, + }, + { + SpirvOp::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL, + R"(OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL)", + &s_operands[1667], + 5, + }, + { + SpirvOp::OpSubgroupAvcMceConvertToImePayloadINTEL, + R"(OpSubgroupAvcMceConvertToImePayloadINTEL)", + &s_operands[1672], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceConvertToImeResultINTEL, + R"(OpSubgroupAvcMceConvertToImeResultINTEL)", + &s_operands[1675], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceConvertToRefPayloadINTEL, + R"(OpSubgroupAvcMceConvertToRefPayloadINTEL)", + &s_operands[1678], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceConvertToRefResultINTEL, + R"(OpSubgroupAvcMceConvertToRefResultINTEL)", + &s_operands[1681], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceConvertToSicPayloadINTEL, + R"(OpSubgroupAvcMceConvertToSicPayloadINTEL)", + &s_operands[1684], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceConvertToSicResultINTEL, + R"(OpSubgroupAvcMceConvertToSicResultINTEL)", + &s_operands[1687], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceGetMotionVectorsINTEL, + R"(OpSubgroupAvcMceGetMotionVectorsINTEL)", + &s_operands[1690], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceGetInterDistortionsINTEL, + R"(OpSubgroupAvcMceGetInterDistortionsINTEL)", + &s_operands[1693], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceGetBestInterDistortionsINTEL, + R"(OpSubgroupAvcMceGetBestInterDistortionsINTEL)", + &s_operands[1696], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceGetInterMajorShapeINTEL, + R"(OpSubgroupAvcMceGetInterMajorShapeINTEL)", + &s_operands[1699], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceGetInterMinorShapeINTEL, + R"(OpSubgroupAvcMceGetInterMinorShapeINTEL)", + &s_operands[1702], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceGetInterDirectionsINTEL, + R"(OpSubgroupAvcMceGetInterDirectionsINTEL)", + &s_operands[1705], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceGetInterMotionVectorCountINTEL, + R"(OpSubgroupAvcMceGetInterMotionVectorCountINTEL)", + &s_operands[1708], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceGetInterReferenceIdsINTEL, + R"(OpSubgroupAvcMceGetInterReferenceIdsINTEL)", + &s_operands[1711], + 3, + }, + { + SpirvOp::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL, + R"(OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL)", + &s_operands[1714], + 5, + }, + { + SpirvOp::OpSubgroupAvcImeInitializeINTEL, + R"(OpSubgroupAvcImeInitializeINTEL)", + &s_operands[1719], + 5, + }, + { + SpirvOp::OpSubgroupAvcImeSetSingleReferenceINTEL, + R"(OpSubgroupAvcImeSetSingleReferenceINTEL)", + &s_operands[1724], + 5, + }, + { + SpirvOp::OpSubgroupAvcImeSetDualReferenceINTEL, + R"(OpSubgroupAvcImeSetDualReferenceINTEL)", + &s_operands[1729], + 6, + }, + { + SpirvOp::OpSubgroupAvcImeRefWindowSizeINTEL, + R"(OpSubgroupAvcImeRefWindowSizeINTEL)", + &s_operands[1735], + 4, + }, + { + SpirvOp::OpSubgroupAvcImeAdjustRefOffsetINTEL, + R"(OpSubgroupAvcImeAdjustRefOffsetINTEL)", + &s_operands[1739], + 6, + }, + { + SpirvOp::OpSubgroupAvcImeConvertToMcePayloadINTEL, + R"(OpSubgroupAvcImeConvertToMcePayloadINTEL)", + &s_operands[1745], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL, + R"(OpSubgroupAvcImeSetMaxMotionVectorCountINTEL)", + &s_operands[1748], + 4, + }, + { + SpirvOp::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL, + R"(OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL)", + &s_operands[1752], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL, + R"(OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL)", + &s_operands[1755], + 4, + }, + { + SpirvOp::OpSubgroupAvcImeSetWeightedSadINTEL, + R"(OpSubgroupAvcImeSetWeightedSadINTEL)", + &s_operands[1759], + 4, + }, + { + SpirvOp::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL, + R"(OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL)", + &s_operands[1763], + 5, + }, + { + SpirvOp::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL, + R"(OpSubgroupAvcImeEvaluateWithDualReferenceINTEL)", + &s_operands[1768], + 6, + }, + { + SpirvOp::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL, + R"(OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL)", + &s_operands[1774], + 6, + }, + { + SpirvOp::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL, + R"(OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL)", + &s_operands[1780], + 7, + }, + { + SpirvOp::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL, + R"(OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL)", + &s_operands[1787], + 5, + }, + { + SpirvOp::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL, + R"(OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL)", + &s_operands[1792], + 6, + }, + { + SpirvOp::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL, + R"(OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL)", + &s_operands[1798], + 6, + }, + { + SpirvOp::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL, + R"(OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL)", + &s_operands[1804], + 7, + }, + { + SpirvOp::OpSubgroupAvcImeConvertToMceResultINTEL, + R"(OpSubgroupAvcImeConvertToMceResultINTEL)", + &s_operands[1811], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL, + R"(OpSubgroupAvcImeGetSingleReferenceStreaminINTEL)", + &s_operands[1814], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeGetDualReferenceStreaminINTEL, + R"(OpSubgroupAvcImeGetDualReferenceStreaminINTEL)", + &s_operands[1817], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL, + R"(OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL)", + &s_operands[1820], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL, + R"(OpSubgroupAvcImeStripDualReferenceStreamoutINTEL)", + &s_operands[1823], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL, + R"(OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL)", + &s_operands[1826], + 4, + }, + { + SpirvOp::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL, + R"(OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL)", + &s_operands[1830], + 4, + }, + { + SpirvOp::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL, + R"(OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL)", + &s_operands[1834], + 4, + }, + { + SpirvOp::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL, + R"(OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL)", + &s_operands[1838], + 5, + }, + { + SpirvOp::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL, + R"(OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL)", + &s_operands[1843], + 5, + }, + { + SpirvOp::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL, + R"(OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL)", + &s_operands[1848], + 5, + }, + { + SpirvOp::OpSubgroupAvcImeGetBorderReachedINTEL, + R"(OpSubgroupAvcImeGetBorderReachedINTEL)", + &s_operands[1853], + 4, + }, + { + SpirvOp::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL, + R"(OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL)", + &s_operands[1857], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL, + R"(OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL)", + &s_operands[1860], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL, + R"(OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL)", + &s_operands[1863], + 3, + }, + { + SpirvOp::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL, + R"(OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL)", + &s_operands[1866], + 3, + }, + { + SpirvOp::OpSubgroupAvcFmeInitializeINTEL, + R"(OpSubgroupAvcFmeInitializeINTEL)", + &s_operands[1869], + 9, + }, + { + SpirvOp::OpSubgroupAvcBmeInitializeINTEL, + R"(OpSubgroupAvcBmeInitializeINTEL)", + &s_operands[1878], + 10, + }, + { + SpirvOp::OpSubgroupAvcRefConvertToMcePayloadINTEL, + R"(OpSubgroupAvcRefConvertToMcePayloadINTEL)", + &s_operands[1888], + 3, + }, + { + SpirvOp::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL, + R"(OpSubgroupAvcRefSetBidirectionalMixDisableINTEL)", + &s_operands[1891], + 3, + }, + { + SpirvOp::OpSubgroupAvcRefSetBilinearFilterEnableINTEL, + R"(OpSubgroupAvcRefSetBilinearFilterEnableINTEL)", + &s_operands[1894], + 3, + }, + { + SpirvOp::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL, + R"(OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL)", + &s_operands[1897], + 5, + }, + { + SpirvOp::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL, + R"(OpSubgroupAvcRefEvaluateWithDualReferenceINTEL)", + &s_operands[1902], + 6, + }, + { + SpirvOp::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL, + R"(OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL)", + &s_operands[1908], + 5, + }, + { + SpirvOp::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL, + R"(OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL)", + &s_operands[1913], + 6, + }, + { + SpirvOp::OpSubgroupAvcRefConvertToMceResultINTEL, + R"(OpSubgroupAvcRefConvertToMceResultINTEL)", + &s_operands[1919], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicInitializeINTEL, + R"(OpSubgroupAvcSicInitializeINTEL)", + &s_operands[1922], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicConfigureSkcINTEL, + R"(OpSubgroupAvcSicConfigureSkcINTEL)", + &s_operands[1925], + 8, + }, + { + SpirvOp::OpSubgroupAvcSicConfigureIpeLumaINTEL, + R"(OpSubgroupAvcSicConfigureIpeLumaINTEL)", + &s_operands[1933], + 10, + }, + { + SpirvOp::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL, + R"(OpSubgroupAvcSicConfigureIpeLumaChromaINTEL)", + &s_operands[1943], + 13, + }, + { + SpirvOp::OpSubgroupAvcSicGetMotionVectorMaskINTEL, + R"(OpSubgroupAvcSicGetMotionVectorMaskINTEL)", + &s_operands[1956], + 4, + }, + { + SpirvOp::OpSubgroupAvcSicConvertToMcePayloadINTEL, + R"(OpSubgroupAvcSicConvertToMcePayloadINTEL)", + &s_operands[1960], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL, + R"(OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL)", + &s_operands[1963], + 4, + }, + { + SpirvOp::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL, + R"(OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL)", + &s_operands[1967], + 6, + }, + { + SpirvOp::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL, + R"(OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL)", + &s_operands[1973], + 4, + }, + { + SpirvOp::OpSubgroupAvcSicSetBilinearFilterEnableINTEL, + R"(OpSubgroupAvcSicSetBilinearFilterEnableINTEL)", + &s_operands[1977], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL, + R"(OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL)", + &s_operands[1980], + 4, + }, + { + SpirvOp::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL, + R"(OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL)", + &s_operands[1984], + 4, + }, + { + SpirvOp::OpSubgroupAvcSicEvaluateIpeINTEL, + R"(OpSubgroupAvcSicEvaluateIpeINTEL)", + &s_operands[1988], + 4, + }, + { + SpirvOp::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL, + R"(OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL)", + &s_operands[1992], + 5, + }, + { + SpirvOp::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL, + R"(OpSubgroupAvcSicEvaluateWithDualReferenceINTEL)", + &s_operands[1997], + 6, + }, + { + SpirvOp::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL, + R"(OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL)", + &s_operands[2003], + 5, + }, + { + SpirvOp::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL, + R"(OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL)", + &s_operands[2008], + 6, + }, + { + SpirvOp::OpSubgroupAvcSicConvertToMceResultINTEL, + R"(OpSubgroupAvcSicConvertToMceResultINTEL)", + &s_operands[2014], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicGetIpeLumaShapeINTEL, + R"(OpSubgroupAvcSicGetIpeLumaShapeINTEL)", + &s_operands[2017], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL, + R"(OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL)", + &s_operands[2020], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL, + R"(OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL)", + &s_operands[2023], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL, + R"(OpSubgroupAvcSicGetPackedIpeLumaModesINTEL)", + &s_operands[2026], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicGetIpeChromaModeINTEL, + R"(OpSubgroupAvcSicGetIpeChromaModeINTEL)", + &s_operands[2029], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL, + R"(OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL)", + &s_operands[2032], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL, + R"(OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL)", + &s_operands[2035], + 3, + }, + { + SpirvOp::OpSubgroupAvcSicGetInterRawSadsINTEL, + R"(OpSubgroupAvcSicGetInterRawSadsINTEL)", + &s_operands[2038], + 3, + }, + { + SpirvOp::OpLoopControlINTEL, + R"(OpLoopControlINTEL)", + &s_operands[2041], + 1, + }, + { + SpirvOp::OpReadPipeBlockingINTEL, + R"(OpReadPipeBlockingINTEL)", + &s_operands[2042], + 4, + }, + { + SpirvOp::OpWritePipeBlockingINTEL, + R"(OpWritePipeBlockingINTEL)", + &s_operands[2046], + 4, + }, + { + SpirvOp::OpFPGARegINTEL, + R"(OpFPGARegINTEL)", + &s_operands[2050], + 4, + }, + { + SpirvOp::OpRayQueryGetRayTMinKHR, + R"(OpRayQueryGetRayTMinKHR)", + &s_operands[2054], + 3, + }, + { + SpirvOp::OpRayQueryGetRayFlagsKHR, + R"(OpRayQueryGetRayFlagsKHR)", + &s_operands[2057], + 3, + }, + { + SpirvOp::OpRayQueryGetIntersectionTKHR, + R"(OpRayQueryGetIntersectionTKHR)", + &s_operands[2060], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionInstanceCustomIndexKHR, + R"(OpRayQueryGetIntersectionInstanceCustomIndexKHR)", + &s_operands[2064], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionInstanceIdKHR, + R"(OpRayQueryGetIntersectionInstanceIdKHR)", + &s_operands[2068], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR, + R"(OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR)", + &s_operands[2072], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionGeometryIndexKHR, + R"(OpRayQueryGetIntersectionGeometryIndexKHR)", + &s_operands[2076], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionPrimitiveIndexKHR, + R"(OpRayQueryGetIntersectionPrimitiveIndexKHR)", + &s_operands[2080], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionBarycentricsKHR, + R"(OpRayQueryGetIntersectionBarycentricsKHR)", + &s_operands[2084], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionFrontFaceKHR, + R"(OpRayQueryGetIntersectionFrontFaceKHR)", + &s_operands[2088], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR, + R"(OpRayQueryGetIntersectionCandidateAABBOpaqueKHR)", + &s_operands[2092], + 3, + }, + { + SpirvOp::OpRayQueryGetIntersectionObjectRayDirectionKHR, + R"(OpRayQueryGetIntersectionObjectRayDirectionKHR)", + &s_operands[2095], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionObjectRayOriginKHR, + R"(OpRayQueryGetIntersectionObjectRayOriginKHR)", + &s_operands[2099], + 4, + }, + { + SpirvOp::OpRayQueryGetWorldRayDirectionKHR, + R"(OpRayQueryGetWorldRayDirectionKHR)", + &s_operands[2103], + 3, + }, + { + SpirvOp::OpRayQueryGetWorldRayOriginKHR, + R"(OpRayQueryGetWorldRayOriginKHR)", + &s_operands[2106], + 3, + }, + { + SpirvOp::OpRayQueryGetIntersectionObjectToWorldKHR, + R"(OpRayQueryGetIntersectionObjectToWorldKHR)", + &s_operands[2109], + 4, + }, + { + SpirvOp::OpRayQueryGetIntersectionWorldToObjectKHR, + R"(OpRayQueryGetIntersectionWorldToObjectKHR)", + &s_operands[2113], + 4, + }, + { + SpirvOp::OpAtomicFAddEXT, + R"(OpAtomicFAddEXT)", + &s_operands[2117], + 6, + }, + } + }; + + const SpirvInstruction* GetInstructionData(UInt16 op) + { + auto it = std::lower_bound(std::begin(s_instructions), std::end(s_instructions), op, [](const SpirvInstruction& inst, UInt16 op) { return UInt16(inst.op) < op; }); + if (it != std::end(s_instructions) && UInt16(it->op) == op) + return &*it; + else + return nullptr; + } +}