blob: ffbab99c2a0f78b185dfa276c435e18242fd9ea6 [file] [log] [blame]
// *** THIS FILE IS GENERATED - DO NOT EDIT ***
// See spirv_gramar_generator.py for modifications
/***************************************************************************
*
* Copyright (c) 2021 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.
*
* Author: Spencer Fricke <s.fricke@samsung.com>
*
* 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.
*
****************************************************************************/
#pragma once
#include <cstdint>
#include <spirv/unified1/spirv.hpp>
bool AtomicOperation(uint32_t opcode);
bool GroupOperation(uint32_t opcode);
bool ImageGatherOperation(uint32_t opcode);
bool ImageFetchOperation(uint32_t opcode);
bool ImageSampleOperation(uint32_t opcode);
uint32_t MemoryScopeParamPosition(uint32_t opcode);
uint32_t ExecutionScopeParamPosition(uint32_t opcode);
uint32_t ImageOperandsParamPosition(uint32_t opcode);
uint32_t ImageOperandsParamCount(uint32_t opcode);
static inline const char* string_SpvOpcode(uint32_t opcode) {
switch ((spv::Op)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::OpTypePipeStorage:
return "OpTypePipeStorage";
case spv::OpConstantPipeStorage:
return "OpConstantPipeStorage";
case spv::OpCreatePipeFromPipeStorage:
return "OpCreatePipeFromPipeStorage";
case spv::OpGetKernelLocalSizeForSubgroupCount:
return "OpGetKernelLocalSizeForSubgroupCount";
case spv::OpGetKernelMaxNumSubgroups:
return "OpGetKernelMaxNumSubgroups";
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::OpTerminateInvocation:
return "OpTerminateInvocation";
case spv::OpSubgroupBallotKHR:
return "OpSubgroupBallotKHR";
case spv::OpSubgroupFirstInvocationKHR:
return "OpSubgroupFirstInvocationKHR";
case spv::OpSubgroupAllKHR:
return "OpSubgroupAllKHR";
case spv::OpSubgroupAnyKHR:
return "OpSubgroupAnyKHR";
case spv::OpSubgroupAllEqualKHR:
return "OpSubgroupAllEqualKHR";
case spv::OpSubgroupReadInvocationKHR:
return "OpSubgroupReadInvocationKHR";
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::OpSDotKHR:
return "OpSDotKHR";
case spv::OpUDotKHR:
return "OpUDotKHR";
case spv::OpSUDotKHR:
return "OpSUDotKHR";
case spv::OpSDotAccSatKHR:
return "OpSDotAccSatKHR";
case spv::OpUDotAccSatKHR:
return "OpUDotAccSatKHR";
case spv::OpSUDotAccSatKHR:
return "OpSUDotAccSatKHR";
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::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::OpImageSampleFootprintNV:
return "OpImageSampleFootprintNV";
case spv::OpGroupNonUniformPartitionNV:
return "OpGroupNonUniformPartitionNV";
case spv::OpWritePackedPrimitiveIndices4x8NV:
return "OpWritePackedPrimitiveIndices4x8NV";
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::OpTypeAccelerationStructureKHR:
return "OpTypeAccelerationStructureKHR";
case spv::OpExecuteCallableNV:
return "OpExecuteCallableNV";
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::OpDemoteToHelperInvocationEXT:
return "OpDemoteToHelperInvocationEXT";
case spv::OpIsHelperInvocationEXT:
return "OpIsHelperInvocationEXT";
case spv::OpSubgroupShuffleINTEL:
return "OpSubgroupShuffleINTEL";
case spv::OpSubgroupShuffleDownINTEL:
return "OpSubgroupShuffleDownINTEL";
case spv::OpSubgroupShuffleUpINTEL:
return "OpSubgroupShuffleUpINTEL";
case spv::OpSubgroupShuffleXorINTEL:
return "OpSubgroupShuffleXorINTEL";
case spv::OpSubgroupBlockReadINTEL:
return "OpSubgroupBlockReadINTEL";
case spv::OpSubgroupBlockWriteINTEL:
return "OpSubgroupBlockWriteINTEL";
case spv::OpSubgroupImageBlockReadINTEL:
return "OpSubgroupImageBlockReadINTEL";
case spv::OpSubgroupImageBlockWriteINTEL:
return "OpSubgroupImageBlockWriteINTEL";
case spv::OpSubgroupImageMediaBlockReadINTEL:
return "OpSubgroupImageMediaBlockReadINTEL";
case spv::OpSubgroupImageMediaBlockWriteINTEL:
return "OpSubgroupImageMediaBlockWriteINTEL";
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::OpConstFunctionPointerINTEL:
return "OpConstFunctionPointerINTEL";
case spv::OpFunctionPointerCallINTEL:
return "OpFunctionPointerCallINTEL";
case spv::OpAsmTargetINTEL:
return "OpAsmTargetINTEL";
case spv::OpAsmINTEL:
return "OpAsmINTEL";
case spv::OpAsmCallINTEL:
return "OpAsmCallINTEL";
case spv::OpAtomicFMinEXT:
return "OpAtomicFMinEXT";
case spv::OpAtomicFMaxEXT:
return "OpAtomicFMaxEXT";
case spv::OpAssumeTrueKHR:
return "OpAssumeTrueKHR";
case spv::OpExpectKHR:
return "OpExpectKHR";
case spv::OpDecorateStringGOOGLE:
return "OpDecorateStringGOOGLE";
case spv::OpMemberDecorateStringGOOGLE:
return "OpMemberDecorateStringGOOGLE";
case spv::OpVariableLengthArrayINTEL:
return "OpVariableLengthArrayINTEL";
case spv::OpSaveMemoryINTEL:
return "OpSaveMemoryINTEL";
case spv::OpRestoreMemoryINTEL:
return "OpRestoreMemoryINTEL";
case spv::OpLoopControlINTEL:
return "OpLoopControlINTEL";
case spv::OpPtrCastToCrossWorkgroupINTEL:
return "OpPtrCastToCrossWorkgroupINTEL";
case spv::OpCrossWorkgroupCastToPtrINTEL:
return "OpCrossWorkgroupCastToPtrINTEL";
case spv::OpReadPipeBlockingINTEL:
return "OpReadPipeBlockingINTEL";
case spv::OpWritePipeBlockingINTEL:
return "OpWritePipeBlockingINTEL";
case spv::OpFPGARegINTEL:
return "OpFPGARegINTEL";
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::OpTypeBufferSurfaceINTEL:
return "OpTypeBufferSurfaceINTEL";
case spv::OpTypeStructContinuedINTEL:
return "OpTypeStructContinuedINTEL";
case spv::OpConstantCompositeContinuedINTEL:
return "OpConstantCompositeContinuedINTEL";
case spv::OpSpecConstantCompositeContinuedINTEL:
return "OpSpecConstantCompositeContinuedINTEL";
default:
return "Unhandled Opcode";
};
};