| // *** THIS FILE IS GENERATED - DO NOT EDIT *** |
| // See spirv_grammar_generator.py for modifications |
| |
| /*************************************************************************** |
| * |
| * Copyright (c) 2021-2024 The Khronos Group Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| * This file is related to anything that is found in the SPIR-V grammar |
| * file found in the SPIRV-Headers. Mainly used for SPIR-V util functions. |
| * |
| ****************************************************************************/ |
| |
| // NOLINTBEGIN |
| |
| #include "containers/custom_containers.h" |
| #include "spirv_grammar_helper.h" |
| |
| const char* string_SpvOpcode(uint32_t opcode) { |
| switch (opcode) { |
| case spv::OpNop: |
| return "OpNop"; |
| case spv::OpUndef: |
| return "OpUndef"; |
| case spv::OpSourceContinued: |
| return "OpSourceContinued"; |
| case spv::OpSource: |
| return "OpSource"; |
| case spv::OpSourceExtension: |
| return "OpSourceExtension"; |
| case spv::OpName: |
| return "OpName"; |
| case spv::OpMemberName: |
| return "OpMemberName"; |
| case spv::OpString: |
| return "OpString"; |
| case spv::OpLine: |
| return "OpLine"; |
| case spv::OpExtension: |
| return "OpExtension"; |
| case spv::OpExtInstImport: |
| return "OpExtInstImport"; |
| case spv::OpExtInst: |
| return "OpExtInst"; |
| case spv::OpMemoryModel: |
| return "OpMemoryModel"; |
| case spv::OpEntryPoint: |
| return "OpEntryPoint"; |
| case spv::OpExecutionMode: |
| return "OpExecutionMode"; |
| case spv::OpCapability: |
| return "OpCapability"; |
| case spv::OpTypeVoid: |
| return "OpTypeVoid"; |
| case spv::OpTypeBool: |
| return "OpTypeBool"; |
| case spv::OpTypeInt: |
| return "OpTypeInt"; |
| case spv::OpTypeFloat: |
| return "OpTypeFloat"; |
| case spv::OpTypeVector: |
| return "OpTypeVector"; |
| case spv::OpTypeMatrix: |
| return "OpTypeMatrix"; |
| case spv::OpTypeImage: |
| return "OpTypeImage"; |
| case spv::OpTypeSampler: |
| return "OpTypeSampler"; |
| case spv::OpTypeSampledImage: |
| return "OpTypeSampledImage"; |
| case spv::OpTypeArray: |
| return "OpTypeArray"; |
| case spv::OpTypeRuntimeArray: |
| return "OpTypeRuntimeArray"; |
| case spv::OpTypeStruct: |
| return "OpTypeStruct"; |
| case spv::OpTypePointer: |
| return "OpTypePointer"; |
| case spv::OpTypeFunction: |
| return "OpTypeFunction"; |
| case spv::OpTypeForwardPointer: |
| return "OpTypeForwardPointer"; |
| case spv::OpConstantTrue: |
| return "OpConstantTrue"; |
| case spv::OpConstantFalse: |
| return "OpConstantFalse"; |
| case spv::OpConstant: |
| return "OpConstant"; |
| case spv::OpConstantComposite: |
| return "OpConstantComposite"; |
| case spv::OpConstantNull: |
| return "OpConstantNull"; |
| case spv::OpSpecConstantTrue: |
| return "OpSpecConstantTrue"; |
| case spv::OpSpecConstantFalse: |
| return "OpSpecConstantFalse"; |
| case spv::OpSpecConstant: |
| return "OpSpecConstant"; |
| case spv::OpSpecConstantComposite: |
| return "OpSpecConstantComposite"; |
| case spv::OpSpecConstantOp: |
| return "OpSpecConstantOp"; |
| case spv::OpFunction: |
| return "OpFunction"; |
| case spv::OpFunctionParameter: |
| return "OpFunctionParameter"; |
| case spv::OpFunctionEnd: |
| return "OpFunctionEnd"; |
| case spv::OpFunctionCall: |
| return "OpFunctionCall"; |
| case spv::OpVariable: |
| return "OpVariable"; |
| case spv::OpImageTexelPointer: |
| return "OpImageTexelPointer"; |
| case spv::OpLoad: |
| return "OpLoad"; |
| case spv::OpStore: |
| return "OpStore"; |
| case spv::OpCopyMemory: |
| return "OpCopyMemory"; |
| case spv::OpCopyMemorySized: |
| return "OpCopyMemorySized"; |
| case spv::OpAccessChain: |
| return "OpAccessChain"; |
| case spv::OpInBoundsAccessChain: |
| return "OpInBoundsAccessChain"; |
| case spv::OpPtrAccessChain: |
| return "OpPtrAccessChain"; |
| case spv::OpArrayLength: |
| return "OpArrayLength"; |
| case spv::OpInBoundsPtrAccessChain: |
| return "OpInBoundsPtrAccessChain"; |
| case spv::OpDecorate: |
| return "OpDecorate"; |
| case spv::OpMemberDecorate: |
| return "OpMemberDecorate"; |
| case spv::OpDecorationGroup: |
| return "OpDecorationGroup"; |
| case spv::OpGroupDecorate: |
| return "OpGroupDecorate"; |
| case spv::OpGroupMemberDecorate: |
| return "OpGroupMemberDecorate"; |
| case spv::OpVectorExtractDynamic: |
| return "OpVectorExtractDynamic"; |
| case spv::OpVectorInsertDynamic: |
| return "OpVectorInsertDynamic"; |
| case spv::OpVectorShuffle: |
| return "OpVectorShuffle"; |
| case spv::OpCompositeConstruct: |
| return "OpCompositeConstruct"; |
| case spv::OpCompositeExtract: |
| return "OpCompositeExtract"; |
| case spv::OpCompositeInsert: |
| return "OpCompositeInsert"; |
| case spv::OpCopyObject: |
| return "OpCopyObject"; |
| case spv::OpTranspose: |
| return "OpTranspose"; |
| case spv::OpSampledImage: |
| return "OpSampledImage"; |
| case spv::OpImageSampleImplicitLod: |
| return "OpImageSampleImplicitLod"; |
| case spv::OpImageSampleExplicitLod: |
| return "OpImageSampleExplicitLod"; |
| case spv::OpImageSampleDrefImplicitLod: |
| return "OpImageSampleDrefImplicitLod"; |
| case spv::OpImageSampleDrefExplicitLod: |
| return "OpImageSampleDrefExplicitLod"; |
| case spv::OpImageSampleProjImplicitLod: |
| return "OpImageSampleProjImplicitLod"; |
| case spv::OpImageSampleProjExplicitLod: |
| return "OpImageSampleProjExplicitLod"; |
| case spv::OpImageSampleProjDrefImplicitLod: |
| return "OpImageSampleProjDrefImplicitLod"; |
| case spv::OpImageSampleProjDrefExplicitLod: |
| return "OpImageSampleProjDrefExplicitLod"; |
| case spv::OpImageFetch: |
| return "OpImageFetch"; |
| case spv::OpImageGather: |
| return "OpImageGather"; |
| case spv::OpImageDrefGather: |
| return "OpImageDrefGather"; |
| case spv::OpImageRead: |
| return "OpImageRead"; |
| case spv::OpImageWrite: |
| return "OpImageWrite"; |
| case spv::OpImage: |
| return "OpImage"; |
| case spv::OpImageQuerySizeLod: |
| return "OpImageQuerySizeLod"; |
| case spv::OpImageQuerySize: |
| return "OpImageQuerySize"; |
| case spv::OpImageQueryLod: |
| return "OpImageQueryLod"; |
| case spv::OpImageQueryLevels: |
| return "OpImageQueryLevels"; |
| case spv::OpImageQuerySamples: |
| return "OpImageQuerySamples"; |
| case spv::OpConvertFToU: |
| return "OpConvertFToU"; |
| case spv::OpConvertFToS: |
| return "OpConvertFToS"; |
| case spv::OpConvertSToF: |
| return "OpConvertSToF"; |
| case spv::OpConvertUToF: |
| return "OpConvertUToF"; |
| case spv::OpUConvert: |
| return "OpUConvert"; |
| case spv::OpSConvert: |
| return "OpSConvert"; |
| case spv::OpFConvert: |
| return "OpFConvert"; |
| case spv::OpQuantizeToF16: |
| return "OpQuantizeToF16"; |
| case spv::OpConvertPtrToU: |
| return "OpConvertPtrToU"; |
| case spv::OpConvertUToPtr: |
| return "OpConvertUToPtr"; |
| case spv::OpBitcast: |
| return "OpBitcast"; |
| case spv::OpSNegate: |
| return "OpSNegate"; |
| case spv::OpFNegate: |
| return "OpFNegate"; |
| case spv::OpIAdd: |
| return "OpIAdd"; |
| case spv::OpFAdd: |
| return "OpFAdd"; |
| case spv::OpISub: |
| return "OpISub"; |
| case spv::OpFSub: |
| return "OpFSub"; |
| case spv::OpIMul: |
| return "OpIMul"; |
| case spv::OpFMul: |
| return "OpFMul"; |
| case spv::OpUDiv: |
| return "OpUDiv"; |
| case spv::OpSDiv: |
| return "OpSDiv"; |
| case spv::OpFDiv: |
| return "OpFDiv"; |
| case spv::OpUMod: |
| return "OpUMod"; |
| case spv::OpSRem: |
| return "OpSRem"; |
| case spv::OpSMod: |
| return "OpSMod"; |
| case spv::OpFRem: |
| return "OpFRem"; |
| case spv::OpFMod: |
| return "OpFMod"; |
| case spv::OpVectorTimesScalar: |
| return "OpVectorTimesScalar"; |
| case spv::OpMatrixTimesScalar: |
| return "OpMatrixTimesScalar"; |
| case spv::OpVectorTimesMatrix: |
| return "OpVectorTimesMatrix"; |
| case spv::OpMatrixTimesVector: |
| return "OpMatrixTimesVector"; |
| case spv::OpMatrixTimesMatrix: |
| return "OpMatrixTimesMatrix"; |
| case spv::OpOuterProduct: |
| return "OpOuterProduct"; |
| case spv::OpDot: |
| return "OpDot"; |
| case spv::OpIAddCarry: |
| return "OpIAddCarry"; |
| case spv::OpISubBorrow: |
| return "OpISubBorrow"; |
| case spv::OpUMulExtended: |
| return "OpUMulExtended"; |
| case spv::OpSMulExtended: |
| return "OpSMulExtended"; |
| case spv::OpAny: |
| return "OpAny"; |
| case spv::OpAll: |
| return "OpAll"; |
| case spv::OpIsNan: |
| return "OpIsNan"; |
| case spv::OpIsInf: |
| return "OpIsInf"; |
| case spv::OpLogicalEqual: |
| return "OpLogicalEqual"; |
| case spv::OpLogicalNotEqual: |
| return "OpLogicalNotEqual"; |
| case spv::OpLogicalOr: |
| return "OpLogicalOr"; |
| case spv::OpLogicalAnd: |
| return "OpLogicalAnd"; |
| case spv::OpLogicalNot: |
| return "OpLogicalNot"; |
| case spv::OpSelect: |
| return "OpSelect"; |
| case spv::OpIEqual: |
| return "OpIEqual"; |
| case spv::OpINotEqual: |
| return "OpINotEqual"; |
| case spv::OpUGreaterThan: |
| return "OpUGreaterThan"; |
| case spv::OpSGreaterThan: |
| return "OpSGreaterThan"; |
| case spv::OpUGreaterThanEqual: |
| return "OpUGreaterThanEqual"; |
| case spv::OpSGreaterThanEqual: |
| return "OpSGreaterThanEqual"; |
| case spv::OpULessThan: |
| return "OpULessThan"; |
| case spv::OpSLessThan: |
| return "OpSLessThan"; |
| case spv::OpULessThanEqual: |
| return "OpULessThanEqual"; |
| case spv::OpSLessThanEqual: |
| return "OpSLessThanEqual"; |
| case spv::OpFOrdEqual: |
| return "OpFOrdEqual"; |
| case spv::OpFUnordEqual: |
| return "OpFUnordEqual"; |
| case spv::OpFOrdNotEqual: |
| return "OpFOrdNotEqual"; |
| case spv::OpFUnordNotEqual: |
| return "OpFUnordNotEqual"; |
| case spv::OpFOrdLessThan: |
| return "OpFOrdLessThan"; |
| case spv::OpFUnordLessThan: |
| return "OpFUnordLessThan"; |
| case spv::OpFOrdGreaterThan: |
| return "OpFOrdGreaterThan"; |
| case spv::OpFUnordGreaterThan: |
| return "OpFUnordGreaterThan"; |
| case spv::OpFOrdLessThanEqual: |
| return "OpFOrdLessThanEqual"; |
| case spv::OpFUnordLessThanEqual: |
| return "OpFUnordLessThanEqual"; |
| case spv::OpFOrdGreaterThanEqual: |
| return "OpFOrdGreaterThanEqual"; |
| case spv::OpFUnordGreaterThanEqual: |
| return "OpFUnordGreaterThanEqual"; |
| case spv::OpShiftRightLogical: |
| return "OpShiftRightLogical"; |
| case spv::OpShiftRightArithmetic: |
| return "OpShiftRightArithmetic"; |
| case spv::OpShiftLeftLogical: |
| return "OpShiftLeftLogical"; |
| case spv::OpBitwiseOr: |
| return "OpBitwiseOr"; |
| case spv::OpBitwiseXor: |
| return "OpBitwiseXor"; |
| case spv::OpBitwiseAnd: |
| return "OpBitwiseAnd"; |
| case spv::OpNot: |
| return "OpNot"; |
| case spv::OpBitFieldInsert: |
| return "OpBitFieldInsert"; |
| case spv::OpBitFieldSExtract: |
| return "OpBitFieldSExtract"; |
| case spv::OpBitFieldUExtract: |
| return "OpBitFieldUExtract"; |
| case spv::OpBitReverse: |
| return "OpBitReverse"; |
| case spv::OpBitCount: |
| return "OpBitCount"; |
| case spv::OpDPdx: |
| return "OpDPdx"; |
| case spv::OpDPdy: |
| return "OpDPdy"; |
| case spv::OpFwidth: |
| return "OpFwidth"; |
| case spv::OpDPdxFine: |
| return "OpDPdxFine"; |
| case spv::OpDPdyFine: |
| return "OpDPdyFine"; |
| case spv::OpFwidthFine: |
| return "OpFwidthFine"; |
| case spv::OpDPdxCoarse: |
| return "OpDPdxCoarse"; |
| case spv::OpDPdyCoarse: |
| return "OpDPdyCoarse"; |
| case spv::OpFwidthCoarse: |
| return "OpFwidthCoarse"; |
| case spv::OpEmitVertex: |
| return "OpEmitVertex"; |
| case spv::OpEndPrimitive: |
| return "OpEndPrimitive"; |
| case spv::OpEmitStreamVertex: |
| return "OpEmitStreamVertex"; |
| case spv::OpEndStreamPrimitive: |
| return "OpEndStreamPrimitive"; |
| case spv::OpControlBarrier: |
| return "OpControlBarrier"; |
| case spv::OpMemoryBarrier: |
| return "OpMemoryBarrier"; |
| case spv::OpAtomicLoad: |
| return "OpAtomicLoad"; |
| case spv::OpAtomicStore: |
| return "OpAtomicStore"; |
| case spv::OpAtomicExchange: |
| return "OpAtomicExchange"; |
| case spv::OpAtomicCompareExchange: |
| return "OpAtomicCompareExchange"; |
| case spv::OpAtomicIIncrement: |
| return "OpAtomicIIncrement"; |
| case spv::OpAtomicIDecrement: |
| return "OpAtomicIDecrement"; |
| case spv::OpAtomicIAdd: |
| return "OpAtomicIAdd"; |
| case spv::OpAtomicISub: |
| return "OpAtomicISub"; |
| case spv::OpAtomicSMin: |
| return "OpAtomicSMin"; |
| case spv::OpAtomicUMin: |
| return "OpAtomicUMin"; |
| case spv::OpAtomicSMax: |
| return "OpAtomicSMax"; |
| case spv::OpAtomicUMax: |
| return "OpAtomicUMax"; |
| case spv::OpAtomicAnd: |
| return "OpAtomicAnd"; |
| case spv::OpAtomicOr: |
| return "OpAtomicOr"; |
| case spv::OpAtomicXor: |
| return "OpAtomicXor"; |
| case spv::OpPhi: |
| return "OpPhi"; |
| case spv::OpLoopMerge: |
| return "OpLoopMerge"; |
| case spv::OpSelectionMerge: |
| return "OpSelectionMerge"; |
| case spv::OpLabel: |
| return "OpLabel"; |
| case spv::OpBranch: |
| return "OpBranch"; |
| case spv::OpBranchConditional: |
| return "OpBranchConditional"; |
| case spv::OpSwitch: |
| return "OpSwitch"; |
| case spv::OpKill: |
| return "OpKill"; |
| case spv::OpReturn: |
| return "OpReturn"; |
| case spv::OpReturnValue: |
| return "OpReturnValue"; |
| case spv::OpUnreachable: |
| return "OpUnreachable"; |
| case spv::OpGroupAll: |
| return "OpGroupAll"; |
| case spv::OpGroupAny: |
| return "OpGroupAny"; |
| case spv::OpGroupBroadcast: |
| return "OpGroupBroadcast"; |
| case spv::OpGroupIAdd: |
| return "OpGroupIAdd"; |
| case spv::OpGroupFAdd: |
| return "OpGroupFAdd"; |
| case spv::OpGroupFMin: |
| return "OpGroupFMin"; |
| case spv::OpGroupUMin: |
| return "OpGroupUMin"; |
| case spv::OpGroupSMin: |
| return "OpGroupSMin"; |
| case spv::OpGroupFMax: |
| return "OpGroupFMax"; |
| case spv::OpGroupUMax: |
| return "OpGroupUMax"; |
| case spv::OpGroupSMax: |
| return "OpGroupSMax"; |
| case spv::OpImageSparseSampleImplicitLod: |
| return "OpImageSparseSampleImplicitLod"; |
| case spv::OpImageSparseSampleExplicitLod: |
| return "OpImageSparseSampleExplicitLod"; |
| case spv::OpImageSparseSampleDrefImplicitLod: |
| return "OpImageSparseSampleDrefImplicitLod"; |
| case spv::OpImageSparseSampleDrefExplicitLod: |
| return "OpImageSparseSampleDrefExplicitLod"; |
| case spv::OpImageSparseSampleProjImplicitLod: |
| return "OpImageSparseSampleProjImplicitLod"; |
| case spv::OpImageSparseSampleProjExplicitLod: |
| return "OpImageSparseSampleProjExplicitLod"; |
| case spv::OpImageSparseSampleProjDrefImplicitLod: |
| return "OpImageSparseSampleProjDrefImplicitLod"; |
| case spv::OpImageSparseSampleProjDrefExplicitLod: |
| return "OpImageSparseSampleProjDrefExplicitLod"; |
| case spv::OpImageSparseFetch: |
| return "OpImageSparseFetch"; |
| case spv::OpImageSparseGather: |
| return "OpImageSparseGather"; |
| case spv::OpImageSparseDrefGather: |
| return "OpImageSparseDrefGather"; |
| case spv::OpImageSparseTexelsResident: |
| return "OpImageSparseTexelsResident"; |
| case spv::OpNoLine: |
| return "OpNoLine"; |
| case spv::OpImageSparseRead: |
| return "OpImageSparseRead"; |
| case spv::OpSizeOf: |
| return "OpSizeOf"; |
| case spv::OpModuleProcessed: |
| return "OpModuleProcessed"; |
| case spv::OpExecutionModeId: |
| return "OpExecutionModeId"; |
| case spv::OpDecorateId: |
| return "OpDecorateId"; |
| case spv::OpGroupNonUniformElect: |
| return "OpGroupNonUniformElect"; |
| case spv::OpGroupNonUniformAll: |
| return "OpGroupNonUniformAll"; |
| case spv::OpGroupNonUniformAny: |
| return "OpGroupNonUniformAny"; |
| case spv::OpGroupNonUniformAllEqual: |
| return "OpGroupNonUniformAllEqual"; |
| case spv::OpGroupNonUniformBroadcast: |
| return "OpGroupNonUniformBroadcast"; |
| case spv::OpGroupNonUniformBroadcastFirst: |
| return "OpGroupNonUniformBroadcastFirst"; |
| case spv::OpGroupNonUniformBallot: |
| return "OpGroupNonUniformBallot"; |
| case spv::OpGroupNonUniformInverseBallot: |
| return "OpGroupNonUniformInverseBallot"; |
| case spv::OpGroupNonUniformBallotBitExtract: |
| return "OpGroupNonUniformBallotBitExtract"; |
| case spv::OpGroupNonUniformBallotBitCount: |
| return "OpGroupNonUniformBallotBitCount"; |
| case spv::OpGroupNonUniformBallotFindLSB: |
| return "OpGroupNonUniformBallotFindLSB"; |
| case spv::OpGroupNonUniformBallotFindMSB: |
| return "OpGroupNonUniformBallotFindMSB"; |
| case spv::OpGroupNonUniformShuffle: |
| return "OpGroupNonUniformShuffle"; |
| case spv::OpGroupNonUniformShuffleXor: |
| return "OpGroupNonUniformShuffleXor"; |
| case spv::OpGroupNonUniformShuffleUp: |
| return "OpGroupNonUniformShuffleUp"; |
| case spv::OpGroupNonUniformShuffleDown: |
| return "OpGroupNonUniformShuffleDown"; |
| case spv::OpGroupNonUniformIAdd: |
| return "OpGroupNonUniformIAdd"; |
| case spv::OpGroupNonUniformFAdd: |
| return "OpGroupNonUniformFAdd"; |
| case spv::OpGroupNonUniformIMul: |
| return "OpGroupNonUniformIMul"; |
| case spv::OpGroupNonUniformFMul: |
| return "OpGroupNonUniformFMul"; |
| case spv::OpGroupNonUniformSMin: |
| return "OpGroupNonUniformSMin"; |
| case spv::OpGroupNonUniformUMin: |
| return "OpGroupNonUniformUMin"; |
| case spv::OpGroupNonUniformFMin: |
| return "OpGroupNonUniformFMin"; |
| case spv::OpGroupNonUniformSMax: |
| return "OpGroupNonUniformSMax"; |
| case spv::OpGroupNonUniformUMax: |
| return "OpGroupNonUniformUMax"; |
| case spv::OpGroupNonUniformFMax: |
| return "OpGroupNonUniformFMax"; |
| case spv::OpGroupNonUniformBitwiseAnd: |
| return "OpGroupNonUniformBitwiseAnd"; |
| case spv::OpGroupNonUniformBitwiseOr: |
| return "OpGroupNonUniformBitwiseOr"; |
| case spv::OpGroupNonUniformBitwiseXor: |
| return "OpGroupNonUniformBitwiseXor"; |
| case spv::OpGroupNonUniformLogicalAnd: |
| return "OpGroupNonUniformLogicalAnd"; |
| case spv::OpGroupNonUniformLogicalOr: |
| return "OpGroupNonUniformLogicalOr"; |
| case spv::OpGroupNonUniformLogicalXor: |
| return "OpGroupNonUniformLogicalXor"; |
| case spv::OpGroupNonUniformQuadBroadcast: |
| return "OpGroupNonUniformQuadBroadcast"; |
| case spv::OpGroupNonUniformQuadSwap: |
| return "OpGroupNonUniformQuadSwap"; |
| case spv::OpCopyLogical: |
| return "OpCopyLogical"; |
| case spv::OpPtrEqual: |
| return "OpPtrEqual"; |
| case spv::OpPtrNotEqual: |
| return "OpPtrNotEqual"; |
| case spv::OpPtrDiff: |
| return "OpPtrDiff"; |
| case spv::OpColorAttachmentReadEXT: |
| return "OpColorAttachmentReadEXT"; |
| case spv::OpDepthAttachmentReadEXT: |
| return "OpDepthAttachmentReadEXT"; |
| case spv::OpStencilAttachmentReadEXT: |
| return "OpStencilAttachmentReadEXT"; |
| case spv::OpTypeTensorARM: |
| return "OpTypeTensorARM"; |
| case spv::OpTensorReadARM: |
| return "OpTensorReadARM"; |
| case spv::OpTensorWriteARM: |
| return "OpTensorWriteARM"; |
| case spv::OpTensorQuerySizeARM: |
| return "OpTensorQuerySizeARM"; |
| case spv::OpGraphConstantARM: |
| return "OpGraphConstantARM"; |
| case spv::OpGraphEntryPointARM: |
| return "OpGraphEntryPointARM"; |
| case spv::OpGraphARM: |
| return "OpGraphARM"; |
| case spv::OpGraphInputARM: |
| return "OpGraphInputARM"; |
| case spv::OpGraphSetOutputARM: |
| return "OpGraphSetOutputARM"; |
| case spv::OpGraphEndARM: |
| return "OpGraphEndARM"; |
| case spv::OpTypeGraphARM: |
| return "OpTypeGraphARM"; |
| case spv::OpTerminateInvocation: |
| return "OpTerminateInvocation"; |
| case spv::OpTypeUntypedPointerKHR: |
| return "OpTypeUntypedPointerKHR"; |
| case spv::OpUntypedVariableKHR: |
| return "OpUntypedVariableKHR"; |
| case spv::OpUntypedAccessChainKHR: |
| return "OpUntypedAccessChainKHR"; |
| case spv::OpUntypedInBoundsAccessChainKHR: |
| return "OpUntypedInBoundsAccessChainKHR"; |
| case spv::OpSubgroupBallotKHR: |
| return "OpSubgroupBallotKHR"; |
| case spv::OpSubgroupFirstInvocationKHR: |
| return "OpSubgroupFirstInvocationKHR"; |
| case spv::OpUntypedPtrAccessChainKHR: |
| return "OpUntypedPtrAccessChainKHR"; |
| case spv::OpUntypedInBoundsPtrAccessChainKHR: |
| return "OpUntypedInBoundsPtrAccessChainKHR"; |
| case spv::OpUntypedArrayLengthKHR: |
| return "OpUntypedArrayLengthKHR"; |
| case spv::OpUntypedPrefetchKHR: |
| return "OpUntypedPrefetchKHR"; |
| case spv::OpFmaKHR: |
| return "OpFmaKHR"; |
| case spv::OpSubgroupAllKHR: |
| return "OpSubgroupAllKHR"; |
| case spv::OpSubgroupAnyKHR: |
| return "OpSubgroupAnyKHR"; |
| case spv::OpSubgroupAllEqualKHR: |
| return "OpSubgroupAllEqualKHR"; |
| case spv::OpGroupNonUniformRotateKHR: |
| return "OpGroupNonUniformRotateKHR"; |
| case spv::OpSubgroupReadInvocationKHR: |
| return "OpSubgroupReadInvocationKHR"; |
| case spv::OpExtInstWithForwardRefsKHR: |
| return "OpExtInstWithForwardRefsKHR"; |
| case spv::OpUntypedGroupAsyncCopyKHR: |
| return "OpUntypedGroupAsyncCopyKHR"; |
| case spv::OpTraceRayKHR: |
| return "OpTraceRayKHR"; |
| case spv::OpExecuteCallableKHR: |
| return "OpExecuteCallableKHR"; |
| case spv::OpConvertUToAccelerationStructureKHR: |
| return "OpConvertUToAccelerationStructureKHR"; |
| case spv::OpIgnoreIntersectionKHR: |
| return "OpIgnoreIntersectionKHR"; |
| case spv::OpTerminateRayKHR: |
| return "OpTerminateRayKHR"; |
| case spv::OpSDot: |
| return "OpSDot"; |
| case spv::OpUDot: |
| return "OpUDot"; |
| case spv::OpSUDot: |
| return "OpSUDot"; |
| case spv::OpSDotAccSat: |
| return "OpSDotAccSat"; |
| case spv::OpUDotAccSat: |
| return "OpUDotAccSat"; |
| case spv::OpSUDotAccSat: |
| return "OpSUDotAccSat"; |
| case spv::OpTypeCooperativeMatrixKHR: |
| return "OpTypeCooperativeMatrixKHR"; |
| case spv::OpCooperativeMatrixLoadKHR: |
| return "OpCooperativeMatrixLoadKHR"; |
| case spv::OpCooperativeMatrixStoreKHR: |
| return "OpCooperativeMatrixStoreKHR"; |
| case spv::OpCooperativeMatrixMulAddKHR: |
| return "OpCooperativeMatrixMulAddKHR"; |
| case spv::OpCooperativeMatrixLengthKHR: |
| return "OpCooperativeMatrixLengthKHR"; |
| case spv::OpConstantCompositeReplicateEXT: |
| return "OpConstantCompositeReplicateEXT"; |
| case spv::OpSpecConstantCompositeReplicateEXT: |
| return "OpSpecConstantCompositeReplicateEXT"; |
| case spv::OpCompositeConstructReplicateEXT: |
| return "OpCompositeConstructReplicateEXT"; |
| case spv::OpTypeRayQueryKHR: |
| return "OpTypeRayQueryKHR"; |
| case spv::OpRayQueryInitializeKHR: |
| return "OpRayQueryInitializeKHR"; |
| case spv::OpRayQueryTerminateKHR: |
| return "OpRayQueryTerminateKHR"; |
| case spv::OpRayQueryGenerateIntersectionKHR: |
| return "OpRayQueryGenerateIntersectionKHR"; |
| case spv::OpRayQueryConfirmIntersectionKHR: |
| return "OpRayQueryConfirmIntersectionKHR"; |
| case spv::OpRayQueryProceedKHR: |
| return "OpRayQueryProceedKHR"; |
| case spv::OpRayQueryGetIntersectionTypeKHR: |
| return "OpRayQueryGetIntersectionTypeKHR"; |
| case spv::OpImageSampleWeightedQCOM: |
| return "OpImageSampleWeightedQCOM"; |
| case spv::OpImageBoxFilterQCOM: |
| return "OpImageBoxFilterQCOM"; |
| case spv::OpImageBlockMatchSSDQCOM: |
| return "OpImageBlockMatchSSDQCOM"; |
| case spv::OpImageBlockMatchSADQCOM: |
| return "OpImageBlockMatchSADQCOM"; |
| case spv::OpBitCastArrayQCOM: |
| return "OpBitCastArrayQCOM"; |
| case spv::OpImageBlockMatchWindowSSDQCOM: |
| return "OpImageBlockMatchWindowSSDQCOM"; |
| case spv::OpImageBlockMatchWindowSADQCOM: |
| return "OpImageBlockMatchWindowSADQCOM"; |
| case spv::OpImageBlockMatchGatherSSDQCOM: |
| return "OpImageBlockMatchGatherSSDQCOM"; |
| case spv::OpImageBlockMatchGatherSADQCOM: |
| return "OpImageBlockMatchGatherSADQCOM"; |
| case spv::OpCompositeConstructCoopMatQCOM: |
| return "OpCompositeConstructCoopMatQCOM"; |
| case spv::OpCompositeExtractCoopMatQCOM: |
| return "OpCompositeExtractCoopMatQCOM"; |
| case spv::OpExtractSubArrayQCOM: |
| return "OpExtractSubArrayQCOM"; |
| case spv::OpGroupIAddNonUniformAMD: |
| return "OpGroupIAddNonUniformAMD"; |
| case spv::OpGroupFAddNonUniformAMD: |
| return "OpGroupFAddNonUniformAMD"; |
| case spv::OpGroupFMinNonUniformAMD: |
| return "OpGroupFMinNonUniformAMD"; |
| case spv::OpGroupUMinNonUniformAMD: |
| return "OpGroupUMinNonUniformAMD"; |
| case spv::OpGroupSMinNonUniformAMD: |
| return "OpGroupSMinNonUniformAMD"; |
| case spv::OpGroupFMaxNonUniformAMD: |
| return "OpGroupFMaxNonUniformAMD"; |
| case spv::OpGroupUMaxNonUniformAMD: |
| return "OpGroupUMaxNonUniformAMD"; |
| case spv::OpGroupSMaxNonUniformAMD: |
| return "OpGroupSMaxNonUniformAMD"; |
| case spv::OpFragmentMaskFetchAMD: |
| return "OpFragmentMaskFetchAMD"; |
| case spv::OpFragmentFetchAMD: |
| return "OpFragmentFetchAMD"; |
| case spv::OpReadClockKHR: |
| return "OpReadClockKHR"; |
| case spv::OpGroupNonUniformQuadAllKHR: |
| return "OpGroupNonUniformQuadAllKHR"; |
| case spv::OpGroupNonUniformQuadAnyKHR: |
| return "OpGroupNonUniformQuadAnyKHR"; |
| case spv::OpTypeBufferEXT: |
| return "OpTypeBufferEXT"; |
| case spv::OpBufferPointerEXT: |
| return "OpBufferPointerEXT"; |
| case spv::OpAbortKHR: |
| return "OpAbortKHR"; |
| case spv::OpUntypedImageTexelPointerEXT: |
| return "OpUntypedImageTexelPointerEXT"; |
| case spv::OpMemberDecorateIdEXT: |
| return "OpMemberDecorateIdEXT"; |
| case spv::OpConstantSizeOfEXT: |
| return "OpConstantSizeOfEXT"; |
| case spv::OpConstantDataKHR: |
| return "OpConstantDataKHR"; |
| case spv::OpSpecConstantDataKHR: |
| return "OpSpecConstantDataKHR"; |
| case spv::OpHitObjectRecordHitMotionNV: |
| return "OpHitObjectRecordHitMotionNV"; |
| case spv::OpHitObjectRecordHitWithIndexMotionNV: |
| return "OpHitObjectRecordHitWithIndexMotionNV"; |
| case spv::OpHitObjectRecordMissMotionNV: |
| return "OpHitObjectRecordMissMotionNV"; |
| case spv::OpHitObjectGetWorldToObjectNV: |
| return "OpHitObjectGetWorldToObjectNV"; |
| case spv::OpHitObjectGetObjectToWorldNV: |
| return "OpHitObjectGetObjectToWorldNV"; |
| case spv::OpHitObjectGetObjectRayDirectionNV: |
| return "OpHitObjectGetObjectRayDirectionNV"; |
| case spv::OpHitObjectGetObjectRayOriginNV: |
| return "OpHitObjectGetObjectRayOriginNV"; |
| case spv::OpHitObjectTraceRayMotionNV: |
| return "OpHitObjectTraceRayMotionNV"; |
| case spv::OpHitObjectGetShaderRecordBufferHandleNV: |
| return "OpHitObjectGetShaderRecordBufferHandleNV"; |
| case spv::OpHitObjectGetShaderBindingTableRecordIndexNV: |
| return "OpHitObjectGetShaderBindingTableRecordIndexNV"; |
| case spv::OpHitObjectRecordEmptyNV: |
| return "OpHitObjectRecordEmptyNV"; |
| case spv::OpHitObjectTraceRayNV: |
| return "OpHitObjectTraceRayNV"; |
| case spv::OpHitObjectRecordHitNV: |
| return "OpHitObjectRecordHitNV"; |
| case spv::OpHitObjectRecordHitWithIndexNV: |
| return "OpHitObjectRecordHitWithIndexNV"; |
| case spv::OpHitObjectRecordMissNV: |
| return "OpHitObjectRecordMissNV"; |
| case spv::OpHitObjectExecuteShaderNV: |
| return "OpHitObjectExecuteShaderNV"; |
| case spv::OpHitObjectGetCurrentTimeNV: |
| return "OpHitObjectGetCurrentTimeNV"; |
| case spv::OpHitObjectGetAttributesNV: |
| return "OpHitObjectGetAttributesNV"; |
| case spv::OpHitObjectGetHitKindNV: |
| return "OpHitObjectGetHitKindNV"; |
| case spv::OpHitObjectGetPrimitiveIndexNV: |
| return "OpHitObjectGetPrimitiveIndexNV"; |
| case spv::OpHitObjectGetGeometryIndexNV: |
| return "OpHitObjectGetGeometryIndexNV"; |
| case spv::OpHitObjectGetInstanceIdNV: |
| return "OpHitObjectGetInstanceIdNV"; |
| case spv::OpHitObjectGetInstanceCustomIndexNV: |
| return "OpHitObjectGetInstanceCustomIndexNV"; |
| case spv::OpHitObjectGetWorldRayDirectionNV: |
| return "OpHitObjectGetWorldRayDirectionNV"; |
| case spv::OpHitObjectGetWorldRayOriginNV: |
| return "OpHitObjectGetWorldRayOriginNV"; |
| case spv::OpHitObjectGetRayTMaxNV: |
| return "OpHitObjectGetRayTMaxNV"; |
| case spv::OpHitObjectGetRayTMinNV: |
| return "OpHitObjectGetRayTMinNV"; |
| case spv::OpHitObjectIsEmptyNV: |
| return "OpHitObjectIsEmptyNV"; |
| case spv::OpHitObjectIsHitNV: |
| return "OpHitObjectIsHitNV"; |
| case spv::OpHitObjectIsMissNV: |
| return "OpHitObjectIsMissNV"; |
| case spv::OpReorderThreadWithHitObjectNV: |
| return "OpReorderThreadWithHitObjectNV"; |
| case spv::OpReorderThreadWithHintNV: |
| return "OpReorderThreadWithHintNV"; |
| case spv::OpTypeHitObjectNV: |
| return "OpTypeHitObjectNV"; |
| case spv::OpImageSampleFootprintNV: |
| return "OpImageSampleFootprintNV"; |
| case spv::OpTypeVectorIdEXT: |
| return "OpTypeVectorIdEXT"; |
| case spv::OpCooperativeVectorMatrixMulNV: |
| return "OpCooperativeVectorMatrixMulNV"; |
| case spv::OpCooperativeVectorOuterProductAccumulateNV: |
| return "OpCooperativeVectorOuterProductAccumulateNV"; |
| case spv::OpCooperativeVectorReduceSumAccumulateNV: |
| return "OpCooperativeVectorReduceSumAccumulateNV"; |
| case spv::OpCooperativeVectorMatrixMulAddNV: |
| return "OpCooperativeVectorMatrixMulAddNV"; |
| case spv::OpCooperativeMatrixConvertNV: |
| return "OpCooperativeMatrixConvertNV"; |
| case spv::OpEmitMeshTasksEXT: |
| return "OpEmitMeshTasksEXT"; |
| case spv::OpSetMeshOutputsEXT: |
| return "OpSetMeshOutputsEXT"; |
| case spv::OpGroupNonUniformPartitionEXT: |
| return "OpGroupNonUniformPartitionEXT"; |
| case spv::OpWritePackedPrimitiveIndices4x8NV: |
| return "OpWritePackedPrimitiveIndices4x8NV"; |
| case spv::OpFetchMicroTriangleVertexPositionNV: |
| return "OpFetchMicroTriangleVertexPositionNV"; |
| case spv::OpFetchMicroTriangleVertexBarycentricNV: |
| return "OpFetchMicroTriangleVertexBarycentricNV"; |
| case spv::OpCooperativeVectorLoadNV: |
| return "OpCooperativeVectorLoadNV"; |
| case spv::OpCooperativeVectorStoreNV: |
| return "OpCooperativeVectorStoreNV"; |
| case spv::OpHitObjectRecordFromQueryEXT: |
| return "OpHitObjectRecordFromQueryEXT"; |
| case spv::OpHitObjectRecordMissEXT: |
| return "OpHitObjectRecordMissEXT"; |
| case spv::OpHitObjectRecordMissMotionEXT: |
| return "OpHitObjectRecordMissMotionEXT"; |
| case spv::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: |
| return "OpHitObjectGetIntersectionTriangleVertexPositionsEXT"; |
| case spv::OpHitObjectGetRayFlagsEXT: |
| return "OpHitObjectGetRayFlagsEXT"; |
| case spv::OpHitObjectSetShaderBindingTableRecordIndexEXT: |
| return "OpHitObjectSetShaderBindingTableRecordIndexEXT"; |
| case spv::OpHitObjectReorderExecuteShaderEXT: |
| return "OpHitObjectReorderExecuteShaderEXT"; |
| case spv::OpHitObjectTraceReorderExecuteEXT: |
| return "OpHitObjectTraceReorderExecuteEXT"; |
| case spv::OpHitObjectTraceMotionReorderExecuteEXT: |
| return "OpHitObjectTraceMotionReorderExecuteEXT"; |
| case spv::OpTypeHitObjectEXT: |
| return "OpTypeHitObjectEXT"; |
| case spv::OpReorderThreadWithHintEXT: |
| return "OpReorderThreadWithHintEXT"; |
| case spv::OpReorderThreadWithHitObjectEXT: |
| return "OpReorderThreadWithHitObjectEXT"; |
| case spv::OpHitObjectTraceRayEXT: |
| return "OpHitObjectTraceRayEXT"; |
| case spv::OpHitObjectTraceRayMotionEXT: |
| return "OpHitObjectTraceRayMotionEXT"; |
| case spv::OpHitObjectRecordEmptyEXT: |
| return "OpHitObjectRecordEmptyEXT"; |
| case spv::OpHitObjectExecuteShaderEXT: |
| return "OpHitObjectExecuteShaderEXT"; |
| case spv::OpHitObjectGetCurrentTimeEXT: |
| return "OpHitObjectGetCurrentTimeEXT"; |
| case spv::OpHitObjectGetAttributesEXT: |
| return "OpHitObjectGetAttributesEXT"; |
| case spv::OpHitObjectGetHitKindEXT: |
| return "OpHitObjectGetHitKindEXT"; |
| case spv::OpHitObjectGetPrimitiveIndexEXT: |
| return "OpHitObjectGetPrimitiveIndexEXT"; |
| case spv::OpHitObjectGetGeometryIndexEXT: |
| return "OpHitObjectGetGeometryIndexEXT"; |
| case spv::OpHitObjectGetInstanceIdEXT: |
| return "OpHitObjectGetInstanceIdEXT"; |
| case spv::OpHitObjectGetInstanceCustomIndexEXT: |
| return "OpHitObjectGetInstanceCustomIndexEXT"; |
| case spv::OpHitObjectGetObjectRayOriginEXT: |
| return "OpHitObjectGetObjectRayOriginEXT"; |
| case spv::OpHitObjectGetObjectRayDirectionEXT: |
| return "OpHitObjectGetObjectRayDirectionEXT"; |
| case spv::OpHitObjectGetWorldRayDirectionEXT: |
| return "OpHitObjectGetWorldRayDirectionEXT"; |
| case spv::OpHitObjectGetWorldRayOriginEXT: |
| return "OpHitObjectGetWorldRayOriginEXT"; |
| case spv::OpHitObjectGetObjectToWorldEXT: |
| return "OpHitObjectGetObjectToWorldEXT"; |
| case spv::OpHitObjectGetWorldToObjectEXT: |
| return "OpHitObjectGetWorldToObjectEXT"; |
| case spv::OpHitObjectGetRayTMaxEXT: |
| return "OpHitObjectGetRayTMaxEXT"; |
| case spv::OpReportIntersectionKHR: |
| return "OpReportIntersectionKHR"; |
| case spv::OpIgnoreIntersectionNV: |
| return "OpIgnoreIntersectionNV"; |
| case spv::OpTerminateRayNV: |
| return "OpTerminateRayNV"; |
| case spv::OpTraceNV: |
| return "OpTraceNV"; |
| case spv::OpTraceMotionNV: |
| return "OpTraceMotionNV"; |
| case spv::OpTraceRayMotionNV: |
| return "OpTraceRayMotionNV"; |
| case spv::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: |
| return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR"; |
| case spv::OpTypeAccelerationStructureKHR: |
| return "OpTypeAccelerationStructureKHR"; |
| case spv::OpExecuteCallableNV: |
| return "OpExecuteCallableNV"; |
| case spv::OpRayQueryGetIntersectionClusterIdNV: |
| return "OpRayQueryGetIntersectionClusterIdNV"; |
| case spv::OpHitObjectGetClusterIdNV: |
| return "OpHitObjectGetClusterIdNV"; |
| case spv::OpHitObjectGetRayTMinEXT: |
| return "OpHitObjectGetRayTMinEXT"; |
| case spv::OpHitObjectGetShaderBindingTableRecordIndexEXT: |
| return "OpHitObjectGetShaderBindingTableRecordIndexEXT"; |
| case spv::OpHitObjectGetShaderRecordBufferHandleEXT: |
| return "OpHitObjectGetShaderRecordBufferHandleEXT"; |
| case spv::OpHitObjectIsEmptyEXT: |
| return "OpHitObjectIsEmptyEXT"; |
| case spv::OpHitObjectIsHitEXT: |
| return "OpHitObjectIsHitEXT"; |
| case spv::OpHitObjectIsMissEXT: |
| return "OpHitObjectIsMissEXT"; |
| case spv::OpTypeCooperativeMatrixNV: |
| return "OpTypeCooperativeMatrixNV"; |
| case spv::OpCooperativeMatrixLoadNV: |
| return "OpCooperativeMatrixLoadNV"; |
| case spv::OpCooperativeMatrixStoreNV: |
| return "OpCooperativeMatrixStoreNV"; |
| case spv::OpCooperativeMatrixMulAddNV: |
| return "OpCooperativeMatrixMulAddNV"; |
| case spv::OpCooperativeMatrixLengthNV: |
| return "OpCooperativeMatrixLengthNV"; |
| case spv::OpBeginInvocationInterlockEXT: |
| return "OpBeginInvocationInterlockEXT"; |
| case spv::OpEndInvocationInterlockEXT: |
| return "OpEndInvocationInterlockEXT"; |
| case spv::OpCooperativeMatrixReduceNV: |
| return "OpCooperativeMatrixReduceNV"; |
| case spv::OpCooperativeMatrixLoadTensorNV: |
| return "OpCooperativeMatrixLoadTensorNV"; |
| case spv::OpCooperativeMatrixStoreTensorNV: |
| return "OpCooperativeMatrixStoreTensorNV"; |
| case spv::OpCooperativeMatrixPerElementOpNV: |
| return "OpCooperativeMatrixPerElementOpNV"; |
| case spv::OpTypeTensorLayoutNV: |
| return "OpTypeTensorLayoutNV"; |
| case spv::OpTypeTensorViewNV: |
| return "OpTypeTensorViewNV"; |
| case spv::OpCreateTensorLayoutNV: |
| return "OpCreateTensorLayoutNV"; |
| case spv::OpTensorLayoutSetDimensionNV: |
| return "OpTensorLayoutSetDimensionNV"; |
| case spv::OpTensorLayoutSetStrideNV: |
| return "OpTensorLayoutSetStrideNV"; |
| case spv::OpTensorLayoutSliceNV: |
| return "OpTensorLayoutSliceNV"; |
| case spv::OpTensorLayoutSetClampValueNV: |
| return "OpTensorLayoutSetClampValueNV"; |
| case spv::OpCreateTensorViewNV: |
| return "OpCreateTensorViewNV"; |
| case spv::OpTensorViewSetDimensionNV: |
| return "OpTensorViewSetDimensionNV"; |
| case spv::OpTensorViewSetStrideNV: |
| return "OpTensorViewSetStrideNV"; |
| case spv::OpDemoteToHelperInvocation: |
| return "OpDemoteToHelperInvocation"; |
| case spv::OpIsHelperInvocationEXT: |
| return "OpIsHelperInvocationEXT"; |
| case spv::OpTensorViewSetClipNV: |
| return "OpTensorViewSetClipNV"; |
| case spv::OpTensorLayoutSetBlockSizeNV: |
| return "OpTensorLayoutSetBlockSizeNV"; |
| case spv::OpCooperativeMatrixTransposeNV: |
| return "OpCooperativeMatrixTransposeNV"; |
| case spv::OpConvertUToImageNV: |
| return "OpConvertUToImageNV"; |
| case spv::OpConvertUToSamplerNV: |
| return "OpConvertUToSamplerNV"; |
| case spv::OpConvertImageToUNV: |
| return "OpConvertImageToUNV"; |
| case spv::OpConvertSamplerToUNV: |
| return "OpConvertSamplerToUNV"; |
| case spv::OpConvertUToSampledImageNV: |
| return "OpConvertUToSampledImageNV"; |
| case spv::OpConvertSampledImageToUNV: |
| return "OpConvertSampledImageToUNV"; |
| case spv::OpSamplerImageAddressingModeNV: |
| return "OpSamplerImageAddressingModeNV"; |
| case spv::OpRawAccessChainNV: |
| return "OpRawAccessChainNV"; |
| case spv::OpRayQueryGetIntersectionSpherePositionNV: |
| return "OpRayQueryGetIntersectionSpherePositionNV"; |
| case spv::OpRayQueryGetIntersectionSphereRadiusNV: |
| return "OpRayQueryGetIntersectionSphereRadiusNV"; |
| case spv::OpRayQueryGetIntersectionLSSPositionsNV: |
| return "OpRayQueryGetIntersectionLSSPositionsNV"; |
| case spv::OpRayQueryGetIntersectionLSSRadiiNV: |
| return "OpRayQueryGetIntersectionLSSRadiiNV"; |
| case spv::OpRayQueryGetIntersectionLSSHitValueNV: |
| return "OpRayQueryGetIntersectionLSSHitValueNV"; |
| case spv::OpHitObjectGetSpherePositionNV: |
| return "OpHitObjectGetSpherePositionNV"; |
| case spv::OpHitObjectGetSphereRadiusNV: |
| return "OpHitObjectGetSphereRadiusNV"; |
| case spv::OpHitObjectGetLSSPositionsNV: |
| return "OpHitObjectGetLSSPositionsNV"; |
| case spv::OpHitObjectGetLSSRadiiNV: |
| return "OpHitObjectGetLSSRadiiNV"; |
| case spv::OpHitObjectIsSphereHitNV: |
| return "OpHitObjectIsSphereHitNV"; |
| case spv::OpHitObjectIsLSSHitNV: |
| return "OpHitObjectIsLSSHitNV"; |
| case spv::OpRayQueryIsSphereHitNV: |
| return "OpRayQueryIsSphereHitNV"; |
| case spv::OpRayQueryIsLSSHitNV: |
| return "OpRayQueryIsLSSHitNV"; |
| case spv::OpUCountLeadingZerosINTEL: |
| return "OpUCountLeadingZerosINTEL"; |
| case spv::OpUCountTrailingZerosINTEL: |
| return "OpUCountTrailingZerosINTEL"; |
| case spv::OpAbsISubINTEL: |
| return "OpAbsISubINTEL"; |
| case spv::OpAbsUSubINTEL: |
| return "OpAbsUSubINTEL"; |
| case spv::OpIAddSatINTEL: |
| return "OpIAddSatINTEL"; |
| case spv::OpUAddSatINTEL: |
| return "OpUAddSatINTEL"; |
| case spv::OpIAverageINTEL: |
| return "OpIAverageINTEL"; |
| case spv::OpUAverageINTEL: |
| return "OpUAverageINTEL"; |
| case spv::OpIAverageRoundedINTEL: |
| return "OpIAverageRoundedINTEL"; |
| case spv::OpUAverageRoundedINTEL: |
| return "OpUAverageRoundedINTEL"; |
| case spv::OpISubSatINTEL: |
| return "OpISubSatINTEL"; |
| case spv::OpUSubSatINTEL: |
| return "OpUSubSatINTEL"; |
| case spv::OpIMul32x16INTEL: |
| return "OpIMul32x16INTEL"; |
| case spv::OpUMul32x16INTEL: |
| return "OpUMul32x16INTEL"; |
| case spv::OpConstantFunctionPointerINTEL: |
| return "OpConstantFunctionPointerINTEL"; |
| case spv::OpFunctionPointerCallINTEL: |
| return "OpFunctionPointerCallINTEL"; |
| case spv::OpAtomicFMinEXT: |
| return "OpAtomicFMinEXT"; |
| case spv::OpAtomicFMaxEXT: |
| return "OpAtomicFMaxEXT"; |
| case spv::OpAssumeTrueKHR: |
| return "OpAssumeTrueKHR"; |
| case spv::OpExpectKHR: |
| return "OpExpectKHR"; |
| case spv::OpDecorateString: |
| return "OpDecorateString"; |
| case spv::OpMemberDecorateString: |
| return "OpMemberDecorateString"; |
| case spv::OpRayQueryGetRayTMinKHR: |
| return "OpRayQueryGetRayTMinKHR"; |
| case spv::OpRayQueryGetRayFlagsKHR: |
| return "OpRayQueryGetRayFlagsKHR"; |
| case spv::OpRayQueryGetIntersectionTKHR: |
| return "OpRayQueryGetIntersectionTKHR"; |
| case spv::OpRayQueryGetIntersectionInstanceCustomIndexKHR: |
| return "OpRayQueryGetIntersectionInstanceCustomIndexKHR"; |
| case spv::OpRayQueryGetIntersectionInstanceIdKHR: |
| return "OpRayQueryGetIntersectionInstanceIdKHR"; |
| case spv::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: |
| return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR"; |
| case spv::OpRayQueryGetIntersectionGeometryIndexKHR: |
| return "OpRayQueryGetIntersectionGeometryIndexKHR"; |
| case spv::OpRayQueryGetIntersectionPrimitiveIndexKHR: |
| return "OpRayQueryGetIntersectionPrimitiveIndexKHR"; |
| case spv::OpRayQueryGetIntersectionBarycentricsKHR: |
| return "OpRayQueryGetIntersectionBarycentricsKHR"; |
| case spv::OpRayQueryGetIntersectionFrontFaceKHR: |
| return "OpRayQueryGetIntersectionFrontFaceKHR"; |
| case spv::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: |
| return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR"; |
| case spv::OpRayQueryGetIntersectionObjectRayDirectionKHR: |
| return "OpRayQueryGetIntersectionObjectRayDirectionKHR"; |
| case spv::OpRayQueryGetIntersectionObjectRayOriginKHR: |
| return "OpRayQueryGetIntersectionObjectRayOriginKHR"; |
| case spv::OpRayQueryGetWorldRayDirectionKHR: |
| return "OpRayQueryGetWorldRayDirectionKHR"; |
| case spv::OpRayQueryGetWorldRayOriginKHR: |
| return "OpRayQueryGetWorldRayOriginKHR"; |
| case spv::OpRayQueryGetIntersectionObjectToWorldKHR: |
| return "OpRayQueryGetIntersectionObjectToWorldKHR"; |
| case spv::OpRayQueryGetIntersectionWorldToObjectKHR: |
| return "OpRayQueryGetIntersectionWorldToObjectKHR"; |
| case spv::OpAtomicFAddEXT: |
| return "OpAtomicFAddEXT"; |
| case spv::OpControlBarrierArriveEXT: |
| return "OpControlBarrierArriveEXT"; |
| case spv::OpControlBarrierWaitEXT: |
| return "OpControlBarrierWaitEXT"; |
| case spv::OpArithmeticFenceEXT: |
| return "OpArithmeticFenceEXT"; |
| case spv::OpSubgroupBlockPrefetchINTEL: |
| return "OpSubgroupBlockPrefetchINTEL"; |
| case spv::OpSubgroup2DBlockLoadINTEL: |
| return "OpSubgroup2DBlockLoadINTEL"; |
| case spv::OpSubgroup2DBlockLoadTransformINTEL: |
| return "OpSubgroup2DBlockLoadTransformINTEL"; |
| case spv::OpSubgroup2DBlockLoadTransposeINTEL: |
| return "OpSubgroup2DBlockLoadTransposeINTEL"; |
| case spv::OpSubgroup2DBlockPrefetchINTEL: |
| return "OpSubgroup2DBlockPrefetchINTEL"; |
| case spv::OpSubgroup2DBlockStoreINTEL: |
| return "OpSubgroup2DBlockStoreINTEL"; |
| case spv::OpSubgroupMatrixMultiplyAccumulateINTEL: |
| return "OpSubgroupMatrixMultiplyAccumulateINTEL"; |
| case spv::OpBitwiseFunctionINTEL: |
| return "OpBitwiseFunctionINTEL"; |
| case spv::OpUntypedVariableLengthArrayINTEL: |
| return "OpUntypedVariableLengthArrayINTEL"; |
| case spv::OpPredicatedLoadINTEL: |
| return "OpPredicatedLoadINTEL"; |
| case spv::OpPredicatedStoreINTEL: |
| return "OpPredicatedStoreINTEL"; |
| case spv::OpGroupIMulKHR: |
| return "OpGroupIMulKHR"; |
| case spv::OpGroupFMulKHR: |
| return "OpGroupFMulKHR"; |
| case spv::OpGroupBitwiseAndKHR: |
| return "OpGroupBitwiseAndKHR"; |
| case spv::OpGroupBitwiseOrKHR: |
| return "OpGroupBitwiseOrKHR"; |
| case spv::OpGroupBitwiseXorKHR: |
| return "OpGroupBitwiseXorKHR"; |
| case spv::OpGroupLogicalAndKHR: |
| return "OpGroupLogicalAndKHR"; |
| case spv::OpGroupLogicalOrKHR: |
| return "OpGroupLogicalOrKHR"; |
| case spv::OpGroupLogicalXorKHR: |
| return "OpGroupLogicalXorKHR"; |
| case spv::OpRoundFToTF32INTEL: |
| return "OpRoundFToTF32INTEL"; |
| case spv::OpFDot2MixAcc32VALVE: |
| return "OpFDot2MixAcc32VALVE"; |
| case spv::OpFDot2MixAcc16VALVE: |
| return "OpFDot2MixAcc16VALVE"; |
| case spv::OpFDot4MixAcc32VALVE: |
| return "OpFDot4MixAcc32VALVE"; |
| |
| #ifdef VK_ENABLE_BETA_EXTENSIONS |
| case spv::OpAllocateNodePayloadsAMDX: |
| return "OpAllocateNodePayloadsAMDX"; |
| case spv::OpEnqueueNodePayloadsAMDX: |
| return "OpEnqueueNodePayloadsAMDX"; |
| case spv::OpTypeNodePayloadArrayAMDX: |
| return "OpTypeNodePayloadArrayAMDX"; |
| case spv::OpFinishWritingNodePayloadAMDX: |
| return "OpFinishWritingNodePayloadAMDX"; |
| case spv::OpNodePayloadArrayLengthAMDX: |
| return "OpNodePayloadArrayLengthAMDX"; |
| case spv::OpIsNodePayloadValidAMDX: |
| return "OpIsNodePayloadValidAMDX"; |
| case spv::OpConstantStringAMDX: |
| return "OpConstantStringAMDX"; |
| case spv::OpSpecConstantStringAMDX: |
| return "OpSpecConstantStringAMDX"; |
| case spv::OpPoisonKHR: |
| return "OpPoisonKHR"; |
| case spv::OpFreezeKHR: |
| return "OpFreezeKHR"; |
| case spv::OpConditionalExtensionINTEL: |
| return "OpConditionalExtensionINTEL"; |
| case spv::OpConditionalEntryPointINTEL: |
| return "OpConditionalEntryPointINTEL"; |
| case spv::OpConditionalCapabilityINTEL: |
| return "OpConditionalCapabilityINTEL"; |
| case spv::OpSpecConstantTargetINTEL: |
| return "OpSpecConstantTargetINTEL"; |
| case spv::OpSpecConstantArchitectureINTEL: |
| return "OpSpecConstantArchitectureINTEL"; |
| case spv::OpSpecConstantCapabilitiesINTEL: |
| return "OpSpecConstantCapabilitiesINTEL"; |
| case spv::OpConditionalCopyObjectINTEL: |
| return "OpConditionalCopyObjectINTEL"; |
| case spv::OpConvertHandleToImageINTEL: |
| return "OpConvertHandleToImageINTEL"; |
| case spv::OpConvertHandleToSamplerINTEL: |
| return "OpConvertHandleToSamplerINTEL"; |
| case spv::OpConvertHandleToSampledImageINTEL: |
| return "OpConvertHandleToSampledImageINTEL"; |
| #endif |
| default: |
| return "Unknown Opcode"; |
| } |
| } |
| |
| const char* string_SpvStorageClass(uint32_t storage_class) { |
| switch (storage_class) { |
| case spv::StorageClassUniformConstant: |
| return "UniformConstant"; |
| case spv::StorageClassInput: |
| return "Input"; |
| case spv::StorageClassUniform: |
| return "Uniform"; |
| case spv::StorageClassOutput: |
| return "Output"; |
| case spv::StorageClassWorkgroup: |
| return "Workgroup"; |
| case spv::StorageClassCrossWorkgroup: |
| return "CrossWorkgroup"; |
| case spv::StorageClassPrivate: |
| return "Private"; |
| case spv::StorageClassFunction: |
| return "Function"; |
| case spv::StorageClassGeneric: |
| return "Generic"; |
| case spv::StorageClassPushConstant: |
| return "PushConstant"; |
| case spv::StorageClassAtomicCounter: |
| return "AtomicCounter"; |
| case spv::StorageClassImage: |
| return "Image"; |
| case spv::StorageClassStorageBuffer: |
| return "StorageBuffer"; |
| case spv::StorageClassTileImageEXT: |
| return "TileImageEXT"; |
| case spv::StorageClassTileAttachmentQCOM: |
| return "TileAttachmentQCOM"; |
| case spv::StorageClassCallableDataKHR: |
| return "CallableDataKHR"; |
| case spv::StorageClassIncomingCallableDataKHR: |
| return "IncomingCallableDataKHR"; |
| case spv::StorageClassRayPayloadKHR: |
| return "RayPayloadKHR"; |
| case spv::StorageClassHitAttributeKHR: |
| return "HitAttributeKHR"; |
| case spv::StorageClassIncomingRayPayloadKHR: |
| return "IncomingRayPayloadKHR"; |
| case spv::StorageClassShaderRecordBufferKHR: |
| return "ShaderRecordBufferKHR"; |
| case spv::StorageClassPhysicalStorageBuffer: |
| return "PhysicalStorageBuffer"; |
| case spv::StorageClassHitObjectAttributeNV: |
| return "HitObjectAttributeNV"; |
| case spv::StorageClassTaskPayloadWorkgroupEXT: |
| return "TaskPayloadWorkgroupEXT"; |
| case spv::StorageClassHitObjectAttributeEXT: |
| return "HitObjectAttributeEXT"; |
| case spv::StorageClassCodeSectionINTEL: |
| return "CodeSectionINTEL"; |
| case spv::StorageClassDeviceOnlyALTERA: |
| return "DeviceOnlyALTERA"; |
| case spv::StorageClassHostOnlyALTERA: |
| return "HostOnlyALTERA"; |
| |
| #ifdef VK_ENABLE_BETA_EXTENSIONS |
| case spv::StorageClassNodePayloadAMDX: |
| return "NodePayloadAMDX"; |
| #endif |
| default: |
| return "Unknown Storage Class"; |
| } |
| } |
| |
| const char* string_SpvExecutionModel(uint32_t execution_model) { |
| switch (execution_model) { |
| case spv::ExecutionModelVertex: |
| return "Vertex"; |
| case spv::ExecutionModelTessellationControl: |
| return "TessellationControl"; |
| case spv::ExecutionModelTessellationEvaluation: |
| return "TessellationEvaluation"; |
| case spv::ExecutionModelGeometry: |
| return "Geometry"; |
| case spv::ExecutionModelFragment: |
| return "Fragment"; |
| case spv::ExecutionModelGLCompute: |
| return "GLCompute"; |
| case spv::ExecutionModelKernel: |
| return "Kernel"; |
| case spv::ExecutionModelTaskNV: |
| return "TaskNV"; |
| case spv::ExecutionModelMeshNV: |
| return "MeshNV"; |
| case spv::ExecutionModelRayGenerationKHR: |
| return "RayGenerationKHR"; |
| case spv::ExecutionModelIntersectionKHR: |
| return "IntersectionKHR"; |
| case spv::ExecutionModelAnyHitKHR: |
| return "AnyHitKHR"; |
| case spv::ExecutionModelClosestHitKHR: |
| return "ClosestHitKHR"; |
| case spv::ExecutionModelMissKHR: |
| return "MissKHR"; |
| case spv::ExecutionModelCallableKHR: |
| return "CallableKHR"; |
| case spv::ExecutionModelTaskEXT: |
| return "TaskEXT"; |
| case spv::ExecutionModelMeshEXT: |
| return "MeshEXT"; |
| |
| #ifdef VK_ENABLE_BETA_EXTENSIONS |
| #endif |
| default: |
| return "Unknown Execution Model"; |
| } |
| } |
| |
| const char* string_SpvExecutionMode(uint32_t execution_mode) { |
| switch (execution_mode) { |
| case spv::ExecutionModeInvocations: |
| return "Invocations"; |
| case spv::ExecutionModeSpacingEqual: |
| return "SpacingEqual"; |
| case spv::ExecutionModeSpacingFractionalEven: |
| return "SpacingFractionalEven"; |
| case spv::ExecutionModeSpacingFractionalOdd: |
| return "SpacingFractionalOdd"; |
| case spv::ExecutionModeVertexOrderCw: |
| return "VertexOrderCw"; |
| case spv::ExecutionModeVertexOrderCcw: |
| return "VertexOrderCcw"; |
| case spv::ExecutionModePixelCenterInteger: |
| return "PixelCenterInteger"; |
| case spv::ExecutionModeOriginUpperLeft: |
| return "OriginUpperLeft"; |
| case spv::ExecutionModeOriginLowerLeft: |
| return "OriginLowerLeft"; |
| case spv::ExecutionModeEarlyFragmentTests: |
| return "EarlyFragmentTests"; |
| case spv::ExecutionModePointMode: |
| return "PointMode"; |
| case spv::ExecutionModeXfb: |
| return "Xfb"; |
| case spv::ExecutionModeDepthReplacing: |
| return "DepthReplacing"; |
| case spv::ExecutionModeDepthGreater: |
| return "DepthGreater"; |
| case spv::ExecutionModeDepthLess: |
| return "DepthLess"; |
| case spv::ExecutionModeDepthUnchanged: |
| return "DepthUnchanged"; |
| case spv::ExecutionModeLocalSize: |
| return "LocalSize"; |
| case spv::ExecutionModeLocalSizeHint: |
| return "LocalSizeHint"; |
| case spv::ExecutionModeInputPoints: |
| return "InputPoints"; |
| case spv::ExecutionModeInputLines: |
| return "InputLines"; |
| case spv::ExecutionModeInputLinesAdjacency: |
| return "InputLinesAdjacency"; |
| case spv::ExecutionModeTriangles: |
| return "Triangles"; |
| case spv::ExecutionModeInputTrianglesAdjacency: |
| return "InputTrianglesAdjacency"; |
| case spv::ExecutionModeQuads: |
| return "Quads"; |
| case spv::ExecutionModeIsolines: |
| return "Isolines"; |
| case spv::ExecutionModeOutputVertices: |
| return "OutputVertices"; |
| case spv::ExecutionModeOutputPoints: |
| return "OutputPoints"; |
| case spv::ExecutionModeOutputLineStrip: |
| return "OutputLineStrip"; |
| case spv::ExecutionModeOutputTriangleStrip: |
| return "OutputTriangleStrip"; |
| case spv::ExecutionModeVecTypeHint: |
| return "VecTypeHint"; |
| case spv::ExecutionModeContractionOff: |
| return "ContractionOff"; |
| case spv::ExecutionModeInitializer: |
| return "Initializer"; |
| case spv::ExecutionModeFinalizer: |
| return "Finalizer"; |
| case spv::ExecutionModeSubgroupSize: |
| return "SubgroupSize"; |
| case spv::ExecutionModeSubgroupsPerWorkgroup: |
| return "SubgroupsPerWorkgroup"; |
| case spv::ExecutionModeSubgroupsPerWorkgroupId: |
| return "SubgroupsPerWorkgroupId"; |
| case spv::ExecutionModeLocalSizeId: |
| return "LocalSizeId"; |
| case spv::ExecutionModeLocalSizeHintId: |
| return "LocalSizeHintId"; |
| case spv::ExecutionModeNonCoherentColorAttachmentReadEXT: |
| return "NonCoherentColorAttachmentReadEXT"; |
| case spv::ExecutionModeNonCoherentDepthAttachmentReadEXT: |
| return "NonCoherentDepthAttachmentReadEXT"; |
| case spv::ExecutionModeNonCoherentStencilAttachmentReadEXT: |
| return "NonCoherentStencilAttachmentReadEXT"; |
| case spv::ExecutionModeSubgroupUniformControlFlowKHR: |
| return "SubgroupUniformControlFlowKHR"; |
| case spv::ExecutionModePostDepthCoverage: |
| return "PostDepthCoverage"; |
| case spv::ExecutionModeDenormPreserve: |
| return "DenormPreserve"; |
| case spv::ExecutionModeDenormFlushToZero: |
| return "DenormFlushToZero"; |
| case spv::ExecutionModeSignedZeroInfNanPreserve: |
| return "SignedZeroInfNanPreserve"; |
| case spv::ExecutionModeRoundingModeRTE: |
| return "RoundingModeRTE"; |
| case spv::ExecutionModeRoundingModeRTZ: |
| return "RoundingModeRTZ"; |
| case spv::ExecutionModeNonCoherentTileAttachmentReadQCOM: |
| return "NonCoherentTileAttachmentReadQCOM"; |
| case spv::ExecutionModeTileShadingRateQCOM: |
| return "TileShadingRateQCOM"; |
| case spv::ExecutionModeEarlyAndLateFragmentTestsAMD: |
| return "EarlyAndLateFragmentTestsAMD"; |
| case spv::ExecutionModeStencilRefReplacingEXT: |
| return "StencilRefReplacingEXT"; |
| case spv::ExecutionModeStencilRefUnchangedFrontAMD: |
| return "StencilRefUnchangedFrontAMD"; |
| case spv::ExecutionModeStencilRefGreaterFrontAMD: |
| return "StencilRefGreaterFrontAMD"; |
| case spv::ExecutionModeStencilRefLessFrontAMD: |
| return "StencilRefLessFrontAMD"; |
| case spv::ExecutionModeStencilRefUnchangedBackAMD: |
| return "StencilRefUnchangedBackAMD"; |
| case spv::ExecutionModeStencilRefGreaterBackAMD: |
| return "StencilRefGreaterBackAMD"; |
| case spv::ExecutionModeStencilRefLessBackAMD: |
| return "StencilRefLessBackAMD"; |
| case spv::ExecutionModeQuadDerivativesKHR: |
| return "QuadDerivativesKHR"; |
| case spv::ExecutionModeRequireFullQuadsKHR: |
| return "RequireFullQuadsKHR"; |
| case spv::ExecutionModeOutputLinesEXT: |
| return "OutputLinesEXT"; |
| case spv::ExecutionModeOutputPrimitivesEXT: |
| return "OutputPrimitivesEXT"; |
| case spv::ExecutionModeDerivativeGroupQuadsKHR: |
| return "DerivativeGroupQuadsKHR"; |
| case spv::ExecutionModeDerivativeGroupLinearKHR: |
| return "DerivativeGroupLinearKHR"; |
| case spv::ExecutionModeOutputTrianglesEXT: |
| return "OutputTrianglesEXT"; |
| case spv::ExecutionModePixelInterlockOrderedEXT: |
| return "PixelInterlockOrderedEXT"; |
| case spv::ExecutionModePixelInterlockUnorderedEXT: |
| return "PixelInterlockUnorderedEXT"; |
| case spv::ExecutionModeSampleInterlockOrderedEXT: |
| return "SampleInterlockOrderedEXT"; |
| case spv::ExecutionModeSampleInterlockUnorderedEXT: |
| return "SampleInterlockUnorderedEXT"; |
| case spv::ExecutionModeShadingRateInterlockOrderedEXT: |
| return "ShadingRateInterlockOrderedEXT"; |
| case spv::ExecutionModeShadingRateInterlockUnorderedEXT: |
| return "ShadingRateInterlockUnorderedEXT"; |
| case spv::ExecutionModeShader64BitIndexingEXT: |
| return "Shader64BitIndexingEXT"; |
| case spv::ExecutionModeSharedLocalMemorySizeINTEL: |
| return "SharedLocalMemorySizeINTEL"; |
| case spv::ExecutionModeRoundingModeRTPINTEL: |
| return "RoundingModeRTPINTEL"; |
| case spv::ExecutionModeRoundingModeRTNINTEL: |
| return "RoundingModeRTNINTEL"; |
| case spv::ExecutionModeFloatingPointModeALTINTEL: |
| return "FloatingPointModeALTINTEL"; |
| case spv::ExecutionModeFloatingPointModeIEEEINTEL: |
| return "FloatingPointModeIEEEINTEL"; |
| case spv::ExecutionModeMaxWorkgroupSizeINTEL: |
| return "MaxWorkgroupSizeINTEL"; |
| case spv::ExecutionModeMaxWorkDimINTEL: |
| return "MaxWorkDimINTEL"; |
| case spv::ExecutionModeNoGlobalOffsetINTEL: |
| return "NoGlobalOffsetINTEL"; |
| case spv::ExecutionModeNumSIMDWorkitemsINTEL: |
| return "NumSIMDWorkitemsINTEL"; |
| case spv::ExecutionModeSchedulerTargetFmaxMhzINTEL: |
| return "SchedulerTargetFmaxMhzINTEL"; |
| case spv::ExecutionModeMaximallyReconvergesKHR: |
| return "MaximallyReconvergesKHR"; |
| case spv::ExecutionModeFPFastMathDefault: |
| return "FPFastMathDefault"; |
| case spv::ExecutionModeOpacityMicromapIdKHR: |
| return "OpacityMicromapIdKHR"; |
| case spv::ExecutionModeStreamingInterfaceINTEL: |
| return "StreamingInterfaceINTEL"; |
| case spv::ExecutionModeRegisterMapInterfaceINTEL: |
| return "RegisterMapInterfaceINTEL"; |
| case spv::ExecutionModeNamedBarrierCountINTEL: |
| return "NamedBarrierCountINTEL"; |
| case spv::ExecutionModeMaximumRegistersINTEL: |
| return "MaximumRegistersINTEL"; |
| case spv::ExecutionModeMaximumRegistersIdINTEL: |
| return "MaximumRegistersIdINTEL"; |
| case spv::ExecutionModeNamedMaximumRegistersINTEL: |
| return "NamedMaximumRegistersINTEL"; |
| |
| #ifdef VK_ENABLE_BETA_EXTENSIONS |
| case spv::ExecutionModeCoalescingAMDX: |
| return "CoalescingAMDX"; |
| case spv::ExecutionModeIsApiEntryAMDX: |
| return "IsApiEntryAMDX"; |
| case spv::ExecutionModeMaxNodeRecursionAMDX: |
| return "MaxNodeRecursionAMDX"; |
| case spv::ExecutionModeStaticNumWorkgroupsAMDX: |
| return "StaticNumWorkgroupsAMDX"; |
| case spv::ExecutionModeShaderIndexAMDX: |
| return "ShaderIndexAMDX"; |
| case spv::ExecutionModeMaxNumWorkgroupsAMDX: |
| return "MaxNumWorkgroupsAMDX"; |
| case spv::ExecutionModeSharesInputWithAMDX: |
| return "SharesInputWithAMDX"; |
| case spv::ExecutionModeArithmeticPoisonKHR: |
| return "ArithmeticPoisonKHR"; |
| #endif |
| default: |
| return "Unknown Execution Mode"; |
| } |
| } |
| |
| const char* string_SpvDecoration(uint32_t decoration) { |
| switch (decoration) { |
| case spv::DecorationRelaxedPrecision: |
| return "RelaxedPrecision"; |
| case spv::DecorationSpecId: |
| return "SpecId"; |
| case spv::DecorationBlock: |
| return "Block"; |
| case spv::DecorationBufferBlock: |
| return "BufferBlock"; |
| case spv::DecorationRowMajor: |
| return "RowMajor"; |
| case spv::DecorationColMajor: |
| return "ColMajor"; |
| case spv::DecorationArrayStride: |
| return "ArrayStride"; |
| case spv::DecorationMatrixStride: |
| return "MatrixStride"; |
| case spv::DecorationGLSLShared: |
| return "GLSLShared"; |
| case spv::DecorationGLSLPacked: |
| return "GLSLPacked"; |
| case spv::DecorationCPacked: |
| return "CPacked"; |
| case spv::DecorationBuiltIn: |
| return "BuiltIn"; |
| case spv::DecorationNoPerspective: |
| return "NoPerspective"; |
| case spv::DecorationFlat: |
| return "Flat"; |
| case spv::DecorationPatch: |
| return "Patch"; |
| case spv::DecorationCentroid: |
| return "Centroid"; |
| case spv::DecorationSample: |
| return "Sample"; |
| case spv::DecorationInvariant: |
| return "Invariant"; |
| case spv::DecorationRestrict: |
| return "Restrict"; |
| case spv::DecorationAliased: |
| return "Aliased"; |
| case spv::DecorationVolatile: |
| return "Volatile"; |
| case spv::DecorationConstant: |
| return "Constant"; |
| case spv::DecorationCoherent: |
| return "Coherent"; |
| case spv::DecorationNonWritable: |
| return "NonWritable"; |
| case spv::DecorationNonReadable: |
| return "NonReadable"; |
| case spv::DecorationUniform: |
| return "Uniform"; |
| case spv::DecorationUniformId: |
| return "UniformId"; |
| case spv::DecorationSaturatedConversion: |
| return "SaturatedConversion"; |
| case spv::DecorationStream: |
| return "Stream"; |
| case spv::DecorationLocation: |
| return "Location"; |
| case spv::DecorationComponent: |
| return "Component"; |
| case spv::DecorationIndex: |
| return "Index"; |
| case spv::DecorationBinding: |
| return "Binding"; |
| case spv::DecorationDescriptorSet: |
| return "DescriptorSet"; |
| case spv::DecorationOffset: |
| return "Offset"; |
| case spv::DecorationXfbBuffer: |
| return "XfbBuffer"; |
| case spv::DecorationXfbStride: |
| return "XfbStride"; |
| case spv::DecorationFuncParamAttr: |
| return "FuncParamAttr"; |
| case spv::DecorationFPRoundingMode: |
| return "FPRoundingMode"; |
| case spv::DecorationFPFastMathMode: |
| return "FPFastMathMode"; |
| case spv::DecorationLinkageAttributes: |
| return "LinkageAttributes"; |
| case spv::DecorationNoContraction: |
| return "NoContraction"; |
| case spv::DecorationInputAttachmentIndex: |
| return "InputAttachmentIndex"; |
| case spv::DecorationAlignment: |
| return "Alignment"; |
| case spv::DecorationMaxByteOffset: |
| return "MaxByteOffset"; |
| case spv::DecorationAlignmentId: |
| return "AlignmentId"; |
| case spv::DecorationMaxByteOffsetId: |
| return "MaxByteOffsetId"; |
| case spv::DecorationSaturatedToLargestFloat8NormalConversionEXT: |
| return "SaturatedToLargestFloat8NormalConversionEXT"; |
| case spv::DecorationNoSignedWrap: |
| return "NoSignedWrap"; |
| case spv::DecorationNoUnsignedWrap: |
| return "NoUnsignedWrap"; |
| case spv::DecorationWeightTextureQCOM: |
| return "WeightTextureQCOM"; |
| case spv::DecorationBlockMatchTextureQCOM: |
| return "BlockMatchTextureQCOM"; |
| case spv::DecorationBlockMatchSamplerQCOM: |
| return "BlockMatchSamplerQCOM"; |
| case spv::DecorationExplicitInterpAMD: |
| return "ExplicitInterpAMD"; |
| case spv::DecorationArrayStrideIdEXT: |
| return "ArrayStrideIdEXT"; |
| case spv::DecorationOffsetIdEXT: |
| return "OffsetIdEXT"; |
| case spv::DecorationUTFEncodedKHR: |
| return "UTFEncodedKHR"; |
| case spv::DecorationOverrideCoverageNV: |
| return "OverrideCoverageNV"; |
| case spv::DecorationPassthroughNV: |
| return "PassthroughNV"; |
| case spv::DecorationViewportRelativeNV: |
| return "ViewportRelativeNV"; |
| case spv::DecorationSecondaryViewportRelativeNV: |
| return "SecondaryViewportRelativeNV"; |
| case spv::DecorationPerPrimitiveEXT: |
| return "PerPrimitiveEXT"; |
| case spv::DecorationPerViewNV: |
| return "PerViewNV"; |
| case spv::DecorationPerTaskNV: |
| return "PerTaskNV"; |
| case spv::DecorationPerVertexKHR: |
| return "PerVertexKHR"; |
| case spv::DecorationNonUniform: |
| return "NonUniform"; |
| case spv::DecorationRestrictPointer: |
| return "RestrictPointer"; |
| case spv::DecorationAliasedPointer: |
| return "AliasedPointer"; |
| case spv::DecorationMemberOffsetNV: |
| return "MemberOffsetNV"; |
| case spv::DecorationHitObjectShaderRecordBufferNV: |
| return "HitObjectShaderRecordBufferNV"; |
| case spv::DecorationHitObjectShaderRecordBufferEXT: |
| return "HitObjectShaderRecordBufferEXT"; |
| case spv::DecorationBankNV: |
| return "BankNV"; |
| case spv::DecorationBindlessSamplerNV: |
| return "BindlessSamplerNV"; |
| case spv::DecorationBindlessImageNV: |
| return "BindlessImageNV"; |
| case spv::DecorationBoundSamplerNV: |
| return "BoundSamplerNV"; |
| case spv::DecorationBoundImageNV: |
| return "BoundImageNV"; |
| case spv::DecorationSIMTCallINTEL: |
| return "SIMTCallINTEL"; |
| case spv::DecorationReferencedIndirectlyINTEL: |
| return "ReferencedIndirectlyINTEL"; |
| case spv::DecorationClobberINTEL: |
| return "ClobberINTEL"; |
| case spv::DecorationSideEffectsINTEL: |
| return "SideEffectsINTEL"; |
| case spv::DecorationVectorComputeVariableINTEL: |
| return "VectorComputeVariableINTEL"; |
| case spv::DecorationFuncParamIOKindINTEL: |
| return "FuncParamIOKindINTEL"; |
| case spv::DecorationVectorComputeFunctionINTEL: |
| return "VectorComputeFunctionINTEL"; |
| case spv::DecorationStackCallINTEL: |
| return "StackCallINTEL"; |
| case spv::DecorationGlobalVariableOffsetINTEL: |
| return "GlobalVariableOffsetINTEL"; |
| case spv::DecorationCounterBuffer: |
| return "CounterBuffer"; |
| case spv::DecorationUserSemantic: |
| return "UserSemantic"; |
| case spv::DecorationUserTypeGOOGLE: |
| return "UserTypeGOOGLE"; |
| case spv::DecorationFunctionRoundingModeINTEL: |
| return "FunctionRoundingModeINTEL"; |
| case spv::DecorationFunctionDenormModeINTEL: |
| return "FunctionDenormModeINTEL"; |
| case spv::DecorationRegisterALTERA: |
| return "RegisterALTERA"; |
| case spv::DecorationMemoryALTERA: |
| return "MemoryALTERA"; |
| case spv::DecorationNumbanksALTERA: |
| return "NumbanksALTERA"; |
| case spv::DecorationBankwidthALTERA: |
| return "BankwidthALTERA"; |
| case spv::DecorationMaxPrivateCopiesALTERA: |
| return "MaxPrivateCopiesALTERA"; |
| case spv::DecorationSinglepumpALTERA: |
| return "SinglepumpALTERA"; |
| case spv::DecorationDoublepumpALTERA: |
| return "DoublepumpALTERA"; |
| case spv::DecorationMaxReplicatesALTERA: |
| return "MaxReplicatesALTERA"; |
| case spv::DecorationSimpleDualPortALTERA: |
| return "SimpleDualPortALTERA"; |
| case spv::DecorationMergeALTERA: |
| return "MergeALTERA"; |
| case spv::DecorationBankBitsALTERA: |
| return "BankBitsALTERA"; |
| case spv::DecorationForcePow2DepthALTERA: |
| return "ForcePow2DepthALTERA"; |
| case spv::DecorationStridesizeALTERA: |
| return "StridesizeALTERA"; |
| case spv::DecorationWordsizeALTERA: |
| return "WordsizeALTERA"; |
| case spv::DecorationTrueDualPortALTERA: |
| return "TrueDualPortALTERA"; |
| case spv::DecorationBurstCoalesceALTERA: |
| return "BurstCoalesceALTERA"; |
| case spv::DecorationCacheSizeALTERA: |
| return "CacheSizeALTERA"; |
| case spv::DecorationDontStaticallyCoalesceALTERA: |
| return "DontStaticallyCoalesceALTERA"; |
| case spv::DecorationPrefetchALTERA: |
| return "PrefetchALTERA"; |
| case spv::DecorationStallEnableALTERA: |
| return "StallEnableALTERA"; |
| case spv::DecorationFuseLoopsInFunctionALTERA: |
| return "FuseLoopsInFunctionALTERA"; |
| case spv::DecorationMathOpDSPModeALTERA: |
| return "MathOpDSPModeALTERA"; |
| case spv::DecorationAliasScopeINTEL: |
| return "AliasScopeINTEL"; |
| case spv::DecorationNoAliasINTEL: |
| return "NoAliasINTEL"; |
| case spv::DecorationInitiationIntervalALTERA: |
| return "InitiationIntervalALTERA"; |
| case spv::DecorationMaxConcurrencyALTERA: |
| return "MaxConcurrencyALTERA"; |
| case spv::DecorationPipelineEnableALTERA: |
| return "PipelineEnableALTERA"; |
| case spv::DecorationBufferLocationALTERA: |
| return "BufferLocationALTERA"; |
| case spv::DecorationIOPipeStorageALTERA: |
| return "IOPipeStorageALTERA"; |
| case spv::DecorationFunctionFloatingPointModeINTEL: |
| return "FunctionFloatingPointModeINTEL"; |
| case spv::DecorationSingleElementVectorINTEL: |
| return "SingleElementVectorINTEL"; |
| case spv::DecorationVectorComputeCallableFunctionINTEL: |
| return "VectorComputeCallableFunctionINTEL"; |
| case spv::DecorationMediaBlockIOINTEL: |
| return "MediaBlockIOINTEL"; |
| case spv::DecorationStallFreeALTERA: |
| return "StallFreeALTERA"; |
| case spv::DecorationFPMaxErrorDecorationINTEL: |
| return "FPMaxErrorDecorationINTEL"; |
| case spv::DecorationLatencyControlLabelALTERA: |
| return "LatencyControlLabelALTERA"; |
| case spv::DecorationLatencyControlConstraintALTERA: |
| return "LatencyControlConstraintALTERA"; |
| case spv::DecorationConduitKernelArgumentALTERA: |
| return "ConduitKernelArgumentALTERA"; |
| case spv::DecorationRegisterMapKernelArgumentALTERA: |
| return "RegisterMapKernelArgumentALTERA"; |
| case spv::DecorationMMHostInterfaceAddressWidthALTERA: |
| return "MMHostInterfaceAddressWidthALTERA"; |
| case spv::DecorationMMHostInterfaceDataWidthALTERA: |
| return "MMHostInterfaceDataWidthALTERA"; |
| case spv::DecorationMMHostInterfaceLatencyALTERA: |
| return "MMHostInterfaceLatencyALTERA"; |
| case spv::DecorationMMHostInterfaceReadWriteModeALTERA: |
| return "MMHostInterfaceReadWriteModeALTERA"; |
| case spv::DecorationMMHostInterfaceMaxBurstALTERA: |
| return "MMHostInterfaceMaxBurstALTERA"; |
| case spv::DecorationMMHostInterfaceWaitRequestALTERA: |
| return "MMHostInterfaceWaitRequestALTERA"; |
| case spv::DecorationStableKernelArgumentALTERA: |
| return "StableKernelArgumentALTERA"; |
| case spv::DecorationHostAccessINTEL: |
| return "HostAccessINTEL"; |
| case spv::DecorationInitModeALTERA: |
| return "InitModeALTERA"; |
| case spv::DecorationImplementInRegisterMapALTERA: |
| return "ImplementInRegisterMapALTERA"; |
| case spv::DecorationCacheControlLoadINTEL: |
| return "CacheControlLoadINTEL"; |
| case spv::DecorationCacheControlStoreINTEL: |
| return "CacheControlStoreINTEL"; |
| |
| #ifdef VK_ENABLE_BETA_EXTENSIONS |
| case spv::DecorationNodeSharesPayloadLimitsWithAMDX: |
| return "NodeSharesPayloadLimitsWithAMDX"; |
| case spv::DecorationNodeMaxPayloadsAMDX: |
| return "NodeMaxPayloadsAMDX"; |
| case spv::DecorationTrackFinishWritingAMDX: |
| return "TrackFinishWritingAMDX"; |
| case spv::DecorationPayloadNodeNameAMDX: |
| return "PayloadNodeNameAMDX"; |
| case spv::DecorationPayloadNodeBaseIndexAMDX: |
| return "PayloadNodeBaseIndexAMDX"; |
| case spv::DecorationPayloadNodeSparseArrayAMDX: |
| return "PayloadNodeSparseArrayAMDX"; |
| case spv::DecorationPayloadNodeArraySizeAMDX: |
| return "PayloadNodeArraySizeAMDX"; |
| case spv::DecorationPayloadDispatchIndirectAMDX: |
| return "PayloadDispatchIndirectAMDX"; |
| case spv::DecorationConditionalINTEL: |
| return "ConditionalINTEL"; |
| #endif |
| default: |
| return "Unknown Decoration"; |
| } |
| } |
| |
| const char* string_SpvBuiltIn(spv::BuiltIn built_in) { |
| switch (built_in) { |
| case spv::BuiltInPosition: |
| return "Position"; |
| case spv::BuiltInPointSize: |
| return "PointSize"; |
| case spv::BuiltInClipDistance: |
| return "ClipDistance"; |
| case spv::BuiltInCullDistance: |
| return "CullDistance"; |
| case spv::BuiltInVertexId: |
| return "VertexId"; |
| case spv::BuiltInInstanceId: |
| return "InstanceId"; |
| case spv::BuiltInPrimitiveId: |
| return "PrimitiveId"; |
| case spv::BuiltInInvocationId: |
| return "InvocationId"; |
| case spv::BuiltInLayer: |
| return "Layer"; |
| case spv::BuiltInViewportIndex: |
| return "ViewportIndex"; |
| case spv::BuiltInTessLevelOuter: |
| return "TessLevelOuter"; |
| case spv::BuiltInTessLevelInner: |
| return "TessLevelInner"; |
| case spv::BuiltInTessCoord: |
| return "TessCoord"; |
| case spv::BuiltInPatchVertices: |
| return "PatchVertices"; |
| case spv::BuiltInFragCoord: |
| return "FragCoord"; |
| case spv::BuiltInPointCoord: |
| return "PointCoord"; |
| case spv::BuiltInFrontFacing: |
| return "FrontFacing"; |
| case spv::BuiltInSampleId: |
| return "SampleId"; |
| case spv::BuiltInSamplePosition: |
| return "SamplePosition"; |
| case spv::BuiltInSampleMask: |
| return "SampleMask"; |
| case spv::BuiltInFragDepth: |
| return "FragDepth"; |
| case spv::BuiltInHelperInvocation: |
| return "HelperInvocation"; |
| case spv::BuiltInNumWorkgroups: |
| return "NumWorkgroups"; |
| case spv::BuiltInWorkgroupSize: |
| return "WorkgroupSize"; |
| case spv::BuiltInWorkgroupId: |
| return "WorkgroupId"; |
| case spv::BuiltInLocalInvocationId: |
| return "LocalInvocationId"; |
| case spv::BuiltInGlobalInvocationId: |
| return "GlobalInvocationId"; |
| case spv::BuiltInLocalInvocationIndex: |
| return "LocalInvocationIndex"; |
| case spv::BuiltInWorkDim: |
| return "WorkDim"; |
| case spv::BuiltInGlobalSize: |
| return "GlobalSize"; |
| case spv::BuiltInEnqueuedWorkgroupSize: |
| return "EnqueuedWorkgroupSize"; |
| case spv::BuiltInGlobalOffset: |
| return "GlobalOffset"; |
| case spv::BuiltInGlobalLinearId: |
| return "GlobalLinearId"; |
| case spv::BuiltInSubgroupSize: |
| return "SubgroupSize"; |
| case spv::BuiltInSubgroupMaxSize: |
| return "SubgroupMaxSize"; |
| case spv::BuiltInNumSubgroups: |
| return "NumSubgroups"; |
| case spv::BuiltInNumEnqueuedSubgroups: |
| return "NumEnqueuedSubgroups"; |
| case spv::BuiltInSubgroupId: |
| return "SubgroupId"; |
| case spv::BuiltInSubgroupLocalInvocationId: |
| return "SubgroupLocalInvocationId"; |
| case spv::BuiltInVertexIndex: |
| return "VertexIndex"; |
| case spv::BuiltInInstanceIndex: |
| return "InstanceIndex"; |
| case spv::BuiltInCoreIDARM: |
| return "CoreIDARM"; |
| case spv::BuiltInCoreCountARM: |
| return "CoreCountARM"; |
| case spv::BuiltInCoreMaxIDARM: |
| return "CoreMaxIDARM"; |
| case spv::BuiltInWarpIDARM: |
| return "WarpIDARM"; |
| case spv::BuiltInWarpMaxIDARM: |
| return "WarpMaxIDARM"; |
| case spv::BuiltInSubgroupEqMask: |
| return "SubgroupEqMask"; |
| case spv::BuiltInSubgroupGeMask: |
| return "SubgroupGeMask"; |
| case spv::BuiltInSubgroupGtMask: |
| return "SubgroupGtMask"; |
| case spv::BuiltInSubgroupLeMask: |
| return "SubgroupLeMask"; |
| case spv::BuiltInSubgroupLtMask: |
| return "SubgroupLtMask"; |
| case spv::BuiltInBaseVertex: |
| return "BaseVertex"; |
| case spv::BuiltInBaseInstance: |
| return "BaseInstance"; |
| case spv::BuiltInDrawIndex: |
| return "DrawIndex"; |
| case spv::BuiltInPrimitiveShadingRateKHR: |
| return "PrimitiveShadingRateKHR"; |
| case spv::BuiltInDeviceIndex: |
| return "DeviceIndex"; |
| case spv::BuiltInViewIndex: |
| return "ViewIndex"; |
| case spv::BuiltInShadingRateKHR: |
| return "ShadingRateKHR"; |
| case spv::BuiltInTileOffsetQCOM: |
| return "TileOffsetQCOM"; |
| case spv::BuiltInTileDimensionQCOM: |
| return "TileDimensionQCOM"; |
| case spv::BuiltInTileApronSizeQCOM: |
| return "TileApronSizeQCOM"; |
| case spv::BuiltInBaryCoordNoPerspAMD: |
| return "BaryCoordNoPerspAMD"; |
| case spv::BuiltInBaryCoordNoPerspCentroidAMD: |
| return "BaryCoordNoPerspCentroidAMD"; |
| case spv::BuiltInBaryCoordNoPerspSampleAMD: |
| return "BaryCoordNoPerspSampleAMD"; |
| case spv::BuiltInBaryCoordSmoothAMD: |
| return "BaryCoordSmoothAMD"; |
| case spv::BuiltInBaryCoordSmoothCentroidAMD: |
| return "BaryCoordSmoothCentroidAMD"; |
| case spv::BuiltInBaryCoordSmoothSampleAMD: |
| return "BaryCoordSmoothSampleAMD"; |
| case spv::BuiltInBaryCoordPullModelAMD: |
| return "BaryCoordPullModelAMD"; |
| case spv::BuiltInFragStencilRefEXT: |
| return "FragStencilRefEXT"; |
| case spv::BuiltInSamplerHeapEXT: |
| return "SamplerHeapEXT"; |
| case spv::BuiltInResourceHeapEXT: |
| return "ResourceHeapEXT"; |
| case spv::BuiltInViewportMaskNV: |
| return "ViewportMaskNV"; |
| case spv::BuiltInSecondaryPositionNV: |
| return "SecondaryPositionNV"; |
| case spv::BuiltInSecondaryViewportMaskNV: |
| return "SecondaryViewportMaskNV"; |
| case spv::BuiltInPositionPerViewNV: |
| return "PositionPerViewNV"; |
| case spv::BuiltInViewportMaskPerViewNV: |
| return "ViewportMaskPerViewNV"; |
| case spv::BuiltInFullyCoveredEXT: |
| return "FullyCoveredEXT"; |
| case spv::BuiltInTaskCountNV: |
| return "TaskCountNV"; |
| case spv::BuiltInPrimitiveCountNV: |
| return "PrimitiveCountNV"; |
| case spv::BuiltInPrimitiveIndicesNV: |
| return "PrimitiveIndicesNV"; |
| case spv::BuiltInClipDistancePerViewNV: |
| return "ClipDistancePerViewNV"; |
| case spv::BuiltInCullDistancePerViewNV: |
| return "CullDistancePerViewNV"; |
| case spv::BuiltInLayerPerViewNV: |
| return "LayerPerViewNV"; |
| case spv::BuiltInMeshViewCountNV: |
| return "MeshViewCountNV"; |
| case spv::BuiltInMeshViewIndicesNV: |
| return "MeshViewIndicesNV"; |
| case spv::BuiltInBaryCoordKHR: |
| return "BaryCoordKHR"; |
| case spv::BuiltInBaryCoordNoPerspKHR: |
| return "BaryCoordNoPerspKHR"; |
| case spv::BuiltInFragSizeEXT: |
| return "FragSizeEXT"; |
| case spv::BuiltInFragInvocationCountEXT: |
| return "FragInvocationCountEXT"; |
| case spv::BuiltInPrimitivePointIndicesEXT: |
| return "PrimitivePointIndicesEXT"; |
| case spv::BuiltInPrimitiveLineIndicesEXT: |
| return "PrimitiveLineIndicesEXT"; |
| case spv::BuiltInPrimitiveTriangleIndicesEXT: |
| return "PrimitiveTriangleIndicesEXT"; |
| case spv::BuiltInCullPrimitiveEXT: |
| return "CullPrimitiveEXT"; |
| case spv::BuiltInLaunchIdKHR: |
| return "LaunchIdKHR"; |
| case spv::BuiltInLaunchSizeKHR: |
| return "LaunchSizeKHR"; |
| case spv::BuiltInWorldRayOriginKHR: |
| return "WorldRayOriginKHR"; |
| case spv::BuiltInWorldRayDirectionKHR: |
| return "WorldRayDirectionKHR"; |
| case spv::BuiltInObjectRayOriginKHR: |
| return "ObjectRayOriginKHR"; |
| case spv::BuiltInObjectRayDirectionKHR: |
| return "ObjectRayDirectionKHR"; |
| case spv::BuiltInRayTminKHR: |
| return "RayTminKHR"; |
| case spv::BuiltInRayTmaxKHR: |
| return "RayTmaxKHR"; |
| case spv::BuiltInInstanceCustomIndexKHR: |
| return "InstanceCustomIndexKHR"; |
| case spv::BuiltInObjectToWorldKHR: |
| return "ObjectToWorldKHR"; |
| case spv::BuiltInWorldToObjectKHR: |
| return "WorldToObjectKHR"; |
| case spv::BuiltInHitTNV: |
| return "HitTNV"; |
| case spv::BuiltInHitKindKHR: |
| return "HitKindKHR"; |
| case spv::BuiltInCurrentRayTimeNV: |
| return "CurrentRayTimeNV"; |
| case spv::BuiltInHitTriangleVertexPositionsKHR: |
| return "HitTriangleVertexPositionsKHR"; |
| case spv::BuiltInHitMicroTriangleVertexPositionsNV: |
| return "HitMicroTriangleVertexPositionsNV"; |
| case spv::BuiltInHitMicroTriangleVertexBarycentricsNV: |
| return "HitMicroTriangleVertexBarycentricsNV"; |
| case spv::BuiltInIncomingRayFlagsKHR: |
| return "IncomingRayFlagsKHR"; |
| case spv::BuiltInRayGeometryIndexKHR: |
| return "RayGeometryIndexKHR"; |
| case spv::BuiltInHitIsSphereNV: |
| return "HitIsSphereNV"; |
| case spv::BuiltInHitIsLSSNV: |
| return "HitIsLSSNV"; |
| case spv::BuiltInHitSpherePositionNV: |
| return "HitSpherePositionNV"; |
| case spv::BuiltInWarpsPerSMNV: |
| return "WarpsPerSMNV"; |
| case spv::BuiltInSMCountNV: |
| return "SMCountNV"; |
| case spv::BuiltInWarpIDNV: |
| return "WarpIDNV"; |
| case spv::BuiltInSMIDNV: |
| return "SMIDNV"; |
| case spv::BuiltInHitLSSPositionsNV: |
| return "HitLSSPositionsNV"; |
| case spv::BuiltInHitKindFrontFacingMicroTriangleNV: |
| return "HitKindFrontFacingMicroTriangleNV"; |
| case spv::BuiltInHitKindBackFacingMicroTriangleNV: |
| return "HitKindBackFacingMicroTriangleNV"; |
| case spv::BuiltInHitSphereRadiusNV: |
| return "HitSphereRadiusNV"; |
| case spv::BuiltInHitLSSRadiiNV: |
| return "HitLSSRadiiNV"; |
| case spv::BuiltInClusterIDNV: |
| return "ClusterIDNV"; |
| case spv::BuiltInCullMaskKHR: |
| return "CullMaskKHR"; |
| |
| #ifdef VK_ENABLE_BETA_EXTENSIONS |
| case spv::BuiltInRemainingRecursionLevelsAMDX: |
| return "RemainingRecursionLevelsAMDX"; |
| case spv::BuiltInShaderIndexAMDX: |
| return "ShaderIndexAMDX"; |
| #endif |
| default: |
| return "Unknown BuiltIn"; |
| } |
| } |
| |
| const char* string_SpvDim(uint32_t dim) { |
| switch (dim) { |
| case spv::Dim1D: |
| return "1D"; |
| case spv::Dim2D: |
| return "2D"; |
| case spv::Dim3D: |
| return "3D"; |
| case spv::DimCube: |
| return "Cube"; |
| case spv::DimRect: |
| return "Rect"; |
| case spv::DimBuffer: |
| return "Buffer"; |
| case spv::DimSubpassData: |
| return "SubpassData"; |
| case spv::DimTileImageDataEXT: |
| return "TileImageDataEXT"; |
| |
| default: |
| return "Unknown Dim"; |
| } |
| } |
| |
| static const char* string_SpvCooperativeMatrixOperandsMask(spv::CooperativeMatrixOperandsMask mask) { |
| switch (mask) { |
| case spv::CooperativeMatrixOperandsMaskNone: |
| return "NoneKHR"; |
| case spv::CooperativeMatrixOperandsMatrixASignedComponentsKHRMask: |
| return "MatrixASignedComponentsKHR"; |
| case spv::CooperativeMatrixOperandsMatrixBSignedComponentsKHRMask: |
| return "MatrixBSignedComponentsKHR"; |
| case spv::CooperativeMatrixOperandsMatrixCSignedComponentsKHRMask: |
| return "MatrixCSignedComponentsKHR"; |
| case spv::CooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask: |
| return "MatrixResultSignedComponentsKHR"; |
| case spv::CooperativeMatrixOperandsSaturatingAccumulationKHRMask: |
| return "SaturatingAccumulationKHR"; |
| |
| default: |
| return "Unknown CooperativeMatrixOperandsMask"; |
| } |
| } |
| |
| std::string string_SpvCooperativeMatrixOperands(uint32_t mask) { |
| if (mask == 0) { |
| return "CooperativeMatrixOperandsMask(0)"; |
| } |
| std::string ret; |
| for (uint32_t bit = 1; mask != 0; bit <<= 1, mask >>= 1) { |
| if (mask & 1) { |
| if (!ret.empty()) { |
| ret.append("|"); |
| } |
| ret.append(string_SpvCooperativeMatrixOperandsMask(static_cast<spv::CooperativeMatrixOperandsMask>(bit))); |
| } |
| } |
| return ret; |
| } |
| |
| static const char* string_SpvRayFlagsBit(spv::RayFlagsMask mask) { |
| switch (mask) { |
| case spv::RayFlagsMaskNone: |
| return "None"; |
| case spv::RayFlagsOpaqueKHRMask: |
| return "OpaqueKHR"; |
| case spv::RayFlagsNoOpaqueKHRMask: |
| return "NoOpaqueKHR"; |
| case spv::RayFlagsTerminateOnFirstHitKHRMask: |
| return "TerminateOnFirstHitKHR"; |
| case spv::RayFlagsSkipClosestHitShaderKHRMask: |
| return "SkipClosestHitShaderKHR"; |
| case spv::RayFlagsCullBackFacingTrianglesKHRMask: |
| return "CullBackFacingTrianglesKHR"; |
| case spv::RayFlagsCullFrontFacingTrianglesKHRMask: |
| return "CullFrontFacingTrianglesKHR"; |
| case spv::RayFlagsCullOpaqueKHRMask: |
| return "CullOpaqueKHR"; |
| case spv::RayFlagsCullNoOpaqueKHRMask: |
| return "CullNoOpaqueKHR"; |
| case spv::RayFlagsSkipTrianglesKHRMask: |
| return "SkipTrianglesKHR"; |
| case spv::RayFlagsSkipAABBsKHRMask: |
| return "SkipAABBsKHR"; |
| case spv::RayFlagsForceOpacityMicromap2StateKHRMask: |
| return "ForceOpacityMicromap2StateKHR"; |
| |
| default: |
| return "Unknown RayFlagsMask"; |
| } |
| } |
| |
| std::string string_SpvRayFlagsMask(uint32_t mask) { |
| if (mask == 0) { |
| return "RayFlagsMask(0)"; |
| } |
| std::string ret; |
| for (uint32_t bit = 1; mask != 0; bit <<= 1, mask >>= 1) { |
| if (mask & 1) { |
| if (!ret.empty()) { |
| ret.append("|"); |
| } |
| ret.append(string_SpvRayFlagsBit(static_cast<spv::RayFlagsMask>(bit))); |
| } |
| } |
| return ret; |
| } |
| |
| const char* string_SpvFPEncoding(spv::FPEncoding value) { |
| switch (value) { |
| case spv::FPEncodingBFloat16KHR: |
| return "BFloat16KHR"; |
| case spv::FPEncodingFloat8E4M3EXT: |
| return "Float8E4M3EXT"; |
| case spv::FPEncodingFloat8E5M2EXT: |
| return "Float8E5M2EXT"; |
| |
| default: |
| return "IEEE-754"; // default for 16-bit |
| } |
| } |
| |
| const OperandInfo& GetOperandInfo(uint32_t opcode) { |
| static const vvl::unordered_map<uint32_t, OperandInfo> kOperandTable{ |
| // clang-format off |
| {spv::OpNop, {{}}}, |
| {spv::OpUndef, {{}}}, |
| {spv::OpSourceContinued, {{OperandKind::LiteralString}}}, |
| {spv::OpSource, {{OperandKind::ValueEnum, OperandKind::Literal, OperandKind::Id, OperandKind::LiteralString}}}, |
| {spv::OpSourceExtension, {{OperandKind::LiteralString}}}, |
| {spv::OpName, {{OperandKind::Id, OperandKind::LiteralString}}}, |
| {spv::OpMemberName, {{OperandKind::Id, OperandKind::Literal, OperandKind::LiteralString}}}, |
| {spv::OpString, {{OperandKind::LiteralString}}}, |
| {spv::OpLine, {{OperandKind::Id, OperandKind::Literal, OperandKind::Literal}}}, |
| {spv::OpExtension, {{OperandKind::LiteralString}}}, |
| {spv::OpExtInstImport, {{OperandKind::LiteralString}}}, |
| {spv::OpExtInst, {{OperandKind::Id, OperandKind::Literal, OperandKind::Id}}}, |
| {spv::OpMemoryModel, {{OperandKind::ValueEnum, OperandKind::ValueEnum}}}, |
| {spv::OpEntryPoint, {{OperandKind::ValueEnum, OperandKind::Id, OperandKind::LiteralString, OperandKind::Id}}}, |
| {spv::OpExecutionMode, {{OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpCapability, {{OperandKind::ValueEnum}}}, |
| {spv::OpTypeVoid, {{}}}, |
| {spv::OpTypeBool, {{}}}, |
| {spv::OpTypeInt, {{OperandKind::Literal, OperandKind::Literal}}}, |
| {spv::OpTypeFloat, {{OperandKind::Literal, OperandKind::ValueEnum}}}, |
| {spv::OpTypeVector, {{OperandKind::Id, OperandKind::Literal}}}, |
| {spv::OpTypeMatrix, {{OperandKind::Id, OperandKind::Literal}}}, |
| {spv::OpTypeImage, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Literal, OperandKind::Literal, OperandKind::Literal, OperandKind::Literal, OperandKind::ValueEnum, OperandKind::ValueEnum}}}, |
| {spv::OpTypeSampler, {{}}}, |
| {spv::OpTypeSampledImage, {{OperandKind::Id}}}, |
| {spv::OpTypeArray, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTypeRuntimeArray, {{OperandKind::Id}}}, |
| {spv::OpTypeStruct, {{OperandKind::Id}}}, |
| {spv::OpTypePointer, {{OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpTypeFunction, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTypeForwardPointer, {{OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpConstantTrue, {{}}}, |
| {spv::OpConstantFalse, {{}}}, |
| {spv::OpConstant, {{OperandKind::Literal}}}, |
| {spv::OpConstantComposite, {{OperandKind::Id}}}, |
| {spv::OpConstantNull, {{}}}, |
| {spv::OpSpecConstantTrue, {{}}}, |
| {spv::OpSpecConstantFalse, {{}}}, |
| {spv::OpSpecConstant, {{OperandKind::Literal}}}, |
| {spv::OpSpecConstantComposite, {{OperandKind::Id}}}, |
| {spv::OpSpecConstantOp, {{OperandKind::Literal}}}, |
| {spv::OpFunction, {{OperandKind::BitEnum, OperandKind::Id}}}, |
| {spv::OpFunctionParameter, {{}}}, |
| {spv::OpFunctionEnd, {{}}}, |
| {spv::OpFunctionCall, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpVariable, {{OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpImageTexelPointer, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpLoad, {{OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpStore, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpCopyMemory, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum, OperandKind::BitEnum}}}, |
| {spv::OpCopyMemorySized, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum, OperandKind::BitEnum}}}, |
| {spv::OpAccessChain, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpInBoundsAccessChain, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpPtrAccessChain, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpArrayLength, {{OperandKind::Id, OperandKind::Literal}}}, |
| {spv::OpInBoundsPtrAccessChain, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpDecorate, {{OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpMemberDecorate, {{OperandKind::Id, OperandKind::Literal, OperandKind::ValueEnum}}}, |
| {spv::OpDecorationGroup, {{}}}, |
| {spv::OpGroupDecorate, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupMemberDecorate, {{OperandKind::Id, OperandKind::Composite}}}, |
| {spv::OpVectorExtractDynamic, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpVectorInsertDynamic, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpVectorShuffle, {{OperandKind::Id, OperandKind::Id, OperandKind::Literal}}}, |
| {spv::OpCompositeConstruct, {{OperandKind::Id}}}, |
| {spv::OpCompositeExtract, {{OperandKind::Id, OperandKind::Literal}}}, |
| {spv::OpCompositeInsert, {{OperandKind::Id, OperandKind::Id, OperandKind::Literal}}}, |
| {spv::OpCopyObject, {{OperandKind::Id}}}, |
| {spv::OpTranspose, {{OperandKind::Id}}}, |
| {spv::OpSampledImage, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageSampleImplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSampleExplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSampleDrefImplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSampleDrefExplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSampleProjImplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSampleProjExplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSampleProjDrefImplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSampleProjDrefExplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageFetch, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageGather, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageDrefGather, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageRead, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageWrite, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImage, {{OperandKind::Id}}}, |
| {spv::OpImageQuerySizeLod, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageQuerySize, {{OperandKind::Id}}}, |
| {spv::OpImageQueryLod, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageQueryLevels, {{OperandKind::Id}}}, |
| {spv::OpImageQuerySamples, {{OperandKind::Id}}}, |
| {spv::OpConvertFToU, {{OperandKind::Id}}}, |
| {spv::OpConvertFToS, {{OperandKind::Id}}}, |
| {spv::OpConvertSToF, {{OperandKind::Id}}}, |
| {spv::OpConvertUToF, {{OperandKind::Id}}}, |
| {spv::OpUConvert, {{OperandKind::Id}}}, |
| {spv::OpSConvert, {{OperandKind::Id}}}, |
| {spv::OpFConvert, {{OperandKind::Id}}}, |
| {spv::OpQuantizeToF16, {{OperandKind::Id}}}, |
| {spv::OpConvertPtrToU, {{OperandKind::Id}}}, |
| {spv::OpConvertUToPtr, {{OperandKind::Id}}}, |
| {spv::OpBitcast, {{OperandKind::Id}}}, |
| {spv::OpSNegate, {{OperandKind::Id}}}, |
| {spv::OpFNegate, {{OperandKind::Id}}}, |
| {spv::OpIAdd, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFAdd, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpISub, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFSub, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpIMul, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFMul, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUDiv, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSDiv, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFDiv, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUMod, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSRem, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSMod, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFRem, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFMod, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpVectorTimesScalar, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpMatrixTimesScalar, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpVectorTimesMatrix, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpMatrixTimesVector, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpMatrixTimesMatrix, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpOuterProduct, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpDot, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpIAddCarry, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpISubBorrow, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUMulExtended, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSMulExtended, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAny, {{OperandKind::Id}}}, |
| {spv::OpAll, {{OperandKind::Id}}}, |
| {spv::OpIsNan, {{OperandKind::Id}}}, |
| {spv::OpIsInf, {{OperandKind::Id}}}, |
| {spv::OpLogicalEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpLogicalNotEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpLogicalOr, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpLogicalAnd, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpLogicalNot, {{OperandKind::Id}}}, |
| {spv::OpSelect, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpIEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpINotEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUGreaterThan, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSGreaterThan, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUGreaterThanEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSGreaterThanEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpULessThan, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSLessThan, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpULessThanEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSLessThanEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFOrdEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFUnordEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFOrdNotEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFUnordNotEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFOrdLessThan, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFUnordLessThan, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFOrdGreaterThan, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFUnordGreaterThan, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFOrdLessThanEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFUnordLessThanEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFOrdGreaterThanEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFUnordGreaterThanEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpShiftRightLogical, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpShiftRightArithmetic, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpShiftLeftLogical, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpBitwiseOr, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpBitwiseXor, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpBitwiseAnd, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpNot, {{OperandKind::Id}}}, |
| {spv::OpBitFieldInsert, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpBitFieldSExtract, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpBitFieldUExtract, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpBitReverse, {{OperandKind::Id}}}, |
| {spv::OpBitCount, {{OperandKind::Id}}}, |
| {spv::OpDPdx, {{OperandKind::Id}}}, |
| {spv::OpDPdy, {{OperandKind::Id}}}, |
| {spv::OpFwidth, {{OperandKind::Id}}}, |
| {spv::OpDPdxFine, {{OperandKind::Id}}}, |
| {spv::OpDPdyFine, {{OperandKind::Id}}}, |
| {spv::OpFwidthFine, {{OperandKind::Id}}}, |
| {spv::OpDPdxCoarse, {{OperandKind::Id}}}, |
| {spv::OpDPdyCoarse, {{OperandKind::Id}}}, |
| {spv::OpFwidthCoarse, {{OperandKind::Id}}}, |
| {spv::OpEmitVertex, {{}}}, |
| {spv::OpEndPrimitive, {{}}}, |
| {spv::OpEmitStreamVertex, {{OperandKind::Id}}}, |
| {spv::OpEndStreamPrimitive, {{OperandKind::Id}}}, |
| {spv::OpControlBarrier, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpMemoryBarrier, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicLoad, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicStore, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicExchange, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicCompareExchange, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicIIncrement, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicIDecrement, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicIAdd, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicISub, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicSMin, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicUMin, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicSMax, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicUMax, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicAnd, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicOr, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicXor, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpPhi, {{OperandKind::Composite}}}, |
| {spv::OpLoopMerge, {{OperandKind::Label, OperandKind::Label, OperandKind::BitEnum}}}, |
| {spv::OpSelectionMerge, {{OperandKind::Label, OperandKind::BitEnum}}}, |
| {spv::OpLabel, {{}}}, |
| {spv::OpBranch, {{OperandKind::Label}}}, |
| {spv::OpBranchConditional, {{OperandKind::Id, OperandKind::Label, OperandKind::Label, OperandKind::Literal}}}, |
| {spv::OpSwitch, {{OperandKind::Id, OperandKind::Label, OperandKind::Label}}}, |
| {spv::OpKill, {{}}}, |
| {spv::OpReturn, {{}}}, |
| {spv::OpReturnValue, {{OperandKind::Id}}}, |
| {spv::OpUnreachable, {{}}}, |
| {spv::OpGroupAll, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupAny, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupBroadcast, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupIAdd, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupFAdd, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupFMin, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupUMin, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupSMin, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupFMax, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupUMax, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupSMax, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpImageSparseSampleImplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseSampleExplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseSampleDrefImplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseSampleDrefExplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseSampleProjImplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseSampleProjExplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseSampleProjDrefImplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseSampleProjDrefExplicitLod, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseFetch, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseGather, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseDrefGather, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpImageSparseTexelsResident, {{OperandKind::Id}}}, |
| {spv::OpNoLine, {{}}}, |
| {spv::OpImageSparseRead, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpSizeOf, {{OperandKind::Id}}}, |
| {spv::OpModuleProcessed, {{OperandKind::LiteralString}}}, |
| {spv::OpExecutionModeId, {{OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpDecorateId, {{OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpGroupNonUniformElect, {{OperandKind::Id}}}, |
| {spv::OpGroupNonUniformAll, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformAny, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformAllEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBroadcast, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBroadcastFirst, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBallot, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformInverseBallot, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBallotBitExtract, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBallotBitCount, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBallotFindLSB, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBallotFindMSB, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformShuffle, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformShuffleXor, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformShuffleUp, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformShuffleDown, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformIAdd, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformFAdd, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformIMul, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformFMul, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformSMin, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformUMin, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformFMin, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformSMax, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformUMax, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformFMax, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBitwiseAnd, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBitwiseOr, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformBitwiseXor, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformLogicalAnd, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformLogicalOr, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformLogicalXor, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformQuadBroadcast, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformQuadSwap, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCopyLogical, {{OperandKind::Id}}}, |
| {spv::OpPtrEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpPtrNotEqual, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpPtrDiff, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpColorAttachmentReadEXT, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpDepthAttachmentReadEXT, {{OperandKind::Id}}}, |
| {spv::OpStencilAttachmentReadEXT, {{OperandKind::Id}}}, |
| {spv::OpTypeTensorARM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTensorReadARM, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpTensorWriteARM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpTensorQuerySizeARM, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGraphConstantARM, {{OperandKind::Literal}}}, |
| {spv::OpGraphEntryPointARM, {{OperandKind::Id, OperandKind::LiteralString, OperandKind::Id}}}, |
| {spv::OpGraphARM, {{}}}, |
| {spv::OpGraphInputARM, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGraphSetOutputARM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGraphEndARM, {{}}}, |
| {spv::OpTypeGraphARM, {{OperandKind::Literal, OperandKind::Id}}}, |
| {spv::OpTerminateInvocation, {{}}}, |
| {spv::OpTypeUntypedPointerKHR, {{OperandKind::ValueEnum}}}, |
| {spv::OpUntypedVariableKHR, {{OperandKind::ValueEnum, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUntypedAccessChainKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUntypedInBoundsAccessChainKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSubgroupBallotKHR, {{OperandKind::Id}}}, |
| {spv::OpSubgroupFirstInvocationKHR, {{OperandKind::Id}}}, |
| {spv::OpUntypedPtrAccessChainKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUntypedInBoundsPtrAccessChainKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUntypedArrayLengthKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Literal}}}, |
| {spv::OpUntypedPrefetchKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFmaKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSubgroupAllKHR, {{OperandKind::Id}}}, |
| {spv::OpSubgroupAnyKHR, {{OperandKind::Id}}}, |
| {spv::OpSubgroupAllEqualKHR, {{OperandKind::Id}}}, |
| {spv::OpGroupNonUniformRotateKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSubgroupReadInvocationKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpExtInstWithForwardRefsKHR, {{OperandKind::Id, OperandKind::Literal, OperandKind::Id}}}, |
| {spv::OpUntypedGroupAsyncCopyKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum, OperandKind::BitEnum}}}, |
| {spv::OpTraceRayKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpExecuteCallableKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpConvertUToAccelerationStructureKHR, {{OperandKind::Id}}}, |
| {spv::OpIgnoreIntersectionKHR, {{}}}, |
| {spv::OpTerminateRayKHR, {{}}}, |
| {spv::OpSDot, {{OperandKind::Id, OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpUDot, {{OperandKind::Id, OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpSUDot, {{OperandKind::Id, OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpSDotAccSat, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpUDotAccSat, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpSUDotAccSat, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpTypeCooperativeMatrixKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCooperativeMatrixLoadKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeMatrixStoreKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeMatrixMulAddKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeMatrixLengthKHR, {{OperandKind::Id}}}, |
| {spv::OpConstantCompositeReplicateEXT, {{OperandKind::Id}}}, |
| {spv::OpSpecConstantCompositeReplicateEXT, {{OperandKind::Id}}}, |
| {spv::OpCompositeConstructReplicateEXT, {{OperandKind::Id}}}, |
| {spv::OpTypeRayQueryKHR, {{}}}, |
| {spv::OpRayQueryInitializeKHR, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryTerminateKHR, {{OperandKind::Id}}}, |
| {spv::OpRayQueryGenerateIntersectionKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryConfirmIntersectionKHR, {{OperandKind::Id}}}, |
| {spv::OpRayQueryProceedKHR, {{OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionTypeKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageSampleWeightedQCOM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageBoxFilterQCOM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageBlockMatchSSDQCOM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageBlockMatchSADQCOM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpBitCastArrayQCOM, {{OperandKind::Id}}}, |
| {spv::OpImageBlockMatchWindowSSDQCOM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageBlockMatchWindowSADQCOM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageBlockMatchGatherSSDQCOM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpImageBlockMatchGatherSADQCOM, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCompositeConstructCoopMatQCOM, {{OperandKind::Id}}}, |
| {spv::OpCompositeExtractCoopMatQCOM, {{OperandKind::Id}}}, |
| {spv::OpExtractSubArrayQCOM, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupIAddNonUniformAMD, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupFAddNonUniformAMD, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupFMinNonUniformAMD, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupUMinNonUniformAMD, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupSMinNonUniformAMD, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupFMaxNonUniformAMD, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupUMaxNonUniformAMD, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupSMaxNonUniformAMD, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpFragmentMaskFetchAMD, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFragmentFetchAMD, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpReadClockKHR, {{OperandKind::Id}}}, |
| {spv::OpGroupNonUniformQuadAllKHR, {{OperandKind::Id}}}, |
| {spv::OpGroupNonUniformQuadAnyKHR, {{OperandKind::Id}}}, |
| {spv::OpTypeBufferEXT, {{OperandKind::ValueEnum}}}, |
| {spv::OpBufferPointerEXT, {{OperandKind::Id}}}, |
| {spv::OpAbortKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUntypedImageTexelPointerEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpMemberDecorateIdEXT, {{OperandKind::Id, OperandKind::Literal, OperandKind::ValueEnum}}}, |
| {spv::OpConstantSizeOfEXT, {{OperandKind::Id}}}, |
| {spv::OpConstantDataKHR, {{OperandKind::Literal}}}, |
| {spv::OpSpecConstantDataKHR, {{OperandKind::Literal}}}, |
| {spv::OpHitObjectRecordHitMotionNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectRecordHitWithIndexMotionNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectRecordMissMotionNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectGetWorldToObjectNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetObjectToWorldNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetObjectRayDirectionNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetObjectRayOriginNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectTraceRayMotionNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectGetShaderRecordBufferHandleNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetShaderBindingTableRecordIndexNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectRecordEmptyNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectTraceRayNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectRecordHitNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectRecordHitWithIndexNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectRecordMissNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectExecuteShaderNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectGetCurrentTimeNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetAttributesNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectGetHitKindNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetPrimitiveIndexNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetGeometryIndexNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetInstanceIdNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetInstanceCustomIndexNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetWorldRayDirectionNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetWorldRayOriginNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetRayTMaxNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetRayTMinNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectIsEmptyNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectIsHitNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectIsMissNV, {{OperandKind::Id}}}, |
| {spv::OpReorderThreadWithHitObjectNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpReorderThreadWithHintNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTypeHitObjectNV, {{}}}, |
| {spv::OpImageSampleFootprintNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpTypeVectorIdEXT, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCooperativeVectorMatrixMulNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeVectorOuterProductAccumulateNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCooperativeVectorReduceSumAccumulateNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCooperativeVectorMatrixMulAddNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeMatrixConvertNV, {{OperandKind::Id}}}, |
| {spv::OpEmitMeshTasksEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSetMeshOutputsEXT, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpGroupNonUniformPartitionEXT, {{OperandKind::Id}}}, |
| {spv::OpWritePackedPrimitiveIndices4x8NV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFetchMicroTriangleVertexPositionNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFetchMicroTriangleVertexBarycentricNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCooperativeVectorLoadNV, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeVectorStoreNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpHitObjectRecordFromQueryEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectRecordMissEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectRecordMissMotionEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectGetIntersectionTriangleVertexPositionsEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetRayFlagsEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectSetShaderBindingTableRecordIndexEXT, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectReorderExecuteShaderEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectTraceReorderExecuteEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectTraceMotionReorderExecuteEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTypeHitObjectEXT, {{}}}, |
| {spv::OpReorderThreadWithHintEXT, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpReorderThreadWithHitObjectEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectTraceRayEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectTraceRayMotionEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectRecordEmptyEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectExecuteShaderEXT, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectGetCurrentTimeEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetAttributesEXT, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectGetHitKindEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetPrimitiveIndexEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetGeometryIndexEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetInstanceIdEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetInstanceCustomIndexEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetObjectRayOriginEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetObjectRayDirectionEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetWorldRayDirectionEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetWorldRayOriginEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetObjectToWorldEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetWorldToObjectEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetRayTMaxEXT, {{OperandKind::Id}}}, |
| {spv::OpReportIntersectionKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpIgnoreIntersectionNV, {{}}}, |
| {spv::OpTerminateRayNV, {{}}}, |
| {spv::OpTraceNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTraceMotionNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTraceRayMotionNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionTriangleVertexPositionsKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTypeAccelerationStructureKHR, {{}}}, |
| {spv::OpExecuteCallableNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionClusterIdNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectGetClusterIdNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetRayTMinEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetShaderBindingTableRecordIndexEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetShaderRecordBufferHandleEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectIsEmptyEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectIsHitEXT, {{OperandKind::Id}}}, |
| {spv::OpHitObjectIsMissEXT, {{OperandKind::Id}}}, |
| {spv::OpTypeCooperativeMatrixNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCooperativeMatrixLoadNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeMatrixStoreNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeMatrixMulAddNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCooperativeMatrixLengthNV, {{OperandKind::Id}}}, |
| {spv::OpBeginInvocationInterlockEXT, {{}}}, |
| {spv::OpEndInvocationInterlockEXT, {{}}}, |
| {spv::OpCooperativeMatrixReduceNV, {{OperandKind::Id, OperandKind::BitEnum, OperandKind::Id}}}, |
| {spv::OpCooperativeMatrixLoadTensorNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeMatrixStoreTensorNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum, OperandKind::BitEnum}}}, |
| {spv::OpCooperativeMatrixPerElementOpNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTypeTensorLayoutNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTypeTensorViewNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCreateTensorLayoutNV, {{}}}, |
| {spv::OpTensorLayoutSetDimensionNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTensorLayoutSetStrideNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTensorLayoutSliceNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTensorLayoutSetClampValueNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCreateTensorViewNV, {{}}}, |
| {spv::OpTensorViewSetDimensionNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTensorViewSetStrideNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpDemoteToHelperInvocation, {{}}}, |
| {spv::OpIsHelperInvocationEXT, {{}}}, |
| {spv::OpTensorViewSetClipNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpTensorLayoutSetBlockSizeNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpCooperativeMatrixTransposeNV, {{OperandKind::Id}}}, |
| {spv::OpConvertUToImageNV, {{OperandKind::Id}}}, |
| {spv::OpConvertUToSamplerNV, {{OperandKind::Id}}}, |
| {spv::OpConvertImageToUNV, {{OperandKind::Id}}}, |
| {spv::OpConvertSamplerToUNV, {{OperandKind::Id}}}, |
| {spv::OpConvertUToSampledImageNV, {{OperandKind::Id}}}, |
| {spv::OpConvertSampledImageToUNV, {{OperandKind::Id}}}, |
| {spv::OpSamplerImageAddressingModeNV, {{OperandKind::Literal}}}, |
| {spv::OpRawAccessChainNV, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpRayQueryGetIntersectionSpherePositionNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionSphereRadiusNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionLSSPositionsNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionLSSRadiiNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionLSSHitValueNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpHitObjectGetSpherePositionNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetSphereRadiusNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetLSSPositionsNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectGetLSSRadiiNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectIsSphereHitNV, {{OperandKind::Id}}}, |
| {spv::OpHitObjectIsLSSHitNV, {{OperandKind::Id}}}, |
| {spv::OpRayQueryIsSphereHitNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryIsLSSHitNV, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUCountLeadingZerosINTEL, {{OperandKind::Id}}}, |
| {spv::OpUCountTrailingZerosINTEL, {{OperandKind::Id}}}, |
| {spv::OpAbsISubINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAbsUSubINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpIAddSatINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUAddSatINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpIAverageINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUAverageINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpIAverageRoundedINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUAverageRoundedINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpISubSatINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUSubSatINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpIMul32x16INTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUMul32x16INTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpConstantFunctionPointerINTEL, {{OperandKind::Id}}}, |
| {spv::OpFunctionPointerCallINTEL, {{OperandKind::Id}}}, |
| {spv::OpAtomicFMinEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicFMaxEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAssumeTrueKHR, {{OperandKind::Id}}}, |
| {spv::OpExpectKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpDecorateString, {{OperandKind::Id, OperandKind::ValueEnum}}}, |
| {spv::OpMemberDecorateString, {{OperandKind::Id, OperandKind::Literal, OperandKind::ValueEnum}}}, |
| {spv::OpRayQueryGetRayTMinKHR, {{OperandKind::Id}}}, |
| {spv::OpRayQueryGetRayFlagsKHR, {{OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionTKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionInstanceCustomIndexKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionInstanceIdKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionGeometryIndexKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionPrimitiveIndexKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionBarycentricsKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionFrontFaceKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR, {{OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionObjectRayDirectionKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionObjectRayOriginKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetWorldRayDirectionKHR, {{OperandKind::Id}}}, |
| {spv::OpRayQueryGetWorldRayOriginKHR, {{OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionObjectToWorldKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpRayQueryGetIntersectionWorldToObjectKHR, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpAtomicFAddEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpControlBarrierArriveEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpControlBarrierWaitEXT, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpArithmeticFenceEXT, {{OperandKind::Id}}}, |
| {spv::OpSubgroupBlockPrefetchINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpSubgroup2DBlockLoadINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSubgroup2DBlockLoadTransformINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSubgroup2DBlockLoadTransposeINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSubgroup2DBlockPrefetchINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSubgroup2DBlockStoreINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpSubgroupMatrixMultiplyAccumulateINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpBitwiseFunctionINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpUntypedVariableLengthArrayINTEL, {{OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpPredicatedLoadINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpPredicatedStoreINTEL, {{OperandKind::Id, OperandKind::Id, OperandKind::Id, OperandKind::BitEnum}}}, |
| {spv::OpGroupIMulKHR, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupFMulKHR, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupBitwiseAndKHR, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupBitwiseOrKHR, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupBitwiseXorKHR, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupLogicalAndKHR, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupLogicalOrKHR, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpGroupLogicalXorKHR, {{OperandKind::Id, OperandKind::ValueEnum, OperandKind::Id}}}, |
| {spv::OpRoundFToTF32INTEL, {{OperandKind::Id}}}, |
| {spv::OpFDot2MixAcc32VALVE, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFDot2MixAcc16VALVE, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| {spv::OpFDot4MixAcc32VALVE, {{OperandKind::Id, OperandKind::Id, OperandKind::Id}}}, |
| }; // clang-format on |
| |
| auto info = kOperandTable.find(opcode); |
| if (info != kOperandTable.end()) { |
| return info->second; |
| } |
| return kOperandTable.find(spv::OpNop)->second; |
| } |
| |
| // NOLINTEND |