spirv_info.c revision 10e230b6
110e230b6Smaya/* DO NOT EDIT - This file is generated automatically by spirv_info_c.py script */
210e230b6Smaya
310e230b6Smaya/*
410e230b6Smaya * Copyright (C) 2017 Intel Corporation
510e230b6Smaya *
610e230b6Smaya * Permission is hereby granted, free of charge, to any person obtaining a
710e230b6Smaya * copy of this software and associated documentation files (the "Software"),
810e230b6Smaya * to deal in the Software without restriction, including without limitation
910e230b6Smaya * the rights to use, copy, modify, merge, publish, distribute, sublicense,
1010e230b6Smaya * and/or sell copies of the Software, and to permit persons to whom the
1110e230b6Smaya * Software is furnished to do so, subject to the following conditions:
1210e230b6Smaya *
1310e230b6Smaya * The above copyright notice and this permission notice (including the next
1410e230b6Smaya * paragraph) shall be included in all copies or substantial portions of the
1510e230b6Smaya * Software.
1610e230b6Smaya *
1710e230b6Smaya * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1810e230b6Smaya * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1910e230b6Smaya * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
2010e230b6Smaya * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2110e230b6Smaya * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2210e230b6Smaya * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
2310e230b6Smaya * DEALINGS IN THE SOFTWARE.
2410e230b6Smaya */
2510e230b6Smaya#include "spirv_info.h"
2610e230b6Smaya
2710e230b6Smayaconst char *
2810e230b6Smayaspirv_addressingmodel_to_string(SpvAddressingModel v)
2910e230b6Smaya{
3010e230b6Smaya   switch (v) {
3110e230b6Smaya   case SpvAddressingModelLogical: return "SpvAddressingModelLogical";
3210e230b6Smaya   case SpvAddressingModelPhysical32: return "SpvAddressingModelPhysical32";
3310e230b6Smaya   case SpvAddressingModelPhysical64: return "SpvAddressingModelPhysical64";
3410e230b6Smaya   case SpvAddressingModelPhysicalStorageBuffer64EXT: return "SpvAddressingModelPhysicalStorageBuffer64EXT";
3510e230b6Smaya   case SpvAddressingModelMax: break; /* silence warnings about unhandled enums. */
3610e230b6Smaya   }
3710e230b6Smaya
3810e230b6Smaya   return "unknown";
3910e230b6Smaya}
4010e230b6Smaya
4110e230b6Smayaconst char *
4210e230b6Smayaspirv_builtin_to_string(SpvBuiltIn v)
4310e230b6Smaya{
4410e230b6Smaya   switch (v) {
4510e230b6Smaya   case SpvBuiltInPosition: return "SpvBuiltInPosition";
4610e230b6Smaya   case SpvBuiltInPointSize: return "SpvBuiltInPointSize";
4710e230b6Smaya   case SpvBuiltInClipDistance: return "SpvBuiltInClipDistance";
4810e230b6Smaya   case SpvBuiltInCullDistance: return "SpvBuiltInCullDistance";
4910e230b6Smaya   case SpvBuiltInVertexId: return "SpvBuiltInVertexId";
5010e230b6Smaya   case SpvBuiltInInstanceId: return "SpvBuiltInInstanceId";
5110e230b6Smaya   case SpvBuiltInPrimitiveId: return "SpvBuiltInPrimitiveId";
5210e230b6Smaya   case SpvBuiltInInvocationId: return "SpvBuiltInInvocationId";
5310e230b6Smaya   case SpvBuiltInLayer: return "SpvBuiltInLayer";
5410e230b6Smaya   case SpvBuiltInViewportIndex: return "SpvBuiltInViewportIndex";
5510e230b6Smaya   case SpvBuiltInTessLevelOuter: return "SpvBuiltInTessLevelOuter";
5610e230b6Smaya   case SpvBuiltInTessLevelInner: return "SpvBuiltInTessLevelInner";
5710e230b6Smaya   case SpvBuiltInTessCoord: return "SpvBuiltInTessCoord";
5810e230b6Smaya   case SpvBuiltInPatchVertices: return "SpvBuiltInPatchVertices";
5910e230b6Smaya   case SpvBuiltInFragCoord: return "SpvBuiltInFragCoord";
6010e230b6Smaya   case SpvBuiltInPointCoord: return "SpvBuiltInPointCoord";
6110e230b6Smaya   case SpvBuiltInFrontFacing: return "SpvBuiltInFrontFacing";
6210e230b6Smaya   case SpvBuiltInSampleId: return "SpvBuiltInSampleId";
6310e230b6Smaya   case SpvBuiltInSamplePosition: return "SpvBuiltInSamplePosition";
6410e230b6Smaya   case SpvBuiltInSampleMask: return "SpvBuiltInSampleMask";
6510e230b6Smaya   case SpvBuiltInFragDepth: return "SpvBuiltInFragDepth";
6610e230b6Smaya   case SpvBuiltInHelperInvocation: return "SpvBuiltInHelperInvocation";
6710e230b6Smaya   case SpvBuiltInNumWorkgroups: return "SpvBuiltInNumWorkgroups";
6810e230b6Smaya   case SpvBuiltInWorkgroupSize: return "SpvBuiltInWorkgroupSize";
6910e230b6Smaya   case SpvBuiltInWorkgroupId: return "SpvBuiltInWorkgroupId";
7010e230b6Smaya   case SpvBuiltInLocalInvocationId: return "SpvBuiltInLocalInvocationId";
7110e230b6Smaya   case SpvBuiltInGlobalInvocationId: return "SpvBuiltInGlobalInvocationId";
7210e230b6Smaya   case SpvBuiltInLocalInvocationIndex: return "SpvBuiltInLocalInvocationIndex";
7310e230b6Smaya   case SpvBuiltInWorkDim: return "SpvBuiltInWorkDim";
7410e230b6Smaya   case SpvBuiltInGlobalSize: return "SpvBuiltInGlobalSize";
7510e230b6Smaya   case SpvBuiltInEnqueuedWorkgroupSize: return "SpvBuiltInEnqueuedWorkgroupSize";
7610e230b6Smaya   case SpvBuiltInGlobalOffset: return "SpvBuiltInGlobalOffset";
7710e230b6Smaya   case SpvBuiltInGlobalLinearId: return "SpvBuiltInGlobalLinearId";
7810e230b6Smaya   case SpvBuiltInSubgroupSize: return "SpvBuiltInSubgroupSize";
7910e230b6Smaya   case SpvBuiltInSubgroupMaxSize: return "SpvBuiltInSubgroupMaxSize";
8010e230b6Smaya   case SpvBuiltInNumSubgroups: return "SpvBuiltInNumSubgroups";
8110e230b6Smaya   case SpvBuiltInNumEnqueuedSubgroups: return "SpvBuiltInNumEnqueuedSubgroups";
8210e230b6Smaya   case SpvBuiltInSubgroupId: return "SpvBuiltInSubgroupId";
8310e230b6Smaya   case SpvBuiltInSubgroupLocalInvocationId: return "SpvBuiltInSubgroupLocalInvocationId";
8410e230b6Smaya   case SpvBuiltInVertexIndex: return "SpvBuiltInVertexIndex";
8510e230b6Smaya   case SpvBuiltInInstanceIndex: return "SpvBuiltInInstanceIndex";
8610e230b6Smaya   case SpvBuiltInSubgroupEqMask: return "SpvBuiltInSubgroupEqMask";
8710e230b6Smaya   case SpvBuiltInSubgroupGeMask: return "SpvBuiltInSubgroupGeMask";
8810e230b6Smaya   case SpvBuiltInSubgroupGtMask: return "SpvBuiltInSubgroupGtMask";
8910e230b6Smaya   case SpvBuiltInSubgroupLeMask: return "SpvBuiltInSubgroupLeMask";
9010e230b6Smaya   case SpvBuiltInSubgroupLtMask: return "SpvBuiltInSubgroupLtMask";
9110e230b6Smaya   case SpvBuiltInBaseVertex: return "SpvBuiltInBaseVertex";
9210e230b6Smaya   case SpvBuiltInBaseInstance: return "SpvBuiltInBaseInstance";
9310e230b6Smaya   case SpvBuiltInDrawIndex: return "SpvBuiltInDrawIndex";
9410e230b6Smaya   case SpvBuiltInDeviceIndex: return "SpvBuiltInDeviceIndex";
9510e230b6Smaya   case SpvBuiltInViewIndex: return "SpvBuiltInViewIndex";
9610e230b6Smaya   case SpvBuiltInBaryCoordNoPerspAMD: return "SpvBuiltInBaryCoordNoPerspAMD";
9710e230b6Smaya   case SpvBuiltInBaryCoordNoPerspCentroidAMD: return "SpvBuiltInBaryCoordNoPerspCentroidAMD";
9810e230b6Smaya   case SpvBuiltInBaryCoordNoPerspSampleAMD: return "SpvBuiltInBaryCoordNoPerspSampleAMD";
9910e230b6Smaya   case SpvBuiltInBaryCoordSmoothAMD: return "SpvBuiltInBaryCoordSmoothAMD";
10010e230b6Smaya   case SpvBuiltInBaryCoordSmoothCentroidAMD: return "SpvBuiltInBaryCoordSmoothCentroidAMD";
10110e230b6Smaya   case SpvBuiltInBaryCoordSmoothSampleAMD: return "SpvBuiltInBaryCoordSmoothSampleAMD";
10210e230b6Smaya   case SpvBuiltInBaryCoordPullModelAMD: return "SpvBuiltInBaryCoordPullModelAMD";
10310e230b6Smaya   case SpvBuiltInFragStencilRefEXT: return "SpvBuiltInFragStencilRefEXT";
10410e230b6Smaya   case SpvBuiltInViewportMaskNV: return "SpvBuiltInViewportMaskNV";
10510e230b6Smaya   case SpvBuiltInSecondaryPositionNV: return "SpvBuiltInSecondaryPositionNV";
10610e230b6Smaya   case SpvBuiltInSecondaryViewportMaskNV: return "SpvBuiltInSecondaryViewportMaskNV";
10710e230b6Smaya   case SpvBuiltInPositionPerViewNV: return "SpvBuiltInPositionPerViewNV";
10810e230b6Smaya   case SpvBuiltInViewportMaskPerViewNV: return "SpvBuiltInViewportMaskPerViewNV";
10910e230b6Smaya   case SpvBuiltInFullyCoveredEXT: return "SpvBuiltInFullyCoveredEXT";
11010e230b6Smaya   case SpvBuiltInTaskCountNV: return "SpvBuiltInTaskCountNV";
11110e230b6Smaya   case SpvBuiltInPrimitiveCountNV: return "SpvBuiltInPrimitiveCountNV";
11210e230b6Smaya   case SpvBuiltInPrimitiveIndicesNV: return "SpvBuiltInPrimitiveIndicesNV";
11310e230b6Smaya   case SpvBuiltInClipDistancePerViewNV: return "SpvBuiltInClipDistancePerViewNV";
11410e230b6Smaya   case SpvBuiltInCullDistancePerViewNV: return "SpvBuiltInCullDistancePerViewNV";
11510e230b6Smaya   case SpvBuiltInLayerPerViewNV: return "SpvBuiltInLayerPerViewNV";
11610e230b6Smaya   case SpvBuiltInMeshViewCountNV: return "SpvBuiltInMeshViewCountNV";
11710e230b6Smaya   case SpvBuiltInMeshViewIndicesNV: return "SpvBuiltInMeshViewIndicesNV";
11810e230b6Smaya   case SpvBuiltInBaryCoordNV: return "SpvBuiltInBaryCoordNV";
11910e230b6Smaya   case SpvBuiltInBaryCoordNoPerspNV: return "SpvBuiltInBaryCoordNoPerspNV";
12010e230b6Smaya   case SpvBuiltInFragSizeEXT: return "SpvBuiltInFragSizeEXT";
12110e230b6Smaya   case SpvBuiltInFragInvocationCountEXT: return "SpvBuiltInFragInvocationCountEXT";
12210e230b6Smaya   case SpvBuiltInLaunchIdNV: return "SpvBuiltInLaunchIdNV";
12310e230b6Smaya   case SpvBuiltInLaunchSizeNV: return "SpvBuiltInLaunchSizeNV";
12410e230b6Smaya   case SpvBuiltInWorldRayOriginNV: return "SpvBuiltInWorldRayOriginNV";
12510e230b6Smaya   case SpvBuiltInWorldRayDirectionNV: return "SpvBuiltInWorldRayDirectionNV";
12610e230b6Smaya   case SpvBuiltInObjectRayOriginNV: return "SpvBuiltInObjectRayOriginNV";
12710e230b6Smaya   case SpvBuiltInObjectRayDirectionNV: return "SpvBuiltInObjectRayDirectionNV";
12810e230b6Smaya   case SpvBuiltInRayTminNV: return "SpvBuiltInRayTminNV";
12910e230b6Smaya   case SpvBuiltInRayTmaxNV: return "SpvBuiltInRayTmaxNV";
13010e230b6Smaya   case SpvBuiltInInstanceCustomIndexNV: return "SpvBuiltInInstanceCustomIndexNV";
13110e230b6Smaya   case SpvBuiltInObjectToWorldNV: return "SpvBuiltInObjectToWorldNV";
13210e230b6Smaya   case SpvBuiltInWorldToObjectNV: return "SpvBuiltInWorldToObjectNV";
13310e230b6Smaya   case SpvBuiltInHitTNV: return "SpvBuiltInHitTNV";
13410e230b6Smaya   case SpvBuiltInHitKindNV: return "SpvBuiltInHitKindNV";
13510e230b6Smaya   case SpvBuiltInIncomingRayFlagsNV: return "SpvBuiltInIncomingRayFlagsNV";
13610e230b6Smaya   case SpvBuiltInMax: break; /* silence warnings about unhandled enums. */
13710e230b6Smaya   }
13810e230b6Smaya
13910e230b6Smaya   return "unknown";
14010e230b6Smaya}
14110e230b6Smaya
14210e230b6Smayaconst char *
14310e230b6Smayaspirv_capability_to_string(SpvCapability v)
14410e230b6Smaya{
14510e230b6Smaya   switch (v) {
14610e230b6Smaya   case SpvCapabilityMatrix: return "SpvCapabilityMatrix";
14710e230b6Smaya   case SpvCapabilityShader: return "SpvCapabilityShader";
14810e230b6Smaya   case SpvCapabilityGeometry: return "SpvCapabilityGeometry";
14910e230b6Smaya   case SpvCapabilityTessellation: return "SpvCapabilityTessellation";
15010e230b6Smaya   case SpvCapabilityAddresses: return "SpvCapabilityAddresses";
15110e230b6Smaya   case SpvCapabilityLinkage: return "SpvCapabilityLinkage";
15210e230b6Smaya   case SpvCapabilityKernel: return "SpvCapabilityKernel";
15310e230b6Smaya   case SpvCapabilityVector16: return "SpvCapabilityVector16";
15410e230b6Smaya   case SpvCapabilityFloat16Buffer: return "SpvCapabilityFloat16Buffer";
15510e230b6Smaya   case SpvCapabilityFloat16: return "SpvCapabilityFloat16";
15610e230b6Smaya   case SpvCapabilityFloat64: return "SpvCapabilityFloat64";
15710e230b6Smaya   case SpvCapabilityInt64: return "SpvCapabilityInt64";
15810e230b6Smaya   case SpvCapabilityInt64Atomics: return "SpvCapabilityInt64Atomics";
15910e230b6Smaya   case SpvCapabilityImageBasic: return "SpvCapabilityImageBasic";
16010e230b6Smaya   case SpvCapabilityImageReadWrite: return "SpvCapabilityImageReadWrite";
16110e230b6Smaya   case SpvCapabilityImageMipmap: return "SpvCapabilityImageMipmap";
16210e230b6Smaya   case SpvCapabilityPipes: return "SpvCapabilityPipes";
16310e230b6Smaya   case SpvCapabilityGroups: return "SpvCapabilityGroups";
16410e230b6Smaya   case SpvCapabilityDeviceEnqueue: return "SpvCapabilityDeviceEnqueue";
16510e230b6Smaya   case SpvCapabilityLiteralSampler: return "SpvCapabilityLiteralSampler";
16610e230b6Smaya   case SpvCapabilityAtomicStorage: return "SpvCapabilityAtomicStorage";
16710e230b6Smaya   case SpvCapabilityInt16: return "SpvCapabilityInt16";
16810e230b6Smaya   case SpvCapabilityTessellationPointSize: return "SpvCapabilityTessellationPointSize";
16910e230b6Smaya   case SpvCapabilityGeometryPointSize: return "SpvCapabilityGeometryPointSize";
17010e230b6Smaya   case SpvCapabilityImageGatherExtended: return "SpvCapabilityImageGatherExtended";
17110e230b6Smaya   case SpvCapabilityStorageImageMultisample: return "SpvCapabilityStorageImageMultisample";
17210e230b6Smaya   case SpvCapabilityUniformBufferArrayDynamicIndexing: return "SpvCapabilityUniformBufferArrayDynamicIndexing";
17310e230b6Smaya   case SpvCapabilitySampledImageArrayDynamicIndexing: return "SpvCapabilitySampledImageArrayDynamicIndexing";
17410e230b6Smaya   case SpvCapabilityStorageBufferArrayDynamicIndexing: return "SpvCapabilityStorageBufferArrayDynamicIndexing";
17510e230b6Smaya   case SpvCapabilityStorageImageArrayDynamicIndexing: return "SpvCapabilityStorageImageArrayDynamicIndexing";
17610e230b6Smaya   case SpvCapabilityClipDistance: return "SpvCapabilityClipDistance";
17710e230b6Smaya   case SpvCapabilityCullDistance: return "SpvCapabilityCullDistance";
17810e230b6Smaya   case SpvCapabilityImageCubeArray: return "SpvCapabilityImageCubeArray";
17910e230b6Smaya   case SpvCapabilitySampleRateShading: return "SpvCapabilitySampleRateShading";
18010e230b6Smaya   case SpvCapabilityImageRect: return "SpvCapabilityImageRect";
18110e230b6Smaya   case SpvCapabilitySampledRect: return "SpvCapabilitySampledRect";
18210e230b6Smaya   case SpvCapabilityGenericPointer: return "SpvCapabilityGenericPointer";
18310e230b6Smaya   case SpvCapabilityInt8: return "SpvCapabilityInt8";
18410e230b6Smaya   case SpvCapabilityInputAttachment: return "SpvCapabilityInputAttachment";
18510e230b6Smaya   case SpvCapabilitySparseResidency: return "SpvCapabilitySparseResidency";
18610e230b6Smaya   case SpvCapabilityMinLod: return "SpvCapabilityMinLod";
18710e230b6Smaya   case SpvCapabilitySampled1D: return "SpvCapabilitySampled1D";
18810e230b6Smaya   case SpvCapabilityImage1D: return "SpvCapabilityImage1D";
18910e230b6Smaya   case SpvCapabilitySampledCubeArray: return "SpvCapabilitySampledCubeArray";
19010e230b6Smaya   case SpvCapabilitySampledBuffer: return "SpvCapabilitySampledBuffer";
19110e230b6Smaya   case SpvCapabilityImageBuffer: return "SpvCapabilityImageBuffer";
19210e230b6Smaya   case SpvCapabilityImageMSArray: return "SpvCapabilityImageMSArray";
19310e230b6Smaya   case SpvCapabilityStorageImageExtendedFormats: return "SpvCapabilityStorageImageExtendedFormats";
19410e230b6Smaya   case SpvCapabilityImageQuery: return "SpvCapabilityImageQuery";
19510e230b6Smaya   case SpvCapabilityDerivativeControl: return "SpvCapabilityDerivativeControl";
19610e230b6Smaya   case SpvCapabilityInterpolationFunction: return "SpvCapabilityInterpolationFunction";
19710e230b6Smaya   case SpvCapabilityTransformFeedback: return "SpvCapabilityTransformFeedback";
19810e230b6Smaya   case SpvCapabilityGeometryStreams: return "SpvCapabilityGeometryStreams";
19910e230b6Smaya   case SpvCapabilityStorageImageReadWithoutFormat: return "SpvCapabilityStorageImageReadWithoutFormat";
20010e230b6Smaya   case SpvCapabilityStorageImageWriteWithoutFormat: return "SpvCapabilityStorageImageWriteWithoutFormat";
20110e230b6Smaya   case SpvCapabilityMultiViewport: return "SpvCapabilityMultiViewport";
20210e230b6Smaya   case SpvCapabilitySubgroupDispatch: return "SpvCapabilitySubgroupDispatch";
20310e230b6Smaya   case SpvCapabilityNamedBarrier: return "SpvCapabilityNamedBarrier";
20410e230b6Smaya   case SpvCapabilityPipeStorage: return "SpvCapabilityPipeStorage";
20510e230b6Smaya   case SpvCapabilityGroupNonUniform: return "SpvCapabilityGroupNonUniform";
20610e230b6Smaya   case SpvCapabilityGroupNonUniformVote: return "SpvCapabilityGroupNonUniformVote";
20710e230b6Smaya   case SpvCapabilityGroupNonUniformArithmetic: return "SpvCapabilityGroupNonUniformArithmetic";
20810e230b6Smaya   case SpvCapabilityGroupNonUniformBallot: return "SpvCapabilityGroupNonUniformBallot";
20910e230b6Smaya   case SpvCapabilityGroupNonUniformShuffle: return "SpvCapabilityGroupNonUniformShuffle";
21010e230b6Smaya   case SpvCapabilityGroupNonUniformShuffleRelative: return "SpvCapabilityGroupNonUniformShuffleRelative";
21110e230b6Smaya   case SpvCapabilityGroupNonUniformClustered: return "SpvCapabilityGroupNonUniformClustered";
21210e230b6Smaya   case SpvCapabilityGroupNonUniformQuad: return "SpvCapabilityGroupNonUniformQuad";
21310e230b6Smaya   case SpvCapabilitySubgroupBallotKHR: return "SpvCapabilitySubgroupBallotKHR";
21410e230b6Smaya   case SpvCapabilityDrawParameters: return "SpvCapabilityDrawParameters";
21510e230b6Smaya   case SpvCapabilitySubgroupVoteKHR: return "SpvCapabilitySubgroupVoteKHR";
21610e230b6Smaya   case SpvCapabilityStorageBuffer16BitAccess: return "SpvCapabilityStorageBuffer16BitAccess";
21710e230b6Smaya   case SpvCapabilityUniformAndStorageBuffer16BitAccess: return "SpvCapabilityUniformAndStorageBuffer16BitAccess";
21810e230b6Smaya   case SpvCapabilityStoragePushConstant16: return "SpvCapabilityStoragePushConstant16";
21910e230b6Smaya   case SpvCapabilityStorageInputOutput16: return "SpvCapabilityStorageInputOutput16";
22010e230b6Smaya   case SpvCapabilityDeviceGroup: return "SpvCapabilityDeviceGroup";
22110e230b6Smaya   case SpvCapabilityMultiView: return "SpvCapabilityMultiView";
22210e230b6Smaya   case SpvCapabilityVariablePointersStorageBuffer: return "SpvCapabilityVariablePointersStorageBuffer";
22310e230b6Smaya   case SpvCapabilityVariablePointers: return "SpvCapabilityVariablePointers";
22410e230b6Smaya   case SpvCapabilityAtomicStorageOps: return "SpvCapabilityAtomicStorageOps";
22510e230b6Smaya   case SpvCapabilitySampleMaskPostDepthCoverage: return "SpvCapabilitySampleMaskPostDepthCoverage";
22610e230b6Smaya   case SpvCapabilityStorageBuffer8BitAccess: return "SpvCapabilityStorageBuffer8BitAccess";
22710e230b6Smaya   case SpvCapabilityUniformAndStorageBuffer8BitAccess: return "SpvCapabilityUniformAndStorageBuffer8BitAccess";
22810e230b6Smaya   case SpvCapabilityStoragePushConstant8: return "SpvCapabilityStoragePushConstant8";
22910e230b6Smaya   case SpvCapabilityDenormPreserve: return "SpvCapabilityDenormPreserve";
23010e230b6Smaya   case SpvCapabilityDenormFlushToZero: return "SpvCapabilityDenormFlushToZero";
23110e230b6Smaya   case SpvCapabilitySignedZeroInfNanPreserve: return "SpvCapabilitySignedZeroInfNanPreserve";
23210e230b6Smaya   case SpvCapabilityRoundingModeRTE: return "SpvCapabilityRoundingModeRTE";
23310e230b6Smaya   case SpvCapabilityRoundingModeRTZ: return "SpvCapabilityRoundingModeRTZ";
23410e230b6Smaya   case SpvCapabilityFloat16ImageAMD: return "SpvCapabilityFloat16ImageAMD";
23510e230b6Smaya   case SpvCapabilityImageGatherBiasLodAMD: return "SpvCapabilityImageGatherBiasLodAMD";
23610e230b6Smaya   case SpvCapabilityFragmentMaskAMD: return "SpvCapabilityFragmentMaskAMD";
23710e230b6Smaya   case SpvCapabilityStencilExportEXT: return "SpvCapabilityStencilExportEXT";
23810e230b6Smaya   case SpvCapabilityImageReadWriteLodAMD: return "SpvCapabilityImageReadWriteLodAMD";
23910e230b6Smaya   case SpvCapabilitySampleMaskOverrideCoverageNV: return "SpvCapabilitySampleMaskOverrideCoverageNV";
24010e230b6Smaya   case SpvCapabilityGeometryShaderPassthroughNV: return "SpvCapabilityGeometryShaderPassthroughNV";
24110e230b6Smaya   case SpvCapabilityShaderViewportIndexLayerEXT: return "SpvCapabilityShaderViewportIndexLayerEXT";
24210e230b6Smaya   case SpvCapabilityShaderViewportMaskNV: return "SpvCapabilityShaderViewportMaskNV";
24310e230b6Smaya   case SpvCapabilityShaderStereoViewNV: return "SpvCapabilityShaderStereoViewNV";
24410e230b6Smaya   case SpvCapabilityPerViewAttributesNV: return "SpvCapabilityPerViewAttributesNV";
24510e230b6Smaya   case SpvCapabilityFragmentFullyCoveredEXT: return "SpvCapabilityFragmentFullyCoveredEXT";
24610e230b6Smaya   case SpvCapabilityMeshShadingNV: return "SpvCapabilityMeshShadingNV";
24710e230b6Smaya   case SpvCapabilityShaderNonUniformEXT: return "SpvCapabilityShaderNonUniformEXT";
24810e230b6Smaya   case SpvCapabilityRuntimeDescriptorArrayEXT: return "SpvCapabilityRuntimeDescriptorArrayEXT";
24910e230b6Smaya   case SpvCapabilityInputAttachmentArrayDynamicIndexingEXT: return "SpvCapabilityInputAttachmentArrayDynamicIndexingEXT";
25010e230b6Smaya   case SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT: return "SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT";
25110e230b6Smaya   case SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT: return "SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT";
25210e230b6Smaya   case SpvCapabilityUniformBufferArrayNonUniformIndexingEXT: return "SpvCapabilityUniformBufferArrayNonUniformIndexingEXT";
25310e230b6Smaya   case SpvCapabilitySampledImageArrayNonUniformIndexingEXT: return "SpvCapabilitySampledImageArrayNonUniformIndexingEXT";
25410e230b6Smaya   case SpvCapabilityStorageBufferArrayNonUniformIndexingEXT: return "SpvCapabilityStorageBufferArrayNonUniformIndexingEXT";
25510e230b6Smaya   case SpvCapabilityStorageImageArrayNonUniformIndexingEXT: return "SpvCapabilityStorageImageArrayNonUniformIndexingEXT";
25610e230b6Smaya   case SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT: return "SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT";
25710e230b6Smaya   case SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT: return "SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT";
25810e230b6Smaya   case SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT: return "SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT";
25910e230b6Smaya   case SpvCapabilityRayTracingNV: return "SpvCapabilityRayTracingNV";
26010e230b6Smaya   case SpvCapabilitySubgroupShuffleINTEL: return "SpvCapabilitySubgroupShuffleINTEL";
26110e230b6Smaya   case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SpvCapabilitySubgroupBufferBlockIOINTEL";
26210e230b6Smaya   case SpvCapabilitySubgroupImageBlockIOINTEL: return "SpvCapabilitySubgroupImageBlockIOINTEL";
26310e230b6Smaya   case SpvCapabilityGroupNonUniformPartitionedNV: return "SpvCapabilityGroupNonUniformPartitionedNV";
26410e230b6Smaya   case SpvCapabilityVulkanMemoryModelKHR: return "SpvCapabilityVulkanMemoryModelKHR";
26510e230b6Smaya   case SpvCapabilityVulkanMemoryModelDeviceScopeKHR: return "SpvCapabilityVulkanMemoryModelDeviceScopeKHR";
26610e230b6Smaya   case SpvCapabilityImageFootprintNV: return "SpvCapabilityImageFootprintNV";
26710e230b6Smaya   case SpvCapabilityFragmentBarycentricNV: return "SpvCapabilityFragmentBarycentricNV";
26810e230b6Smaya   case SpvCapabilityComputeDerivativeGroupQuadsNV: return "SpvCapabilityComputeDerivativeGroupQuadsNV";
26910e230b6Smaya   case SpvCapabilityComputeDerivativeGroupLinearNV: return "SpvCapabilityComputeDerivativeGroupLinearNV";
27010e230b6Smaya   case SpvCapabilityFragmentDensityEXT: return "SpvCapabilityFragmentDensityEXT";
27110e230b6Smaya   case SpvCapabilityPhysicalStorageBufferAddressesEXT: return "SpvCapabilityPhysicalStorageBufferAddressesEXT";
27210e230b6Smaya   case SpvCapabilityMax: break; /* silence warnings about unhandled enums. */
27310e230b6Smaya   }
27410e230b6Smaya
27510e230b6Smaya   return "unknown";
27610e230b6Smaya}
27710e230b6Smaya
27810e230b6Smayaconst char *
27910e230b6Smayaspirv_decoration_to_string(SpvDecoration v)
28010e230b6Smaya{
28110e230b6Smaya   switch (v) {
28210e230b6Smaya   case SpvDecorationRelaxedPrecision: return "SpvDecorationRelaxedPrecision";
28310e230b6Smaya   case SpvDecorationSpecId: return "SpvDecorationSpecId";
28410e230b6Smaya   case SpvDecorationBlock: return "SpvDecorationBlock";
28510e230b6Smaya   case SpvDecorationBufferBlock: return "SpvDecorationBufferBlock";
28610e230b6Smaya   case SpvDecorationRowMajor: return "SpvDecorationRowMajor";
28710e230b6Smaya   case SpvDecorationColMajor: return "SpvDecorationColMajor";
28810e230b6Smaya   case SpvDecorationArrayStride: return "SpvDecorationArrayStride";
28910e230b6Smaya   case SpvDecorationMatrixStride: return "SpvDecorationMatrixStride";
29010e230b6Smaya   case SpvDecorationGLSLShared: return "SpvDecorationGLSLShared";
29110e230b6Smaya   case SpvDecorationGLSLPacked: return "SpvDecorationGLSLPacked";
29210e230b6Smaya   case SpvDecorationCPacked: return "SpvDecorationCPacked";
29310e230b6Smaya   case SpvDecorationBuiltIn: return "SpvDecorationBuiltIn";
29410e230b6Smaya   case SpvDecorationNoPerspective: return "SpvDecorationNoPerspective";
29510e230b6Smaya   case SpvDecorationFlat: return "SpvDecorationFlat";
29610e230b6Smaya   case SpvDecorationPatch: return "SpvDecorationPatch";
29710e230b6Smaya   case SpvDecorationCentroid: return "SpvDecorationCentroid";
29810e230b6Smaya   case SpvDecorationSample: return "SpvDecorationSample";
29910e230b6Smaya   case SpvDecorationInvariant: return "SpvDecorationInvariant";
30010e230b6Smaya   case SpvDecorationRestrict: return "SpvDecorationRestrict";
30110e230b6Smaya   case SpvDecorationAliased: return "SpvDecorationAliased";
30210e230b6Smaya   case SpvDecorationVolatile: return "SpvDecorationVolatile";
30310e230b6Smaya   case SpvDecorationConstant: return "SpvDecorationConstant";
30410e230b6Smaya   case SpvDecorationCoherent: return "SpvDecorationCoherent";
30510e230b6Smaya   case SpvDecorationNonWritable: return "SpvDecorationNonWritable";
30610e230b6Smaya   case SpvDecorationNonReadable: return "SpvDecorationNonReadable";
30710e230b6Smaya   case SpvDecorationUniform: return "SpvDecorationUniform";
30810e230b6Smaya   case SpvDecorationSaturatedConversion: return "SpvDecorationSaturatedConversion";
30910e230b6Smaya   case SpvDecorationStream: return "SpvDecorationStream";
31010e230b6Smaya   case SpvDecorationLocation: return "SpvDecorationLocation";
31110e230b6Smaya   case SpvDecorationComponent: return "SpvDecorationComponent";
31210e230b6Smaya   case SpvDecorationIndex: return "SpvDecorationIndex";
31310e230b6Smaya   case SpvDecorationBinding: return "SpvDecorationBinding";
31410e230b6Smaya   case SpvDecorationDescriptorSet: return "SpvDecorationDescriptorSet";
31510e230b6Smaya   case SpvDecorationOffset: return "SpvDecorationOffset";
31610e230b6Smaya   case SpvDecorationXfbBuffer: return "SpvDecorationXfbBuffer";
31710e230b6Smaya   case SpvDecorationXfbStride: return "SpvDecorationXfbStride";
31810e230b6Smaya   case SpvDecorationFuncParamAttr: return "SpvDecorationFuncParamAttr";
31910e230b6Smaya   case SpvDecorationFPRoundingMode: return "SpvDecorationFPRoundingMode";
32010e230b6Smaya   case SpvDecorationFPFastMathMode: return "SpvDecorationFPFastMathMode";
32110e230b6Smaya   case SpvDecorationLinkageAttributes: return "SpvDecorationLinkageAttributes";
32210e230b6Smaya   case SpvDecorationNoContraction: return "SpvDecorationNoContraction";
32310e230b6Smaya   case SpvDecorationInputAttachmentIndex: return "SpvDecorationInputAttachmentIndex";
32410e230b6Smaya   case SpvDecorationAlignment: return "SpvDecorationAlignment";
32510e230b6Smaya   case SpvDecorationMaxByteOffset: return "SpvDecorationMaxByteOffset";
32610e230b6Smaya   case SpvDecorationAlignmentId: return "SpvDecorationAlignmentId";
32710e230b6Smaya   case SpvDecorationMaxByteOffsetId: return "SpvDecorationMaxByteOffsetId";
32810e230b6Smaya   case SpvDecorationNoSignedWrap: return "SpvDecorationNoSignedWrap";
32910e230b6Smaya   case SpvDecorationNoUnsignedWrap: return "SpvDecorationNoUnsignedWrap";
33010e230b6Smaya   case SpvDecorationExplicitInterpAMD: return "SpvDecorationExplicitInterpAMD";
33110e230b6Smaya   case SpvDecorationOverrideCoverageNV: return "SpvDecorationOverrideCoverageNV";
33210e230b6Smaya   case SpvDecorationPassthroughNV: return "SpvDecorationPassthroughNV";
33310e230b6Smaya   case SpvDecorationViewportRelativeNV: return "SpvDecorationViewportRelativeNV";
33410e230b6Smaya   case SpvDecorationSecondaryViewportRelativeNV: return "SpvDecorationSecondaryViewportRelativeNV";
33510e230b6Smaya   case SpvDecorationPerPrimitiveNV: return "SpvDecorationPerPrimitiveNV";
33610e230b6Smaya   case SpvDecorationPerViewNV: return "SpvDecorationPerViewNV";
33710e230b6Smaya   case SpvDecorationPerTaskNV: return "SpvDecorationPerTaskNV";
33810e230b6Smaya   case SpvDecorationPerVertexNV: return "SpvDecorationPerVertexNV";
33910e230b6Smaya   case SpvDecorationNonUniformEXT: return "SpvDecorationNonUniformEXT";
34010e230b6Smaya   case SpvDecorationHlslCounterBufferGOOGLE: return "SpvDecorationHlslCounterBufferGOOGLE";
34110e230b6Smaya   case SpvDecorationHlslSemanticGOOGLE: return "SpvDecorationHlslSemanticGOOGLE";
34210e230b6Smaya   case SpvDecorationRestrictPointerEXT: return "SpvDecorationRestrictPointerEXT";
34310e230b6Smaya   case SpvDecorationAliasedPointerEXT: return "SpvDecorationAliasedPointerEXT";
34410e230b6Smaya   case SpvDecorationMax: break; /* silence warnings about unhandled enums. */
34510e230b6Smaya   }
34610e230b6Smaya
34710e230b6Smaya   return "unknown";
34810e230b6Smaya}
34910e230b6Smaya
35010e230b6Smayaconst char *
35110e230b6Smayaspirv_dim_to_string(SpvDim v)
35210e230b6Smaya{
35310e230b6Smaya   switch (v) {
35410e230b6Smaya   case SpvDim1D: return "SpvDim1D";
35510e230b6Smaya   case SpvDim2D: return "SpvDim2D";
35610e230b6Smaya   case SpvDim3D: return "SpvDim3D";
35710e230b6Smaya   case SpvDimCube: return "SpvDimCube";
35810e230b6Smaya   case SpvDimRect: return "SpvDimRect";
35910e230b6Smaya   case SpvDimBuffer: return "SpvDimBuffer";
36010e230b6Smaya   case SpvDimSubpassData: return "SpvDimSubpassData";
36110e230b6Smaya   case SpvDimMax: break; /* silence warnings about unhandled enums. */
36210e230b6Smaya   }
36310e230b6Smaya
36410e230b6Smaya   return "unknown";
36510e230b6Smaya}
36610e230b6Smaya
36710e230b6Smayaconst char *
36810e230b6Smayaspirv_executionmode_to_string(SpvExecutionMode v)
36910e230b6Smaya{
37010e230b6Smaya   switch (v) {
37110e230b6Smaya   case SpvExecutionModeInvocations: return "SpvExecutionModeInvocations";
37210e230b6Smaya   case SpvExecutionModeSpacingEqual: return "SpvExecutionModeSpacingEqual";
37310e230b6Smaya   case SpvExecutionModeSpacingFractionalEven: return "SpvExecutionModeSpacingFractionalEven";
37410e230b6Smaya   case SpvExecutionModeSpacingFractionalOdd: return "SpvExecutionModeSpacingFractionalOdd";
37510e230b6Smaya   case SpvExecutionModeVertexOrderCw: return "SpvExecutionModeVertexOrderCw";
37610e230b6Smaya   case SpvExecutionModeVertexOrderCcw: return "SpvExecutionModeVertexOrderCcw";
37710e230b6Smaya   case SpvExecutionModePixelCenterInteger: return "SpvExecutionModePixelCenterInteger";
37810e230b6Smaya   case SpvExecutionModeOriginUpperLeft: return "SpvExecutionModeOriginUpperLeft";
37910e230b6Smaya   case SpvExecutionModeOriginLowerLeft: return "SpvExecutionModeOriginLowerLeft";
38010e230b6Smaya   case SpvExecutionModeEarlyFragmentTests: return "SpvExecutionModeEarlyFragmentTests";
38110e230b6Smaya   case SpvExecutionModePointMode: return "SpvExecutionModePointMode";
38210e230b6Smaya   case SpvExecutionModeXfb: return "SpvExecutionModeXfb";
38310e230b6Smaya   case SpvExecutionModeDepthReplacing: return "SpvExecutionModeDepthReplacing";
38410e230b6Smaya   case SpvExecutionModeDepthGreater: return "SpvExecutionModeDepthGreater";
38510e230b6Smaya   case SpvExecutionModeDepthLess: return "SpvExecutionModeDepthLess";
38610e230b6Smaya   case SpvExecutionModeDepthUnchanged: return "SpvExecutionModeDepthUnchanged";
38710e230b6Smaya   case SpvExecutionModeLocalSize: return "SpvExecutionModeLocalSize";
38810e230b6Smaya   case SpvExecutionModeLocalSizeHint: return "SpvExecutionModeLocalSizeHint";
38910e230b6Smaya   case SpvExecutionModeInputPoints: return "SpvExecutionModeInputPoints";
39010e230b6Smaya   case SpvExecutionModeInputLines: return "SpvExecutionModeInputLines";
39110e230b6Smaya   case SpvExecutionModeInputLinesAdjacency: return "SpvExecutionModeInputLinesAdjacency";
39210e230b6Smaya   case SpvExecutionModeTriangles: return "SpvExecutionModeTriangles";
39310e230b6Smaya   case SpvExecutionModeInputTrianglesAdjacency: return "SpvExecutionModeInputTrianglesAdjacency";
39410e230b6Smaya   case SpvExecutionModeQuads: return "SpvExecutionModeQuads";
39510e230b6Smaya   case SpvExecutionModeIsolines: return "SpvExecutionModeIsolines";
39610e230b6Smaya   case SpvExecutionModeOutputVertices: return "SpvExecutionModeOutputVertices";
39710e230b6Smaya   case SpvExecutionModeOutputPoints: return "SpvExecutionModeOutputPoints";
39810e230b6Smaya   case SpvExecutionModeOutputLineStrip: return "SpvExecutionModeOutputLineStrip";
39910e230b6Smaya   case SpvExecutionModeOutputTriangleStrip: return "SpvExecutionModeOutputTriangleStrip";
40010e230b6Smaya   case SpvExecutionModeVecTypeHint: return "SpvExecutionModeVecTypeHint";
40110e230b6Smaya   case SpvExecutionModeContractionOff: return "SpvExecutionModeContractionOff";
40210e230b6Smaya   case SpvExecutionModeInitializer: return "SpvExecutionModeInitializer";
40310e230b6Smaya   case SpvExecutionModeFinalizer: return "SpvExecutionModeFinalizer";
40410e230b6Smaya   case SpvExecutionModeSubgroupSize: return "SpvExecutionModeSubgroupSize";
40510e230b6Smaya   case SpvExecutionModeSubgroupsPerWorkgroup: return "SpvExecutionModeSubgroupsPerWorkgroup";
40610e230b6Smaya   case SpvExecutionModeSubgroupsPerWorkgroupId: return "SpvExecutionModeSubgroupsPerWorkgroupId";
40710e230b6Smaya   case SpvExecutionModeLocalSizeId: return "SpvExecutionModeLocalSizeId";
40810e230b6Smaya   case SpvExecutionModeLocalSizeHintId: return "SpvExecutionModeLocalSizeHintId";
40910e230b6Smaya   case SpvExecutionModePostDepthCoverage: return "SpvExecutionModePostDepthCoverage";
41010e230b6Smaya   case SpvExecutionModeDenormPreserve: return "SpvExecutionModeDenormPreserve";
41110e230b6Smaya   case SpvExecutionModeDenormFlushToZero: return "SpvExecutionModeDenormFlushToZero";
41210e230b6Smaya   case SpvExecutionModeSignedZeroInfNanPreserve: return "SpvExecutionModeSignedZeroInfNanPreserve";
41310e230b6Smaya   case SpvExecutionModeRoundingModeRTE: return "SpvExecutionModeRoundingModeRTE";
41410e230b6Smaya   case SpvExecutionModeRoundingModeRTZ: return "SpvExecutionModeRoundingModeRTZ";
41510e230b6Smaya   case SpvExecutionModeStencilRefReplacingEXT: return "SpvExecutionModeStencilRefReplacingEXT";
41610e230b6Smaya   case SpvExecutionModeOutputLinesNV: return "SpvExecutionModeOutputLinesNV";
41710e230b6Smaya   case SpvExecutionModeOutputPrimitivesNV: return "SpvExecutionModeOutputPrimitivesNV";
41810e230b6Smaya   case SpvExecutionModeDerivativeGroupQuadsNV: return "SpvExecutionModeDerivativeGroupQuadsNV";
41910e230b6Smaya   case SpvExecutionModeDerivativeGroupLinearNV: return "SpvExecutionModeDerivativeGroupLinearNV";
42010e230b6Smaya   case SpvExecutionModeOutputTrianglesNV: return "SpvExecutionModeOutputTrianglesNV";
42110e230b6Smaya   case SpvExecutionModeMax: break; /* silence warnings about unhandled enums. */
42210e230b6Smaya   }
42310e230b6Smaya
42410e230b6Smaya   return "unknown";
42510e230b6Smaya}
42610e230b6Smaya
42710e230b6Smayaconst char *
42810e230b6Smayaspirv_executionmodel_to_string(SpvExecutionModel v)
42910e230b6Smaya{
43010e230b6Smaya   switch (v) {
43110e230b6Smaya   case SpvExecutionModelVertex: return "SpvExecutionModelVertex";
43210e230b6Smaya   case SpvExecutionModelTessellationControl: return "SpvExecutionModelTessellationControl";
43310e230b6Smaya   case SpvExecutionModelTessellationEvaluation: return "SpvExecutionModelTessellationEvaluation";
43410e230b6Smaya   case SpvExecutionModelGeometry: return "SpvExecutionModelGeometry";
43510e230b6Smaya   case SpvExecutionModelFragment: return "SpvExecutionModelFragment";
43610e230b6Smaya   case SpvExecutionModelGLCompute: return "SpvExecutionModelGLCompute";
43710e230b6Smaya   case SpvExecutionModelKernel: return "SpvExecutionModelKernel";
43810e230b6Smaya   case SpvExecutionModelTaskNV: return "SpvExecutionModelTaskNV";
43910e230b6Smaya   case SpvExecutionModelMeshNV: return "SpvExecutionModelMeshNV";
44010e230b6Smaya   case SpvExecutionModelRayGenerationNV: return "SpvExecutionModelRayGenerationNV";
44110e230b6Smaya   case SpvExecutionModelIntersectionNV: return "SpvExecutionModelIntersectionNV";
44210e230b6Smaya   case SpvExecutionModelAnyHitNV: return "SpvExecutionModelAnyHitNV";
44310e230b6Smaya   case SpvExecutionModelClosestHitNV: return "SpvExecutionModelClosestHitNV";
44410e230b6Smaya   case SpvExecutionModelMissNV: return "SpvExecutionModelMissNV";
44510e230b6Smaya   case SpvExecutionModelCallableNV: return "SpvExecutionModelCallableNV";
44610e230b6Smaya   case SpvExecutionModelMax: break; /* silence warnings about unhandled enums. */
44710e230b6Smaya   }
44810e230b6Smaya
44910e230b6Smaya   return "unknown";
45010e230b6Smaya}
45110e230b6Smaya
45210e230b6Smayaconst char *
45310e230b6Smayaspirv_imageformat_to_string(SpvImageFormat v)
45410e230b6Smaya{
45510e230b6Smaya   switch (v) {
45610e230b6Smaya   case SpvImageFormatUnknown: return "SpvImageFormatUnknown";
45710e230b6Smaya   case SpvImageFormatRgba32f: return "SpvImageFormatRgba32f";
45810e230b6Smaya   case SpvImageFormatRgba16f: return "SpvImageFormatRgba16f";
45910e230b6Smaya   case SpvImageFormatR32f: return "SpvImageFormatR32f";
46010e230b6Smaya   case SpvImageFormatRgba8: return "SpvImageFormatRgba8";
46110e230b6Smaya   case SpvImageFormatRgba8Snorm: return "SpvImageFormatRgba8Snorm";
46210e230b6Smaya   case SpvImageFormatRg32f: return "SpvImageFormatRg32f";
46310e230b6Smaya   case SpvImageFormatRg16f: return "SpvImageFormatRg16f";
46410e230b6Smaya   case SpvImageFormatR11fG11fB10f: return "SpvImageFormatR11fG11fB10f";
46510e230b6Smaya   case SpvImageFormatR16f: return "SpvImageFormatR16f";
46610e230b6Smaya   case SpvImageFormatRgba16: return "SpvImageFormatRgba16";
46710e230b6Smaya   case SpvImageFormatRgb10A2: return "SpvImageFormatRgb10A2";
46810e230b6Smaya   case SpvImageFormatRg16: return "SpvImageFormatRg16";
46910e230b6Smaya   case SpvImageFormatRg8: return "SpvImageFormatRg8";
47010e230b6Smaya   case SpvImageFormatR16: return "SpvImageFormatR16";
47110e230b6Smaya   case SpvImageFormatR8: return "SpvImageFormatR8";
47210e230b6Smaya   case SpvImageFormatRgba16Snorm: return "SpvImageFormatRgba16Snorm";
47310e230b6Smaya   case SpvImageFormatRg16Snorm: return "SpvImageFormatRg16Snorm";
47410e230b6Smaya   case SpvImageFormatRg8Snorm: return "SpvImageFormatRg8Snorm";
47510e230b6Smaya   case SpvImageFormatR16Snorm: return "SpvImageFormatR16Snorm";
47610e230b6Smaya   case SpvImageFormatR8Snorm: return "SpvImageFormatR8Snorm";
47710e230b6Smaya   case SpvImageFormatRgba32i: return "SpvImageFormatRgba32i";
47810e230b6Smaya   case SpvImageFormatRgba16i: return "SpvImageFormatRgba16i";
47910e230b6Smaya   case SpvImageFormatRgba8i: return "SpvImageFormatRgba8i";
48010e230b6Smaya   case SpvImageFormatR32i: return "SpvImageFormatR32i";
48110e230b6Smaya   case SpvImageFormatRg32i: return "SpvImageFormatRg32i";
48210e230b6Smaya   case SpvImageFormatRg16i: return "SpvImageFormatRg16i";
48310e230b6Smaya   case SpvImageFormatRg8i: return "SpvImageFormatRg8i";
48410e230b6Smaya   case SpvImageFormatR16i: return "SpvImageFormatR16i";
48510e230b6Smaya   case SpvImageFormatR8i: return "SpvImageFormatR8i";
48610e230b6Smaya   case SpvImageFormatRgba32ui: return "SpvImageFormatRgba32ui";
48710e230b6Smaya   case SpvImageFormatRgba16ui: return "SpvImageFormatRgba16ui";
48810e230b6Smaya   case SpvImageFormatRgba8ui: return "SpvImageFormatRgba8ui";
48910e230b6Smaya   case SpvImageFormatR32ui: return "SpvImageFormatR32ui";
49010e230b6Smaya   case SpvImageFormatRgb10a2ui: return "SpvImageFormatRgb10a2ui";
49110e230b6Smaya   case SpvImageFormatRg32ui: return "SpvImageFormatRg32ui";
49210e230b6Smaya   case SpvImageFormatRg16ui: return "SpvImageFormatRg16ui";
49310e230b6Smaya   case SpvImageFormatRg8ui: return "SpvImageFormatRg8ui";
49410e230b6Smaya   case SpvImageFormatR16ui: return "SpvImageFormatR16ui";
49510e230b6Smaya   case SpvImageFormatR8ui: return "SpvImageFormatR8ui";
49610e230b6Smaya   case SpvImageFormatMax: break; /* silence warnings about unhandled enums. */
49710e230b6Smaya   }
49810e230b6Smaya
49910e230b6Smaya   return "unknown";
50010e230b6Smaya}
50110e230b6Smaya
50210e230b6Smayaconst char *
50310e230b6Smayaspirv_storageclass_to_string(SpvStorageClass v)
50410e230b6Smaya{
50510e230b6Smaya   switch (v) {
50610e230b6Smaya   case SpvStorageClassUniformConstant: return "SpvStorageClassUniformConstant";
50710e230b6Smaya   case SpvStorageClassInput: return "SpvStorageClassInput";
50810e230b6Smaya   case SpvStorageClassUniform: return "SpvStorageClassUniform";
50910e230b6Smaya   case SpvStorageClassOutput: return "SpvStorageClassOutput";
51010e230b6Smaya   case SpvStorageClassWorkgroup: return "SpvStorageClassWorkgroup";
51110e230b6Smaya   case SpvStorageClassCrossWorkgroup: return "SpvStorageClassCrossWorkgroup";
51210e230b6Smaya   case SpvStorageClassPrivate: return "SpvStorageClassPrivate";
51310e230b6Smaya   case SpvStorageClassFunction: return "SpvStorageClassFunction";
51410e230b6Smaya   case SpvStorageClassGeneric: return "SpvStorageClassGeneric";
51510e230b6Smaya   case SpvStorageClassPushConstant: return "SpvStorageClassPushConstant";
51610e230b6Smaya   case SpvStorageClassAtomicCounter: return "SpvStorageClassAtomicCounter";
51710e230b6Smaya   case SpvStorageClassImage: return "SpvStorageClassImage";
51810e230b6Smaya   case SpvStorageClassStorageBuffer: return "SpvStorageClassStorageBuffer";
51910e230b6Smaya   case SpvStorageClassCallableDataNV: return "SpvStorageClassCallableDataNV";
52010e230b6Smaya   case SpvStorageClassIncomingCallableDataNV: return "SpvStorageClassIncomingCallableDataNV";
52110e230b6Smaya   case SpvStorageClassRayPayloadNV: return "SpvStorageClassRayPayloadNV";
52210e230b6Smaya   case SpvStorageClassHitAttributeNV: return "SpvStorageClassHitAttributeNV";
52310e230b6Smaya   case SpvStorageClassIncomingRayPayloadNV: return "SpvStorageClassIncomingRayPayloadNV";
52410e230b6Smaya   case SpvStorageClassShaderRecordBufferNV: return "SpvStorageClassShaderRecordBufferNV";
52510e230b6Smaya   case SpvStorageClassPhysicalStorageBufferEXT: return "SpvStorageClassPhysicalStorageBufferEXT";
52610e230b6Smaya   case SpvStorageClassMax: break; /* silence warnings about unhandled enums. */
52710e230b6Smaya   }
52810e230b6Smaya
52910e230b6Smaya   return "unknown";
53010e230b6Smaya}
53110e230b6Smaya
53210e230b6Smayaconst char *
53310e230b6Smayaspirv_op_to_string(SpvOp v)
53410e230b6Smaya{
53510e230b6Smaya   switch (v) {
53610e230b6Smaya   case SpvOpNop: return "SpvOpNop";
53710e230b6Smaya   case SpvOpUndef: return "SpvOpUndef";
53810e230b6Smaya   case SpvOpSourceContinued: return "SpvOpSourceContinued";
53910e230b6Smaya   case SpvOpSource: return "SpvOpSource";
54010e230b6Smaya   case SpvOpSourceExtension: return "SpvOpSourceExtension";
54110e230b6Smaya   case SpvOpName: return "SpvOpName";
54210e230b6Smaya   case SpvOpMemberName: return "SpvOpMemberName";
54310e230b6Smaya   case SpvOpString: return "SpvOpString";
54410e230b6Smaya   case SpvOpLine: return "SpvOpLine";
54510e230b6Smaya   case SpvOpExtension: return "SpvOpExtension";
54610e230b6Smaya   case SpvOpExtInstImport: return "SpvOpExtInstImport";
54710e230b6Smaya   case SpvOpExtInst: return "SpvOpExtInst";
54810e230b6Smaya   case SpvOpMemoryModel: return "SpvOpMemoryModel";
54910e230b6Smaya   case SpvOpEntryPoint: return "SpvOpEntryPoint";
55010e230b6Smaya   case SpvOpExecutionMode: return "SpvOpExecutionMode";
55110e230b6Smaya   case SpvOpCapability: return "SpvOpCapability";
55210e230b6Smaya   case SpvOpTypeVoid: return "SpvOpTypeVoid";
55310e230b6Smaya   case SpvOpTypeBool: return "SpvOpTypeBool";
55410e230b6Smaya   case SpvOpTypeInt: return "SpvOpTypeInt";
55510e230b6Smaya   case SpvOpTypeFloat: return "SpvOpTypeFloat";
55610e230b6Smaya   case SpvOpTypeVector: return "SpvOpTypeVector";
55710e230b6Smaya   case SpvOpTypeMatrix: return "SpvOpTypeMatrix";
55810e230b6Smaya   case SpvOpTypeImage: return "SpvOpTypeImage";
55910e230b6Smaya   case SpvOpTypeSampler: return "SpvOpTypeSampler";
56010e230b6Smaya   case SpvOpTypeSampledImage: return "SpvOpTypeSampledImage";
56110e230b6Smaya   case SpvOpTypeArray: return "SpvOpTypeArray";
56210e230b6Smaya   case SpvOpTypeRuntimeArray: return "SpvOpTypeRuntimeArray";
56310e230b6Smaya   case SpvOpTypeStruct: return "SpvOpTypeStruct";
56410e230b6Smaya   case SpvOpTypeOpaque: return "SpvOpTypeOpaque";
56510e230b6Smaya   case SpvOpTypePointer: return "SpvOpTypePointer";
56610e230b6Smaya   case SpvOpTypeFunction: return "SpvOpTypeFunction";
56710e230b6Smaya   case SpvOpTypeEvent: return "SpvOpTypeEvent";
56810e230b6Smaya   case SpvOpTypeDeviceEvent: return "SpvOpTypeDeviceEvent";
56910e230b6Smaya   case SpvOpTypeReserveId: return "SpvOpTypeReserveId";
57010e230b6Smaya   case SpvOpTypeQueue: return "SpvOpTypeQueue";
57110e230b6Smaya   case SpvOpTypePipe: return "SpvOpTypePipe";
57210e230b6Smaya   case SpvOpTypeForwardPointer: return "SpvOpTypeForwardPointer";
57310e230b6Smaya   case SpvOpConstantTrue: return "SpvOpConstantTrue";
57410e230b6Smaya   case SpvOpConstantFalse: return "SpvOpConstantFalse";
57510e230b6Smaya   case SpvOpConstant: return "SpvOpConstant";
57610e230b6Smaya   case SpvOpConstantComposite: return "SpvOpConstantComposite";
57710e230b6Smaya   case SpvOpConstantSampler: return "SpvOpConstantSampler";
57810e230b6Smaya   case SpvOpConstantNull: return "SpvOpConstantNull";
57910e230b6Smaya   case SpvOpSpecConstantTrue: return "SpvOpSpecConstantTrue";
58010e230b6Smaya   case SpvOpSpecConstantFalse: return "SpvOpSpecConstantFalse";
58110e230b6Smaya   case SpvOpSpecConstant: return "SpvOpSpecConstant";
58210e230b6Smaya   case SpvOpSpecConstantComposite: return "SpvOpSpecConstantComposite";
58310e230b6Smaya   case SpvOpSpecConstantOp: return "SpvOpSpecConstantOp";
58410e230b6Smaya   case SpvOpFunction: return "SpvOpFunction";
58510e230b6Smaya   case SpvOpFunctionParameter: return "SpvOpFunctionParameter";
58610e230b6Smaya   case SpvOpFunctionEnd: return "SpvOpFunctionEnd";
58710e230b6Smaya   case SpvOpFunctionCall: return "SpvOpFunctionCall";
58810e230b6Smaya   case SpvOpVariable: return "SpvOpVariable";
58910e230b6Smaya   case SpvOpImageTexelPointer: return "SpvOpImageTexelPointer";
59010e230b6Smaya   case SpvOpLoad: return "SpvOpLoad";
59110e230b6Smaya   case SpvOpStore: return "SpvOpStore";
59210e230b6Smaya   case SpvOpCopyMemory: return "SpvOpCopyMemory";
59310e230b6Smaya   case SpvOpCopyMemorySized: return "SpvOpCopyMemorySized";
59410e230b6Smaya   case SpvOpAccessChain: return "SpvOpAccessChain";
59510e230b6Smaya   case SpvOpInBoundsAccessChain: return "SpvOpInBoundsAccessChain";
59610e230b6Smaya   case SpvOpPtrAccessChain: return "SpvOpPtrAccessChain";
59710e230b6Smaya   case SpvOpArrayLength: return "SpvOpArrayLength";
59810e230b6Smaya   case SpvOpGenericPtrMemSemantics: return "SpvOpGenericPtrMemSemantics";
59910e230b6Smaya   case SpvOpInBoundsPtrAccessChain: return "SpvOpInBoundsPtrAccessChain";
60010e230b6Smaya   case SpvOpDecorate: return "SpvOpDecorate";
60110e230b6Smaya   case SpvOpMemberDecorate: return "SpvOpMemberDecorate";
60210e230b6Smaya   case SpvOpDecorationGroup: return "SpvOpDecorationGroup";
60310e230b6Smaya   case SpvOpGroupDecorate: return "SpvOpGroupDecorate";
60410e230b6Smaya   case SpvOpGroupMemberDecorate: return "SpvOpGroupMemberDecorate";
60510e230b6Smaya   case SpvOpVectorExtractDynamic: return "SpvOpVectorExtractDynamic";
60610e230b6Smaya   case SpvOpVectorInsertDynamic: return "SpvOpVectorInsertDynamic";
60710e230b6Smaya   case SpvOpVectorShuffle: return "SpvOpVectorShuffle";
60810e230b6Smaya   case SpvOpCompositeConstruct: return "SpvOpCompositeConstruct";
60910e230b6Smaya   case SpvOpCompositeExtract: return "SpvOpCompositeExtract";
61010e230b6Smaya   case SpvOpCompositeInsert: return "SpvOpCompositeInsert";
61110e230b6Smaya   case SpvOpCopyObject: return "SpvOpCopyObject";
61210e230b6Smaya   case SpvOpTranspose: return "SpvOpTranspose";
61310e230b6Smaya   case SpvOpSampledImage: return "SpvOpSampledImage";
61410e230b6Smaya   case SpvOpImageSampleImplicitLod: return "SpvOpImageSampleImplicitLod";
61510e230b6Smaya   case SpvOpImageSampleExplicitLod: return "SpvOpImageSampleExplicitLod";
61610e230b6Smaya   case SpvOpImageSampleDrefImplicitLod: return "SpvOpImageSampleDrefImplicitLod";
61710e230b6Smaya   case SpvOpImageSampleDrefExplicitLod: return "SpvOpImageSampleDrefExplicitLod";
61810e230b6Smaya   case SpvOpImageSampleProjImplicitLod: return "SpvOpImageSampleProjImplicitLod";
61910e230b6Smaya   case SpvOpImageSampleProjExplicitLod: return "SpvOpImageSampleProjExplicitLod";
62010e230b6Smaya   case SpvOpImageSampleProjDrefImplicitLod: return "SpvOpImageSampleProjDrefImplicitLod";
62110e230b6Smaya   case SpvOpImageSampleProjDrefExplicitLod: return "SpvOpImageSampleProjDrefExplicitLod";
62210e230b6Smaya   case SpvOpImageFetch: return "SpvOpImageFetch";
62310e230b6Smaya   case SpvOpImageGather: return "SpvOpImageGather";
62410e230b6Smaya   case SpvOpImageDrefGather: return "SpvOpImageDrefGather";
62510e230b6Smaya   case SpvOpImageRead: return "SpvOpImageRead";
62610e230b6Smaya   case SpvOpImageWrite: return "SpvOpImageWrite";
62710e230b6Smaya   case SpvOpImage: return "SpvOpImage";
62810e230b6Smaya   case SpvOpImageQueryFormat: return "SpvOpImageQueryFormat";
62910e230b6Smaya   case SpvOpImageQueryOrder: return "SpvOpImageQueryOrder";
63010e230b6Smaya   case SpvOpImageQuerySizeLod: return "SpvOpImageQuerySizeLod";
63110e230b6Smaya   case SpvOpImageQuerySize: return "SpvOpImageQuerySize";
63210e230b6Smaya   case SpvOpImageQueryLod: return "SpvOpImageQueryLod";
63310e230b6Smaya   case SpvOpImageQueryLevels: return "SpvOpImageQueryLevels";
63410e230b6Smaya   case SpvOpImageQuerySamples: return "SpvOpImageQuerySamples";
63510e230b6Smaya   case SpvOpConvertFToU: return "SpvOpConvertFToU";
63610e230b6Smaya   case SpvOpConvertFToS: return "SpvOpConvertFToS";
63710e230b6Smaya   case SpvOpConvertSToF: return "SpvOpConvertSToF";
63810e230b6Smaya   case SpvOpConvertUToF: return "SpvOpConvertUToF";
63910e230b6Smaya   case SpvOpUConvert: return "SpvOpUConvert";
64010e230b6Smaya   case SpvOpSConvert: return "SpvOpSConvert";
64110e230b6Smaya   case SpvOpFConvert: return "SpvOpFConvert";
64210e230b6Smaya   case SpvOpQuantizeToF16: return "SpvOpQuantizeToF16";
64310e230b6Smaya   case SpvOpConvertPtrToU: return "SpvOpConvertPtrToU";
64410e230b6Smaya   case SpvOpSatConvertSToU: return "SpvOpSatConvertSToU";
64510e230b6Smaya   case SpvOpSatConvertUToS: return "SpvOpSatConvertUToS";
64610e230b6Smaya   case SpvOpConvertUToPtr: return "SpvOpConvertUToPtr";
64710e230b6Smaya   case SpvOpPtrCastToGeneric: return "SpvOpPtrCastToGeneric";
64810e230b6Smaya   case SpvOpGenericCastToPtr: return "SpvOpGenericCastToPtr";
64910e230b6Smaya   case SpvOpGenericCastToPtrExplicit: return "SpvOpGenericCastToPtrExplicit";
65010e230b6Smaya   case SpvOpBitcast: return "SpvOpBitcast";
65110e230b6Smaya   case SpvOpSNegate: return "SpvOpSNegate";
65210e230b6Smaya   case SpvOpFNegate: return "SpvOpFNegate";
65310e230b6Smaya   case SpvOpIAdd: return "SpvOpIAdd";
65410e230b6Smaya   case SpvOpFAdd: return "SpvOpFAdd";
65510e230b6Smaya   case SpvOpISub: return "SpvOpISub";
65610e230b6Smaya   case SpvOpFSub: return "SpvOpFSub";
65710e230b6Smaya   case SpvOpIMul: return "SpvOpIMul";
65810e230b6Smaya   case SpvOpFMul: return "SpvOpFMul";
65910e230b6Smaya   case SpvOpUDiv: return "SpvOpUDiv";
66010e230b6Smaya   case SpvOpSDiv: return "SpvOpSDiv";
66110e230b6Smaya   case SpvOpFDiv: return "SpvOpFDiv";
66210e230b6Smaya   case SpvOpUMod: return "SpvOpUMod";
66310e230b6Smaya   case SpvOpSRem: return "SpvOpSRem";
66410e230b6Smaya   case SpvOpSMod: return "SpvOpSMod";
66510e230b6Smaya   case SpvOpFRem: return "SpvOpFRem";
66610e230b6Smaya   case SpvOpFMod: return "SpvOpFMod";
66710e230b6Smaya   case SpvOpVectorTimesScalar: return "SpvOpVectorTimesScalar";
66810e230b6Smaya   case SpvOpMatrixTimesScalar: return "SpvOpMatrixTimesScalar";
66910e230b6Smaya   case SpvOpVectorTimesMatrix: return "SpvOpVectorTimesMatrix";
67010e230b6Smaya   case SpvOpMatrixTimesVector: return "SpvOpMatrixTimesVector";
67110e230b6Smaya   case SpvOpMatrixTimesMatrix: return "SpvOpMatrixTimesMatrix";
67210e230b6Smaya   case SpvOpOuterProduct: return "SpvOpOuterProduct";
67310e230b6Smaya   case SpvOpDot: return "SpvOpDot";
67410e230b6Smaya   case SpvOpIAddCarry: return "SpvOpIAddCarry";
67510e230b6Smaya   case SpvOpISubBorrow: return "SpvOpISubBorrow";
67610e230b6Smaya   case SpvOpUMulExtended: return "SpvOpUMulExtended";
67710e230b6Smaya   case SpvOpSMulExtended: return "SpvOpSMulExtended";
67810e230b6Smaya   case SpvOpAny: return "SpvOpAny";
67910e230b6Smaya   case SpvOpAll: return "SpvOpAll";
68010e230b6Smaya   case SpvOpIsNan: return "SpvOpIsNan";
68110e230b6Smaya   case SpvOpIsInf: return "SpvOpIsInf";
68210e230b6Smaya   case SpvOpIsFinite: return "SpvOpIsFinite";
68310e230b6Smaya   case SpvOpIsNormal: return "SpvOpIsNormal";
68410e230b6Smaya   case SpvOpSignBitSet: return "SpvOpSignBitSet";
68510e230b6Smaya   case SpvOpLessOrGreater: return "SpvOpLessOrGreater";
68610e230b6Smaya   case SpvOpOrdered: return "SpvOpOrdered";
68710e230b6Smaya   case SpvOpUnordered: return "SpvOpUnordered";
68810e230b6Smaya   case SpvOpLogicalEqual: return "SpvOpLogicalEqual";
68910e230b6Smaya   case SpvOpLogicalNotEqual: return "SpvOpLogicalNotEqual";
69010e230b6Smaya   case SpvOpLogicalOr: return "SpvOpLogicalOr";
69110e230b6Smaya   case SpvOpLogicalAnd: return "SpvOpLogicalAnd";
69210e230b6Smaya   case SpvOpLogicalNot: return "SpvOpLogicalNot";
69310e230b6Smaya   case SpvOpSelect: return "SpvOpSelect";
69410e230b6Smaya   case SpvOpIEqual: return "SpvOpIEqual";
69510e230b6Smaya   case SpvOpINotEqual: return "SpvOpINotEqual";
69610e230b6Smaya   case SpvOpUGreaterThan: return "SpvOpUGreaterThan";
69710e230b6Smaya   case SpvOpSGreaterThan: return "SpvOpSGreaterThan";
69810e230b6Smaya   case SpvOpUGreaterThanEqual: return "SpvOpUGreaterThanEqual";
69910e230b6Smaya   case SpvOpSGreaterThanEqual: return "SpvOpSGreaterThanEqual";
70010e230b6Smaya   case SpvOpULessThan: return "SpvOpULessThan";
70110e230b6Smaya   case SpvOpSLessThan: return "SpvOpSLessThan";
70210e230b6Smaya   case SpvOpULessThanEqual: return "SpvOpULessThanEqual";
70310e230b6Smaya   case SpvOpSLessThanEqual: return "SpvOpSLessThanEqual";
70410e230b6Smaya   case SpvOpFOrdEqual: return "SpvOpFOrdEqual";
70510e230b6Smaya   case SpvOpFUnordEqual: return "SpvOpFUnordEqual";
70610e230b6Smaya   case SpvOpFOrdNotEqual: return "SpvOpFOrdNotEqual";
70710e230b6Smaya   case SpvOpFUnordNotEqual: return "SpvOpFUnordNotEqual";
70810e230b6Smaya   case SpvOpFOrdLessThan: return "SpvOpFOrdLessThan";
70910e230b6Smaya   case SpvOpFUnordLessThan: return "SpvOpFUnordLessThan";
71010e230b6Smaya   case SpvOpFOrdGreaterThan: return "SpvOpFOrdGreaterThan";
71110e230b6Smaya   case SpvOpFUnordGreaterThan: return "SpvOpFUnordGreaterThan";
71210e230b6Smaya   case SpvOpFOrdLessThanEqual: return "SpvOpFOrdLessThanEqual";
71310e230b6Smaya   case SpvOpFUnordLessThanEqual: return "SpvOpFUnordLessThanEqual";
71410e230b6Smaya   case SpvOpFOrdGreaterThanEqual: return "SpvOpFOrdGreaterThanEqual";
71510e230b6Smaya   case SpvOpFUnordGreaterThanEqual: return "SpvOpFUnordGreaterThanEqual";
71610e230b6Smaya   case SpvOpShiftRightLogical: return "SpvOpShiftRightLogical";
71710e230b6Smaya   case SpvOpShiftRightArithmetic: return "SpvOpShiftRightArithmetic";
71810e230b6Smaya   case SpvOpShiftLeftLogical: return "SpvOpShiftLeftLogical";
71910e230b6Smaya   case SpvOpBitwiseOr: return "SpvOpBitwiseOr";
72010e230b6Smaya   case SpvOpBitwiseXor: return "SpvOpBitwiseXor";
72110e230b6Smaya   case SpvOpBitwiseAnd: return "SpvOpBitwiseAnd";
72210e230b6Smaya   case SpvOpNot: return "SpvOpNot";
72310e230b6Smaya   case SpvOpBitFieldInsert: return "SpvOpBitFieldInsert";
72410e230b6Smaya   case SpvOpBitFieldSExtract: return "SpvOpBitFieldSExtract";
72510e230b6Smaya   case SpvOpBitFieldUExtract: return "SpvOpBitFieldUExtract";
72610e230b6Smaya   case SpvOpBitReverse: return "SpvOpBitReverse";
72710e230b6Smaya   case SpvOpBitCount: return "SpvOpBitCount";
72810e230b6Smaya   case SpvOpDPdx: return "SpvOpDPdx";
72910e230b6Smaya   case SpvOpDPdy: return "SpvOpDPdy";
73010e230b6Smaya   case SpvOpFwidth: return "SpvOpFwidth";
73110e230b6Smaya   case SpvOpDPdxFine: return "SpvOpDPdxFine";
73210e230b6Smaya   case SpvOpDPdyFine: return "SpvOpDPdyFine";
73310e230b6Smaya   case SpvOpFwidthFine: return "SpvOpFwidthFine";
73410e230b6Smaya   case SpvOpDPdxCoarse: return "SpvOpDPdxCoarse";
73510e230b6Smaya   case SpvOpDPdyCoarse: return "SpvOpDPdyCoarse";
73610e230b6Smaya   case SpvOpFwidthCoarse: return "SpvOpFwidthCoarse";
73710e230b6Smaya   case SpvOpEmitVertex: return "SpvOpEmitVertex";
73810e230b6Smaya   case SpvOpEndPrimitive: return "SpvOpEndPrimitive";
73910e230b6Smaya   case SpvOpEmitStreamVertex: return "SpvOpEmitStreamVertex";
74010e230b6Smaya   case SpvOpEndStreamPrimitive: return "SpvOpEndStreamPrimitive";
74110e230b6Smaya   case SpvOpControlBarrier: return "SpvOpControlBarrier";
74210e230b6Smaya   case SpvOpMemoryBarrier: return "SpvOpMemoryBarrier";
74310e230b6Smaya   case SpvOpAtomicLoad: return "SpvOpAtomicLoad";
74410e230b6Smaya   case SpvOpAtomicStore: return "SpvOpAtomicStore";
74510e230b6Smaya   case SpvOpAtomicExchange: return "SpvOpAtomicExchange";
74610e230b6Smaya   case SpvOpAtomicCompareExchange: return "SpvOpAtomicCompareExchange";
74710e230b6Smaya   case SpvOpAtomicCompareExchangeWeak: return "SpvOpAtomicCompareExchangeWeak";
74810e230b6Smaya   case SpvOpAtomicIIncrement: return "SpvOpAtomicIIncrement";
74910e230b6Smaya   case SpvOpAtomicIDecrement: return "SpvOpAtomicIDecrement";
75010e230b6Smaya   case SpvOpAtomicIAdd: return "SpvOpAtomicIAdd";
75110e230b6Smaya   case SpvOpAtomicISub: return "SpvOpAtomicISub";
75210e230b6Smaya   case SpvOpAtomicSMin: return "SpvOpAtomicSMin";
75310e230b6Smaya   case SpvOpAtomicUMin: return "SpvOpAtomicUMin";
75410e230b6Smaya   case SpvOpAtomicSMax: return "SpvOpAtomicSMax";
75510e230b6Smaya   case SpvOpAtomicUMax: return "SpvOpAtomicUMax";
75610e230b6Smaya   case SpvOpAtomicAnd: return "SpvOpAtomicAnd";
75710e230b6Smaya   case SpvOpAtomicOr: return "SpvOpAtomicOr";
75810e230b6Smaya   case SpvOpAtomicXor: return "SpvOpAtomicXor";
75910e230b6Smaya   case SpvOpPhi: return "SpvOpPhi";
76010e230b6Smaya   case SpvOpLoopMerge: return "SpvOpLoopMerge";
76110e230b6Smaya   case SpvOpSelectionMerge: return "SpvOpSelectionMerge";
76210e230b6Smaya   case SpvOpLabel: return "SpvOpLabel";
76310e230b6Smaya   case SpvOpBranch: return "SpvOpBranch";
76410e230b6Smaya   case SpvOpBranchConditional: return "SpvOpBranchConditional";
76510e230b6Smaya   case SpvOpSwitch: return "SpvOpSwitch";
76610e230b6Smaya   case SpvOpKill: return "SpvOpKill";
76710e230b6Smaya   case SpvOpReturn: return "SpvOpReturn";
76810e230b6Smaya   case SpvOpReturnValue: return "SpvOpReturnValue";
76910e230b6Smaya   case SpvOpUnreachable: return "SpvOpUnreachable";
77010e230b6Smaya   case SpvOpLifetimeStart: return "SpvOpLifetimeStart";
77110e230b6Smaya   case SpvOpLifetimeStop: return "SpvOpLifetimeStop";
77210e230b6Smaya   case SpvOpGroupAsyncCopy: return "SpvOpGroupAsyncCopy";
77310e230b6Smaya   case SpvOpGroupWaitEvents: return "SpvOpGroupWaitEvents";
77410e230b6Smaya   case SpvOpGroupAll: return "SpvOpGroupAll";
77510e230b6Smaya   case SpvOpGroupAny: return "SpvOpGroupAny";
77610e230b6Smaya   case SpvOpGroupBroadcast: return "SpvOpGroupBroadcast";
77710e230b6Smaya   case SpvOpGroupIAdd: return "SpvOpGroupIAdd";
77810e230b6Smaya   case SpvOpGroupFAdd: return "SpvOpGroupFAdd";
77910e230b6Smaya   case SpvOpGroupFMin: return "SpvOpGroupFMin";
78010e230b6Smaya   case SpvOpGroupUMin: return "SpvOpGroupUMin";
78110e230b6Smaya   case SpvOpGroupSMin: return "SpvOpGroupSMin";
78210e230b6Smaya   case SpvOpGroupFMax: return "SpvOpGroupFMax";
78310e230b6Smaya   case SpvOpGroupUMax: return "SpvOpGroupUMax";
78410e230b6Smaya   case SpvOpGroupSMax: return "SpvOpGroupSMax";
78510e230b6Smaya   case SpvOpReadPipe: return "SpvOpReadPipe";
78610e230b6Smaya   case SpvOpWritePipe: return "SpvOpWritePipe";
78710e230b6Smaya   case SpvOpReservedReadPipe: return "SpvOpReservedReadPipe";
78810e230b6Smaya   case SpvOpReservedWritePipe: return "SpvOpReservedWritePipe";
78910e230b6Smaya   case SpvOpReserveReadPipePackets: return "SpvOpReserveReadPipePackets";
79010e230b6Smaya   case SpvOpReserveWritePipePackets: return "SpvOpReserveWritePipePackets";
79110e230b6Smaya   case SpvOpCommitReadPipe: return "SpvOpCommitReadPipe";
79210e230b6Smaya   case SpvOpCommitWritePipe: return "SpvOpCommitWritePipe";
79310e230b6Smaya   case SpvOpIsValidReserveId: return "SpvOpIsValidReserveId";
79410e230b6Smaya   case SpvOpGetNumPipePackets: return "SpvOpGetNumPipePackets";
79510e230b6Smaya   case SpvOpGetMaxPipePackets: return "SpvOpGetMaxPipePackets";
79610e230b6Smaya   case SpvOpGroupReserveReadPipePackets: return "SpvOpGroupReserveReadPipePackets";
79710e230b6Smaya   case SpvOpGroupReserveWritePipePackets: return "SpvOpGroupReserveWritePipePackets";
79810e230b6Smaya   case SpvOpGroupCommitReadPipe: return "SpvOpGroupCommitReadPipe";
79910e230b6Smaya   case SpvOpGroupCommitWritePipe: return "SpvOpGroupCommitWritePipe";
80010e230b6Smaya   case SpvOpEnqueueMarker: return "SpvOpEnqueueMarker";
80110e230b6Smaya   case SpvOpEnqueueKernel: return "SpvOpEnqueueKernel";
80210e230b6Smaya   case SpvOpGetKernelNDrangeSubGroupCount: return "SpvOpGetKernelNDrangeSubGroupCount";
80310e230b6Smaya   case SpvOpGetKernelNDrangeMaxSubGroupSize: return "SpvOpGetKernelNDrangeMaxSubGroupSize";
80410e230b6Smaya   case SpvOpGetKernelWorkGroupSize: return "SpvOpGetKernelWorkGroupSize";
80510e230b6Smaya   case SpvOpGetKernelPreferredWorkGroupSizeMultiple: return "SpvOpGetKernelPreferredWorkGroupSizeMultiple";
80610e230b6Smaya   case SpvOpRetainEvent: return "SpvOpRetainEvent";
80710e230b6Smaya   case SpvOpReleaseEvent: return "SpvOpReleaseEvent";
80810e230b6Smaya   case SpvOpCreateUserEvent: return "SpvOpCreateUserEvent";
80910e230b6Smaya   case SpvOpIsValidEvent: return "SpvOpIsValidEvent";
81010e230b6Smaya   case SpvOpSetUserEventStatus: return "SpvOpSetUserEventStatus";
81110e230b6Smaya   case SpvOpCaptureEventProfilingInfo: return "SpvOpCaptureEventProfilingInfo";
81210e230b6Smaya   case SpvOpGetDefaultQueue: return "SpvOpGetDefaultQueue";
81310e230b6Smaya   case SpvOpBuildNDRange: return "SpvOpBuildNDRange";
81410e230b6Smaya   case SpvOpImageSparseSampleImplicitLod: return "SpvOpImageSparseSampleImplicitLod";
81510e230b6Smaya   case SpvOpImageSparseSampleExplicitLod: return "SpvOpImageSparseSampleExplicitLod";
81610e230b6Smaya   case SpvOpImageSparseSampleDrefImplicitLod: return "SpvOpImageSparseSampleDrefImplicitLod";
81710e230b6Smaya   case SpvOpImageSparseSampleDrefExplicitLod: return "SpvOpImageSparseSampleDrefExplicitLod";
81810e230b6Smaya   case SpvOpImageSparseSampleProjImplicitLod: return "SpvOpImageSparseSampleProjImplicitLod";
81910e230b6Smaya   case SpvOpImageSparseSampleProjExplicitLod: return "SpvOpImageSparseSampleProjExplicitLod";
82010e230b6Smaya   case SpvOpImageSparseSampleProjDrefImplicitLod: return "SpvOpImageSparseSampleProjDrefImplicitLod";
82110e230b6Smaya   case SpvOpImageSparseSampleProjDrefExplicitLod: return "SpvOpImageSparseSampleProjDrefExplicitLod";
82210e230b6Smaya   case SpvOpImageSparseFetch: return "SpvOpImageSparseFetch";
82310e230b6Smaya   case SpvOpImageSparseGather: return "SpvOpImageSparseGather";
82410e230b6Smaya   case SpvOpImageSparseDrefGather: return "SpvOpImageSparseDrefGather";
82510e230b6Smaya   case SpvOpImageSparseTexelsResident: return "SpvOpImageSparseTexelsResident";
82610e230b6Smaya   case SpvOpNoLine: return "SpvOpNoLine";
82710e230b6Smaya   case SpvOpAtomicFlagTestAndSet: return "SpvOpAtomicFlagTestAndSet";
82810e230b6Smaya   case SpvOpAtomicFlagClear: return "SpvOpAtomicFlagClear";
82910e230b6Smaya   case SpvOpImageSparseRead: return "SpvOpImageSparseRead";
83010e230b6Smaya   case SpvOpSizeOf: return "SpvOpSizeOf";
83110e230b6Smaya   case SpvOpTypePipeStorage: return "SpvOpTypePipeStorage";
83210e230b6Smaya   case SpvOpConstantPipeStorage: return "SpvOpConstantPipeStorage";
83310e230b6Smaya   case SpvOpCreatePipeFromPipeStorage: return "SpvOpCreatePipeFromPipeStorage";
83410e230b6Smaya   case SpvOpGetKernelLocalSizeForSubgroupCount: return "SpvOpGetKernelLocalSizeForSubgroupCount";
83510e230b6Smaya   case SpvOpGetKernelMaxNumSubgroups: return "SpvOpGetKernelMaxNumSubgroups";
83610e230b6Smaya   case SpvOpTypeNamedBarrier: return "SpvOpTypeNamedBarrier";
83710e230b6Smaya   case SpvOpNamedBarrierInitialize: return "SpvOpNamedBarrierInitialize";
83810e230b6Smaya   case SpvOpMemoryNamedBarrier: return "SpvOpMemoryNamedBarrier";
83910e230b6Smaya   case SpvOpModuleProcessed: return "SpvOpModuleProcessed";
84010e230b6Smaya   case SpvOpExecutionModeId: return "SpvOpExecutionModeId";
84110e230b6Smaya   case SpvOpDecorateId: return "SpvOpDecorateId";
84210e230b6Smaya   case SpvOpGroupNonUniformElect: return "SpvOpGroupNonUniformElect";
84310e230b6Smaya   case SpvOpGroupNonUniformAll: return "SpvOpGroupNonUniformAll";
84410e230b6Smaya   case SpvOpGroupNonUniformAny: return "SpvOpGroupNonUniformAny";
84510e230b6Smaya   case SpvOpGroupNonUniformAllEqual: return "SpvOpGroupNonUniformAllEqual";
84610e230b6Smaya   case SpvOpGroupNonUniformBroadcast: return "SpvOpGroupNonUniformBroadcast";
84710e230b6Smaya   case SpvOpGroupNonUniformBroadcastFirst: return "SpvOpGroupNonUniformBroadcastFirst";
84810e230b6Smaya   case SpvOpGroupNonUniformBallot: return "SpvOpGroupNonUniformBallot";
84910e230b6Smaya   case SpvOpGroupNonUniformInverseBallot: return "SpvOpGroupNonUniformInverseBallot";
85010e230b6Smaya   case SpvOpGroupNonUniformBallotBitExtract: return "SpvOpGroupNonUniformBallotBitExtract";
85110e230b6Smaya   case SpvOpGroupNonUniformBallotBitCount: return "SpvOpGroupNonUniformBallotBitCount";
85210e230b6Smaya   case SpvOpGroupNonUniformBallotFindLSB: return "SpvOpGroupNonUniformBallotFindLSB";
85310e230b6Smaya   case SpvOpGroupNonUniformBallotFindMSB: return "SpvOpGroupNonUniformBallotFindMSB";
85410e230b6Smaya   case SpvOpGroupNonUniformShuffle: return "SpvOpGroupNonUniformShuffle";
85510e230b6Smaya   case SpvOpGroupNonUniformShuffleXor: return "SpvOpGroupNonUniformShuffleXor";
85610e230b6Smaya   case SpvOpGroupNonUniformShuffleUp: return "SpvOpGroupNonUniformShuffleUp";
85710e230b6Smaya   case SpvOpGroupNonUniformShuffleDown: return "SpvOpGroupNonUniformShuffleDown";
85810e230b6Smaya   case SpvOpGroupNonUniformIAdd: return "SpvOpGroupNonUniformIAdd";
85910e230b6Smaya   case SpvOpGroupNonUniformFAdd: return "SpvOpGroupNonUniformFAdd";
86010e230b6Smaya   case SpvOpGroupNonUniformIMul: return "SpvOpGroupNonUniformIMul";
86110e230b6Smaya   case SpvOpGroupNonUniformFMul: return "SpvOpGroupNonUniformFMul";
86210e230b6Smaya   case SpvOpGroupNonUniformSMin: return "SpvOpGroupNonUniformSMin";
86310e230b6Smaya   case SpvOpGroupNonUniformUMin: return "SpvOpGroupNonUniformUMin";
86410e230b6Smaya   case SpvOpGroupNonUniformFMin: return "SpvOpGroupNonUniformFMin";
86510e230b6Smaya   case SpvOpGroupNonUniformSMax: return "SpvOpGroupNonUniformSMax";
86610e230b6Smaya   case SpvOpGroupNonUniformUMax: return "SpvOpGroupNonUniformUMax";
86710e230b6Smaya   case SpvOpGroupNonUniformFMax: return "SpvOpGroupNonUniformFMax";
86810e230b6Smaya   case SpvOpGroupNonUniformBitwiseAnd: return "SpvOpGroupNonUniformBitwiseAnd";
86910e230b6Smaya   case SpvOpGroupNonUniformBitwiseOr: return "SpvOpGroupNonUniformBitwiseOr";
87010e230b6Smaya   case SpvOpGroupNonUniformBitwiseXor: return "SpvOpGroupNonUniformBitwiseXor";
87110e230b6Smaya   case SpvOpGroupNonUniformLogicalAnd: return "SpvOpGroupNonUniformLogicalAnd";
87210e230b6Smaya   case SpvOpGroupNonUniformLogicalOr: return "SpvOpGroupNonUniformLogicalOr";
87310e230b6Smaya   case SpvOpGroupNonUniformLogicalXor: return "SpvOpGroupNonUniformLogicalXor";
87410e230b6Smaya   case SpvOpGroupNonUniformQuadBroadcast: return "SpvOpGroupNonUniformQuadBroadcast";
87510e230b6Smaya   case SpvOpGroupNonUniformQuadSwap: return "SpvOpGroupNonUniformQuadSwap";
87610e230b6Smaya   case SpvOpSubgroupBallotKHR: return "SpvOpSubgroupBallotKHR";
87710e230b6Smaya   case SpvOpSubgroupFirstInvocationKHR: return "SpvOpSubgroupFirstInvocationKHR";
87810e230b6Smaya   case SpvOpSubgroupAllKHR: return "SpvOpSubgroupAllKHR";
87910e230b6Smaya   case SpvOpSubgroupAnyKHR: return "SpvOpSubgroupAnyKHR";
88010e230b6Smaya   case SpvOpSubgroupAllEqualKHR: return "SpvOpSubgroupAllEqualKHR";
88110e230b6Smaya   case SpvOpSubgroupReadInvocationKHR: return "SpvOpSubgroupReadInvocationKHR";
88210e230b6Smaya   case SpvOpGroupIAddNonUniformAMD: return "SpvOpGroupIAddNonUniformAMD";
88310e230b6Smaya   case SpvOpGroupFAddNonUniformAMD: return "SpvOpGroupFAddNonUniformAMD";
88410e230b6Smaya   case SpvOpGroupFMinNonUniformAMD: return "SpvOpGroupFMinNonUniformAMD";
88510e230b6Smaya   case SpvOpGroupUMinNonUniformAMD: return "SpvOpGroupUMinNonUniformAMD";
88610e230b6Smaya   case SpvOpGroupSMinNonUniformAMD: return "SpvOpGroupSMinNonUniformAMD";
88710e230b6Smaya   case SpvOpGroupFMaxNonUniformAMD: return "SpvOpGroupFMaxNonUniformAMD";
88810e230b6Smaya   case SpvOpGroupUMaxNonUniformAMD: return "SpvOpGroupUMaxNonUniformAMD";
88910e230b6Smaya   case SpvOpGroupSMaxNonUniformAMD: return "SpvOpGroupSMaxNonUniformAMD";
89010e230b6Smaya   case SpvOpFragmentMaskFetchAMD: return "SpvOpFragmentMaskFetchAMD";
89110e230b6Smaya   case SpvOpFragmentFetchAMD: return "SpvOpFragmentFetchAMD";
89210e230b6Smaya   case SpvOpWritePackedPrimitiveIndices4x8NV: return "SpvOpWritePackedPrimitiveIndices4x8NV";
89310e230b6Smaya   case SpvOpReportIntersectionNV: return "SpvOpReportIntersectionNV";
89410e230b6Smaya   case SpvOpIgnoreIntersectionNV: return "SpvOpIgnoreIntersectionNV";
89510e230b6Smaya   case SpvOpTerminateRayNV: return "SpvOpTerminateRayNV";
89610e230b6Smaya   case SpvOpTraceNV: return "SpvOpTraceNV";
89710e230b6Smaya   case SpvOpTypeAccelerationStructureNV: return "SpvOpTypeAccelerationStructureNV";
89810e230b6Smaya   case SpvOpExecuteCallableNV: return "SpvOpExecuteCallableNV";
89910e230b6Smaya   case SpvOpSubgroupShuffleINTEL: return "SpvOpSubgroupShuffleINTEL";
90010e230b6Smaya   case SpvOpSubgroupShuffleDownINTEL: return "SpvOpSubgroupShuffleDownINTEL";
90110e230b6Smaya   case SpvOpSubgroupShuffleUpINTEL: return "SpvOpSubgroupShuffleUpINTEL";
90210e230b6Smaya   case SpvOpSubgroupShuffleXorINTEL: return "SpvOpSubgroupShuffleXorINTEL";
90310e230b6Smaya   case SpvOpSubgroupBlockReadINTEL: return "SpvOpSubgroupBlockReadINTEL";
90410e230b6Smaya   case SpvOpSubgroupBlockWriteINTEL: return "SpvOpSubgroupBlockWriteINTEL";
90510e230b6Smaya   case SpvOpSubgroupImageBlockReadINTEL: return "SpvOpSubgroupImageBlockReadINTEL";
90610e230b6Smaya   case SpvOpSubgroupImageBlockWriteINTEL: return "SpvOpSubgroupImageBlockWriteINTEL";
90710e230b6Smaya   case SpvOpDecorateStringGOOGLE: return "SpvOpDecorateStringGOOGLE";
90810e230b6Smaya   case SpvOpMemberDecorateStringGOOGLE: return "SpvOpMemberDecorateStringGOOGLE";
90910e230b6Smaya   case SpvOpGroupNonUniformPartitionNV: return "SpvOpGroupNonUniformPartitionNV";
91010e230b6Smaya   case SpvOpImageSampleFootprintNV: return "SpvOpImageSampleFootprintNV";
91110e230b6Smaya   case SpvOpMax: break; /* silence warnings about unhandled enums. */
91210e230b6Smaya   }
91310e230b6Smaya
91410e230b6Smaya   return "unknown";
91510e230b6Smaya}
916