Home | History | Annotate | Line # | Download | only in spirv
      1 /* DO NOT EDIT - This file is generated automatically by spirv_info_c.py script */
      2 
      3 /*
      4  * Copyright (C) 2017 Intel Corporation
      5  *
      6  * Permission is hereby granted, free of charge, to any person obtaining a
      7  * copy of this software and associated documentation files (the "Software"),
      8  * to deal in the Software without restriction, including without limitation
      9  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
     10  * and/or sell copies of the Software, and to permit persons to whom the
     11  * Software is furnished to do so, subject to the following conditions:
     12  *
     13  * The above copyright notice and this permission notice (including the next
     14  * paragraph) shall be included in all copies or substantial portions of the
     15  * Software.
     16  *
     17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     20  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     21  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     22  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     23  * DEALINGS IN THE SOFTWARE.
     24  */
     25 #include "spirv_info.h"
     26 
     27 const char *
     28 spirv_addressingmodel_to_string(SpvAddressingModel v)
     29 {
     30    switch (v) {
     31    case SpvAddressingModelLogical: return "SpvAddressingModelLogical";
     32    case SpvAddressingModelPhysical32: return "SpvAddressingModelPhysical32";
     33    case SpvAddressingModelPhysical64: return "SpvAddressingModelPhysical64";
     34    case SpvAddressingModelPhysicalStorageBuffer64: return "SpvAddressingModelPhysicalStorageBuffer64";
     35    case SpvAddressingModelMax: break; /* silence warnings about unhandled enums. */
     36    }
     37 
     38    return "unknown";
     39 }
     40 
     41 const char *
     42 spirv_builtin_to_string(SpvBuiltIn v)
     43 {
     44    switch (v) {
     45    case SpvBuiltInPosition: return "SpvBuiltInPosition";
     46    case SpvBuiltInPointSize: return "SpvBuiltInPointSize";
     47    case SpvBuiltInClipDistance: return "SpvBuiltInClipDistance";
     48    case SpvBuiltInCullDistance: return "SpvBuiltInCullDistance";
     49    case SpvBuiltInVertexId: return "SpvBuiltInVertexId";
     50    case SpvBuiltInInstanceId: return "SpvBuiltInInstanceId";
     51    case SpvBuiltInPrimitiveId: return "SpvBuiltInPrimitiveId";
     52    case SpvBuiltInInvocationId: return "SpvBuiltInInvocationId";
     53    case SpvBuiltInLayer: return "SpvBuiltInLayer";
     54    case SpvBuiltInViewportIndex: return "SpvBuiltInViewportIndex";
     55    case SpvBuiltInTessLevelOuter: return "SpvBuiltInTessLevelOuter";
     56    case SpvBuiltInTessLevelInner: return "SpvBuiltInTessLevelInner";
     57    case SpvBuiltInTessCoord: return "SpvBuiltInTessCoord";
     58    case SpvBuiltInPatchVertices: return "SpvBuiltInPatchVertices";
     59    case SpvBuiltInFragCoord: return "SpvBuiltInFragCoord";
     60    case SpvBuiltInPointCoord: return "SpvBuiltInPointCoord";
     61    case SpvBuiltInFrontFacing: return "SpvBuiltInFrontFacing";
     62    case SpvBuiltInSampleId: return "SpvBuiltInSampleId";
     63    case SpvBuiltInSamplePosition: return "SpvBuiltInSamplePosition";
     64    case SpvBuiltInSampleMask: return "SpvBuiltInSampleMask";
     65    case SpvBuiltInFragDepth: return "SpvBuiltInFragDepth";
     66    case SpvBuiltInHelperInvocation: return "SpvBuiltInHelperInvocation";
     67    case SpvBuiltInNumWorkgroups: return "SpvBuiltInNumWorkgroups";
     68    case SpvBuiltInWorkgroupSize: return "SpvBuiltInWorkgroupSize";
     69    case SpvBuiltInWorkgroupId: return "SpvBuiltInWorkgroupId";
     70    case SpvBuiltInLocalInvocationId: return "SpvBuiltInLocalInvocationId";
     71    case SpvBuiltInGlobalInvocationId: return "SpvBuiltInGlobalInvocationId";
     72    case SpvBuiltInLocalInvocationIndex: return "SpvBuiltInLocalInvocationIndex";
     73    case SpvBuiltInWorkDim: return "SpvBuiltInWorkDim";
     74    case SpvBuiltInGlobalSize: return "SpvBuiltInGlobalSize";
     75    case SpvBuiltInEnqueuedWorkgroupSize: return "SpvBuiltInEnqueuedWorkgroupSize";
     76    case SpvBuiltInGlobalOffset: return "SpvBuiltInGlobalOffset";
     77    case SpvBuiltInGlobalLinearId: return "SpvBuiltInGlobalLinearId";
     78    case SpvBuiltInSubgroupSize: return "SpvBuiltInSubgroupSize";
     79    case SpvBuiltInSubgroupMaxSize: return "SpvBuiltInSubgroupMaxSize";
     80    case SpvBuiltInNumSubgroups: return "SpvBuiltInNumSubgroups";
     81    case SpvBuiltInNumEnqueuedSubgroups: return "SpvBuiltInNumEnqueuedSubgroups";
     82    case SpvBuiltInSubgroupId: return "SpvBuiltInSubgroupId";
     83    case SpvBuiltInSubgroupLocalInvocationId: return "SpvBuiltInSubgroupLocalInvocationId";
     84    case SpvBuiltInVertexIndex: return "SpvBuiltInVertexIndex";
     85    case SpvBuiltInInstanceIndex: return "SpvBuiltInInstanceIndex";
     86    case SpvBuiltInSubgroupEqMask: return "SpvBuiltInSubgroupEqMask";
     87    case SpvBuiltInSubgroupGeMask: return "SpvBuiltInSubgroupGeMask";
     88    case SpvBuiltInSubgroupGtMask: return "SpvBuiltInSubgroupGtMask";
     89    case SpvBuiltInSubgroupLeMask: return "SpvBuiltInSubgroupLeMask";
     90    case SpvBuiltInSubgroupLtMask: return "SpvBuiltInSubgroupLtMask";
     91    case SpvBuiltInBaseVertex: return "SpvBuiltInBaseVertex";
     92    case SpvBuiltInBaseInstance: return "SpvBuiltInBaseInstance";
     93    case SpvBuiltInDrawIndex: return "SpvBuiltInDrawIndex";
     94    case SpvBuiltInPrimitiveShadingRateKHR: return "SpvBuiltInPrimitiveShadingRateKHR";
     95    case SpvBuiltInDeviceIndex: return "SpvBuiltInDeviceIndex";
     96    case SpvBuiltInViewIndex: return "SpvBuiltInViewIndex";
     97    case SpvBuiltInShadingRateKHR: return "SpvBuiltInShadingRateKHR";
     98    case SpvBuiltInBaryCoordNoPerspAMD: return "SpvBuiltInBaryCoordNoPerspAMD";
     99    case SpvBuiltInBaryCoordNoPerspCentroidAMD: return "SpvBuiltInBaryCoordNoPerspCentroidAMD";
    100    case SpvBuiltInBaryCoordNoPerspSampleAMD: return "SpvBuiltInBaryCoordNoPerspSampleAMD";
    101    case SpvBuiltInBaryCoordSmoothAMD: return "SpvBuiltInBaryCoordSmoothAMD";
    102    case SpvBuiltInBaryCoordSmoothCentroidAMD: return "SpvBuiltInBaryCoordSmoothCentroidAMD";
    103    case SpvBuiltInBaryCoordSmoothSampleAMD: return "SpvBuiltInBaryCoordSmoothSampleAMD";
    104    case SpvBuiltInBaryCoordPullModelAMD: return "SpvBuiltInBaryCoordPullModelAMD";
    105    case SpvBuiltInFragStencilRefEXT: return "SpvBuiltInFragStencilRefEXT";
    106    case SpvBuiltInViewportMaskNV: return "SpvBuiltInViewportMaskNV";
    107    case SpvBuiltInSecondaryPositionNV: return "SpvBuiltInSecondaryPositionNV";
    108    case SpvBuiltInSecondaryViewportMaskNV: return "SpvBuiltInSecondaryViewportMaskNV";
    109    case SpvBuiltInPositionPerViewNV: return "SpvBuiltInPositionPerViewNV";
    110    case SpvBuiltInViewportMaskPerViewNV: return "SpvBuiltInViewportMaskPerViewNV";
    111    case SpvBuiltInFullyCoveredEXT: return "SpvBuiltInFullyCoveredEXT";
    112    case SpvBuiltInTaskCountNV: return "SpvBuiltInTaskCountNV";
    113    case SpvBuiltInPrimitiveCountNV: return "SpvBuiltInPrimitiveCountNV";
    114    case SpvBuiltInPrimitiveIndicesNV: return "SpvBuiltInPrimitiveIndicesNV";
    115    case SpvBuiltInClipDistancePerViewNV: return "SpvBuiltInClipDistancePerViewNV";
    116    case SpvBuiltInCullDistancePerViewNV: return "SpvBuiltInCullDistancePerViewNV";
    117    case SpvBuiltInLayerPerViewNV: return "SpvBuiltInLayerPerViewNV";
    118    case SpvBuiltInMeshViewCountNV: return "SpvBuiltInMeshViewCountNV";
    119    case SpvBuiltInMeshViewIndicesNV: return "SpvBuiltInMeshViewIndicesNV";
    120    case SpvBuiltInBaryCoordNV: return "SpvBuiltInBaryCoordNV";
    121    case SpvBuiltInBaryCoordNoPerspNV: return "SpvBuiltInBaryCoordNoPerspNV";
    122    case SpvBuiltInFragSizeEXT: return "SpvBuiltInFragSizeEXT";
    123    case SpvBuiltInFragInvocationCountEXT: return "SpvBuiltInFragInvocationCountEXT";
    124    case SpvBuiltInLaunchIdNV: return "SpvBuiltInLaunchIdNV";
    125    case SpvBuiltInLaunchSizeNV: return "SpvBuiltInLaunchSizeNV";
    126    case SpvBuiltInWorldRayOriginNV: return "SpvBuiltInWorldRayOriginNV";
    127    case SpvBuiltInWorldRayDirectionNV: return "SpvBuiltInWorldRayDirectionNV";
    128    case SpvBuiltInObjectRayOriginNV: return "SpvBuiltInObjectRayOriginNV";
    129    case SpvBuiltInObjectRayDirectionNV: return "SpvBuiltInObjectRayDirectionNV";
    130    case SpvBuiltInRayTminNV: return "SpvBuiltInRayTminNV";
    131    case SpvBuiltInRayTmaxNV: return "SpvBuiltInRayTmaxNV";
    132    case SpvBuiltInInstanceCustomIndexNV: return "SpvBuiltInInstanceCustomIndexNV";
    133    case SpvBuiltInObjectToWorldNV: return "SpvBuiltInObjectToWorldNV";
    134    case SpvBuiltInWorldToObjectNV: return "SpvBuiltInWorldToObjectNV";
    135    case SpvBuiltInHitTNV: return "SpvBuiltInHitTNV";
    136    case SpvBuiltInHitKindNV: return "SpvBuiltInHitKindNV";
    137    case SpvBuiltInIncomingRayFlagsNV: return "SpvBuiltInIncomingRayFlagsNV";
    138    case SpvBuiltInRayGeometryIndexKHR: return "SpvBuiltInRayGeometryIndexKHR";
    139    case SpvBuiltInWarpsPerSMNV: return "SpvBuiltInWarpsPerSMNV";
    140    case SpvBuiltInSMCountNV: return "SpvBuiltInSMCountNV";
    141    case SpvBuiltInWarpIDNV: return "SpvBuiltInWarpIDNV";
    142    case SpvBuiltInSMIDNV: return "SpvBuiltInSMIDNV";
    143    case SpvBuiltInMax: break; /* silence warnings about unhandled enums. */
    144    }
    145 
    146    return "unknown";
    147 }
    148 
    149 const char *
    150 spirv_capability_to_string(SpvCapability v)
    151 {
    152    switch (v) {
    153    case SpvCapabilityMatrix: return "SpvCapabilityMatrix";
    154    case SpvCapabilityShader: return "SpvCapabilityShader";
    155    case SpvCapabilityGeometry: return "SpvCapabilityGeometry";
    156    case SpvCapabilityTessellation: return "SpvCapabilityTessellation";
    157    case SpvCapabilityAddresses: return "SpvCapabilityAddresses";
    158    case SpvCapabilityLinkage: return "SpvCapabilityLinkage";
    159    case SpvCapabilityKernel: return "SpvCapabilityKernel";
    160    case SpvCapabilityVector16: return "SpvCapabilityVector16";
    161    case SpvCapabilityFloat16Buffer: return "SpvCapabilityFloat16Buffer";
    162    case SpvCapabilityFloat16: return "SpvCapabilityFloat16";
    163    case SpvCapabilityFloat64: return "SpvCapabilityFloat64";
    164    case SpvCapabilityInt64: return "SpvCapabilityInt64";
    165    case SpvCapabilityInt64Atomics: return "SpvCapabilityInt64Atomics";
    166    case SpvCapabilityImageBasic: return "SpvCapabilityImageBasic";
    167    case SpvCapabilityImageReadWrite: return "SpvCapabilityImageReadWrite";
    168    case SpvCapabilityImageMipmap: return "SpvCapabilityImageMipmap";
    169    case SpvCapabilityPipes: return "SpvCapabilityPipes";
    170    case SpvCapabilityGroups: return "SpvCapabilityGroups";
    171    case SpvCapabilityDeviceEnqueue: return "SpvCapabilityDeviceEnqueue";
    172    case SpvCapabilityLiteralSampler: return "SpvCapabilityLiteralSampler";
    173    case SpvCapabilityAtomicStorage: return "SpvCapabilityAtomicStorage";
    174    case SpvCapabilityInt16: return "SpvCapabilityInt16";
    175    case SpvCapabilityTessellationPointSize: return "SpvCapabilityTessellationPointSize";
    176    case SpvCapabilityGeometryPointSize: return "SpvCapabilityGeometryPointSize";
    177    case SpvCapabilityImageGatherExtended: return "SpvCapabilityImageGatherExtended";
    178    case SpvCapabilityStorageImageMultisample: return "SpvCapabilityStorageImageMultisample";
    179    case SpvCapabilityUniformBufferArrayDynamicIndexing: return "SpvCapabilityUniformBufferArrayDynamicIndexing";
    180    case SpvCapabilitySampledImageArrayDynamicIndexing: return "SpvCapabilitySampledImageArrayDynamicIndexing";
    181    case SpvCapabilityStorageBufferArrayDynamicIndexing: return "SpvCapabilityStorageBufferArrayDynamicIndexing";
    182    case SpvCapabilityStorageImageArrayDynamicIndexing: return "SpvCapabilityStorageImageArrayDynamicIndexing";
    183    case SpvCapabilityClipDistance: return "SpvCapabilityClipDistance";
    184    case SpvCapabilityCullDistance: return "SpvCapabilityCullDistance";
    185    case SpvCapabilityImageCubeArray: return "SpvCapabilityImageCubeArray";
    186    case SpvCapabilitySampleRateShading: return "SpvCapabilitySampleRateShading";
    187    case SpvCapabilityImageRect: return "SpvCapabilityImageRect";
    188    case SpvCapabilitySampledRect: return "SpvCapabilitySampledRect";
    189    case SpvCapabilityGenericPointer: return "SpvCapabilityGenericPointer";
    190    case SpvCapabilityInt8: return "SpvCapabilityInt8";
    191    case SpvCapabilityInputAttachment: return "SpvCapabilityInputAttachment";
    192    case SpvCapabilitySparseResidency: return "SpvCapabilitySparseResidency";
    193    case SpvCapabilityMinLod: return "SpvCapabilityMinLod";
    194    case SpvCapabilitySampled1D: return "SpvCapabilitySampled1D";
    195    case SpvCapabilityImage1D: return "SpvCapabilityImage1D";
    196    case SpvCapabilitySampledCubeArray: return "SpvCapabilitySampledCubeArray";
    197    case SpvCapabilitySampledBuffer: return "SpvCapabilitySampledBuffer";
    198    case SpvCapabilityImageBuffer: return "SpvCapabilityImageBuffer";
    199    case SpvCapabilityImageMSArray: return "SpvCapabilityImageMSArray";
    200    case SpvCapabilityStorageImageExtendedFormats: return "SpvCapabilityStorageImageExtendedFormats";
    201    case SpvCapabilityImageQuery: return "SpvCapabilityImageQuery";
    202    case SpvCapabilityDerivativeControl: return "SpvCapabilityDerivativeControl";
    203    case SpvCapabilityInterpolationFunction: return "SpvCapabilityInterpolationFunction";
    204    case SpvCapabilityTransformFeedback: return "SpvCapabilityTransformFeedback";
    205    case SpvCapabilityGeometryStreams: return "SpvCapabilityGeometryStreams";
    206    case SpvCapabilityStorageImageReadWithoutFormat: return "SpvCapabilityStorageImageReadWithoutFormat";
    207    case SpvCapabilityStorageImageWriteWithoutFormat: return "SpvCapabilityStorageImageWriteWithoutFormat";
    208    case SpvCapabilityMultiViewport: return "SpvCapabilityMultiViewport";
    209    case SpvCapabilitySubgroupDispatch: return "SpvCapabilitySubgroupDispatch";
    210    case SpvCapabilityNamedBarrier: return "SpvCapabilityNamedBarrier";
    211    case SpvCapabilityPipeStorage: return "SpvCapabilityPipeStorage";
    212    case SpvCapabilityGroupNonUniform: return "SpvCapabilityGroupNonUniform";
    213    case SpvCapabilityGroupNonUniformVote: return "SpvCapabilityGroupNonUniformVote";
    214    case SpvCapabilityGroupNonUniformArithmetic: return "SpvCapabilityGroupNonUniformArithmetic";
    215    case SpvCapabilityGroupNonUniformBallot: return "SpvCapabilityGroupNonUniformBallot";
    216    case SpvCapabilityGroupNonUniformShuffle: return "SpvCapabilityGroupNonUniformShuffle";
    217    case SpvCapabilityGroupNonUniformShuffleRelative: return "SpvCapabilityGroupNonUniformShuffleRelative";
    218    case SpvCapabilityGroupNonUniformClustered: return "SpvCapabilityGroupNonUniformClustered";
    219    case SpvCapabilityGroupNonUniformQuad: return "SpvCapabilityGroupNonUniformQuad";
    220    case SpvCapabilityShaderLayer: return "SpvCapabilityShaderLayer";
    221    case SpvCapabilityShaderViewportIndex: return "SpvCapabilityShaderViewportIndex";
    222    case SpvCapabilityFragmentShadingRateKHR: return "SpvCapabilityFragmentShadingRateKHR";
    223    case SpvCapabilitySubgroupBallotKHR: return "SpvCapabilitySubgroupBallotKHR";
    224    case SpvCapabilityDrawParameters: return "SpvCapabilityDrawParameters";
    225    case SpvCapabilityWorkgroupMemoryExplicitLayoutKHR: return "SpvCapabilityWorkgroupMemoryExplicitLayoutKHR";
    226    case SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR";
    227    case SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR";
    228    case SpvCapabilitySubgroupVoteKHR: return "SpvCapabilitySubgroupVoteKHR";
    229    case SpvCapabilityStorageBuffer16BitAccess: return "SpvCapabilityStorageBuffer16BitAccess";
    230    case SpvCapabilityUniformAndStorageBuffer16BitAccess: return "SpvCapabilityUniformAndStorageBuffer16BitAccess";
    231    case SpvCapabilityStoragePushConstant16: return "SpvCapabilityStoragePushConstant16";
    232    case SpvCapabilityStorageInputOutput16: return "SpvCapabilityStorageInputOutput16";
    233    case SpvCapabilityDeviceGroup: return "SpvCapabilityDeviceGroup";
    234    case SpvCapabilityMultiView: return "SpvCapabilityMultiView";
    235    case SpvCapabilityVariablePointersStorageBuffer: return "SpvCapabilityVariablePointersStorageBuffer";
    236    case SpvCapabilityVariablePointers: return "SpvCapabilityVariablePointers";
    237    case SpvCapabilityAtomicStorageOps: return "SpvCapabilityAtomicStorageOps";
    238    case SpvCapabilitySampleMaskPostDepthCoverage: return "SpvCapabilitySampleMaskPostDepthCoverage";
    239    case SpvCapabilityStorageBuffer8BitAccess: return "SpvCapabilityStorageBuffer8BitAccess";
    240    case SpvCapabilityUniformAndStorageBuffer8BitAccess: return "SpvCapabilityUniformAndStorageBuffer8BitAccess";
    241    case SpvCapabilityStoragePushConstant8: return "SpvCapabilityStoragePushConstant8";
    242    case SpvCapabilityDenormPreserve: return "SpvCapabilityDenormPreserve";
    243    case SpvCapabilityDenormFlushToZero: return "SpvCapabilityDenormFlushToZero";
    244    case SpvCapabilitySignedZeroInfNanPreserve: return "SpvCapabilitySignedZeroInfNanPreserve";
    245    case SpvCapabilityRoundingModeRTE: return "SpvCapabilityRoundingModeRTE";
    246    case SpvCapabilityRoundingModeRTZ: return "SpvCapabilityRoundingModeRTZ";
    247    case SpvCapabilityRayQueryProvisionalKHR: return "SpvCapabilityRayQueryProvisionalKHR";
    248    case SpvCapabilityRayQueryKHR: return "SpvCapabilityRayQueryKHR";
    249    case SpvCapabilityRayTraversalPrimitiveCullingKHR: return "SpvCapabilityRayTraversalPrimitiveCullingKHR";
    250    case SpvCapabilityRayTracingKHR: return "SpvCapabilityRayTracingKHR";
    251    case SpvCapabilityFloat16ImageAMD: return "SpvCapabilityFloat16ImageAMD";
    252    case SpvCapabilityImageGatherBiasLodAMD: return "SpvCapabilityImageGatherBiasLodAMD";
    253    case SpvCapabilityFragmentMaskAMD: return "SpvCapabilityFragmentMaskAMD";
    254    case SpvCapabilityStencilExportEXT: return "SpvCapabilityStencilExportEXT";
    255    case SpvCapabilityImageReadWriteLodAMD: return "SpvCapabilityImageReadWriteLodAMD";
    256    case SpvCapabilityInt64ImageEXT: return "SpvCapabilityInt64ImageEXT";
    257    case SpvCapabilityShaderClockKHR: return "SpvCapabilityShaderClockKHR";
    258    case SpvCapabilitySampleMaskOverrideCoverageNV: return "SpvCapabilitySampleMaskOverrideCoverageNV";
    259    case SpvCapabilityGeometryShaderPassthroughNV: return "SpvCapabilityGeometryShaderPassthroughNV";
    260    case SpvCapabilityShaderViewportIndexLayerEXT: return "SpvCapabilityShaderViewportIndexLayerEXT";
    261    case SpvCapabilityShaderViewportMaskNV: return "SpvCapabilityShaderViewportMaskNV";
    262    case SpvCapabilityShaderStereoViewNV: return "SpvCapabilityShaderStereoViewNV";
    263    case SpvCapabilityPerViewAttributesNV: return "SpvCapabilityPerViewAttributesNV";
    264    case SpvCapabilityFragmentFullyCoveredEXT: return "SpvCapabilityFragmentFullyCoveredEXT";
    265    case SpvCapabilityMeshShadingNV: return "SpvCapabilityMeshShadingNV";
    266    case SpvCapabilityImageFootprintNV: return "SpvCapabilityImageFootprintNV";
    267    case SpvCapabilityFragmentBarycentricNV: return "SpvCapabilityFragmentBarycentricNV";
    268    case SpvCapabilityComputeDerivativeGroupQuadsNV: return "SpvCapabilityComputeDerivativeGroupQuadsNV";
    269    case SpvCapabilityFragmentDensityEXT: return "SpvCapabilityFragmentDensityEXT";
    270    case SpvCapabilityGroupNonUniformPartitionedNV: return "SpvCapabilityGroupNonUniformPartitionedNV";
    271    case SpvCapabilityShaderNonUniform: return "SpvCapabilityShaderNonUniform";
    272    case SpvCapabilityRuntimeDescriptorArray: return "SpvCapabilityRuntimeDescriptorArray";
    273    case SpvCapabilityInputAttachmentArrayDynamicIndexing: return "SpvCapabilityInputAttachmentArrayDynamicIndexing";
    274    case SpvCapabilityUniformTexelBufferArrayDynamicIndexing: return "SpvCapabilityUniformTexelBufferArrayDynamicIndexing";
    275    case SpvCapabilityStorageTexelBufferArrayDynamicIndexing: return "SpvCapabilityStorageTexelBufferArrayDynamicIndexing";
    276    case SpvCapabilityUniformBufferArrayNonUniformIndexing: return "SpvCapabilityUniformBufferArrayNonUniformIndexing";
    277    case SpvCapabilitySampledImageArrayNonUniformIndexing: return "SpvCapabilitySampledImageArrayNonUniformIndexing";
    278    case SpvCapabilityStorageBufferArrayNonUniformIndexing: return "SpvCapabilityStorageBufferArrayNonUniformIndexing";
    279    case SpvCapabilityStorageImageArrayNonUniformIndexing: return "SpvCapabilityStorageImageArrayNonUniformIndexing";
    280    case SpvCapabilityInputAttachmentArrayNonUniformIndexing: return "SpvCapabilityInputAttachmentArrayNonUniformIndexing";
    281    case SpvCapabilityUniformTexelBufferArrayNonUniformIndexing: return "SpvCapabilityUniformTexelBufferArrayNonUniformIndexing";
    282    case SpvCapabilityStorageTexelBufferArrayNonUniformIndexing: return "SpvCapabilityStorageTexelBufferArrayNonUniformIndexing";
    283    case SpvCapabilityRayTracingNV: return "SpvCapabilityRayTracingNV";
    284    case SpvCapabilityVulkanMemoryModel: return "SpvCapabilityVulkanMemoryModel";
    285    case SpvCapabilityVulkanMemoryModelDeviceScope: return "SpvCapabilityVulkanMemoryModelDeviceScope";
    286    case SpvCapabilityPhysicalStorageBufferAddresses: return "SpvCapabilityPhysicalStorageBufferAddresses";
    287    case SpvCapabilityComputeDerivativeGroupLinearNV: return "SpvCapabilityComputeDerivativeGroupLinearNV";
    288    case SpvCapabilityRayTracingProvisionalKHR: return "SpvCapabilityRayTracingProvisionalKHR";
    289    case SpvCapabilityCooperativeMatrixNV: return "SpvCapabilityCooperativeMatrixNV";
    290    case SpvCapabilityFragmentShaderSampleInterlockEXT: return "SpvCapabilityFragmentShaderSampleInterlockEXT";
    291    case SpvCapabilityFragmentShaderShadingRateInterlockEXT: return "SpvCapabilityFragmentShaderShadingRateInterlockEXT";
    292    case SpvCapabilityShaderSMBuiltinsNV: return "SpvCapabilityShaderSMBuiltinsNV";
    293    case SpvCapabilityFragmentShaderPixelInterlockEXT: return "SpvCapabilityFragmentShaderPixelInterlockEXT";
    294    case SpvCapabilityDemoteToHelperInvocationEXT: return "SpvCapabilityDemoteToHelperInvocationEXT";
    295    case SpvCapabilitySubgroupShuffleINTEL: return "SpvCapabilitySubgroupShuffleINTEL";
    296    case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SpvCapabilitySubgroupBufferBlockIOINTEL";
    297    case SpvCapabilitySubgroupImageBlockIOINTEL: return "SpvCapabilitySubgroupImageBlockIOINTEL";
    298    case SpvCapabilitySubgroupImageMediaBlockIOINTEL: return "SpvCapabilitySubgroupImageMediaBlockIOINTEL";
    299    case SpvCapabilityRoundToInfinityINTEL: return "SpvCapabilityRoundToInfinityINTEL";
    300    case SpvCapabilityFloatingPointModeINTEL: return "SpvCapabilityFloatingPointModeINTEL";
    301    case SpvCapabilityIntegerFunctions2INTEL: return "SpvCapabilityIntegerFunctions2INTEL";
    302    case SpvCapabilityFunctionPointersINTEL: return "SpvCapabilityFunctionPointersINTEL";
    303    case SpvCapabilityIndirectReferencesINTEL: return "SpvCapabilityIndirectReferencesINTEL";
    304    case SpvCapabilityAsmINTEL: return "SpvCapabilityAsmINTEL";
    305    case SpvCapabilityAtomicFloat32MinMaxEXT: return "SpvCapabilityAtomicFloat32MinMaxEXT";
    306    case SpvCapabilityAtomicFloat64MinMaxEXT: return "SpvCapabilityAtomicFloat64MinMaxEXT";
    307    case SpvCapabilityAtomicFloat16MinMaxEXT: return "SpvCapabilityAtomicFloat16MinMaxEXT";
    308    case SpvCapabilityVectorComputeINTEL: return "SpvCapabilityVectorComputeINTEL";
    309    case SpvCapabilityVectorAnyINTEL: return "SpvCapabilityVectorAnyINTEL";
    310    case SpvCapabilityExpectAssumeKHR: return "SpvCapabilityExpectAssumeKHR";
    311    case SpvCapabilitySubgroupAvcMotionEstimationINTEL: return "SpvCapabilitySubgroupAvcMotionEstimationINTEL";
    312    case SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL";
    313    case SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL";
    314    case SpvCapabilityVariableLengthArrayINTEL: return "SpvCapabilityVariableLengthArrayINTEL";
    315    case SpvCapabilityFunctionFloatControlINTEL: return "SpvCapabilityFunctionFloatControlINTEL";
    316    case SpvCapabilityFPGAMemoryAttributesINTEL: return "SpvCapabilityFPGAMemoryAttributesINTEL";
    317    case SpvCapabilityFPFastMathModeINTEL: return "SpvCapabilityFPFastMathModeINTEL";
    318    case SpvCapabilityArbitraryPrecisionIntegersINTEL: return "SpvCapabilityArbitraryPrecisionIntegersINTEL";
    319    case SpvCapabilityArbitraryPrecisionFloatingPointINTEL: return "SpvCapabilityArbitraryPrecisionFloatingPointINTEL";
    320    case SpvCapabilityUnstructuredLoopControlsINTEL: return "SpvCapabilityUnstructuredLoopControlsINTEL";
    321    case SpvCapabilityFPGALoopControlsINTEL: return "SpvCapabilityFPGALoopControlsINTEL";
    322    case SpvCapabilityKernelAttributesINTEL: return "SpvCapabilityKernelAttributesINTEL";
    323    case SpvCapabilityFPGAKernelAttributesINTEL: return "SpvCapabilityFPGAKernelAttributesINTEL";
    324    case SpvCapabilityFPGAMemoryAccessesINTEL: return "SpvCapabilityFPGAMemoryAccessesINTEL";
    325    case SpvCapabilityFPGAClusterAttributesINTEL: return "SpvCapabilityFPGAClusterAttributesINTEL";
    326    case SpvCapabilityLoopFuseINTEL: return "SpvCapabilityLoopFuseINTEL";
    327    case SpvCapabilityFPGABufferLocationINTEL: return "SpvCapabilityFPGABufferLocationINTEL";
    328    case SpvCapabilityArbitraryPrecisionFixedPointINTEL: return "SpvCapabilityArbitraryPrecisionFixedPointINTEL";
    329    case SpvCapabilityUSMStorageClassesINTEL: return "SpvCapabilityUSMStorageClassesINTEL";
    330    case SpvCapabilityIOPipesINTEL: return "SpvCapabilityIOPipesINTEL";
    331    case SpvCapabilityBlockingPipesINTEL: return "SpvCapabilityBlockingPipesINTEL";
    332    case SpvCapabilityFPGARegINTEL: return "SpvCapabilityFPGARegINTEL";
    333    case SpvCapabilityDotProductInputAllKHR: return "SpvCapabilityDotProductInputAllKHR";
    334    case SpvCapabilityDotProductInput4x8BitKHR: return "SpvCapabilityDotProductInput4x8BitKHR";
    335    case SpvCapabilityDotProductInput4x8BitPackedKHR: return "SpvCapabilityDotProductInput4x8BitPackedKHR";
    336    case SpvCapabilityDotProductKHR: return "SpvCapabilityDotProductKHR";
    337    case SpvCapabilityBitInstructions: return "SpvCapabilityBitInstructions";
    338    case SpvCapabilityAtomicFloat32AddEXT: return "SpvCapabilityAtomicFloat32AddEXT";
    339    case SpvCapabilityAtomicFloat64AddEXT: return "SpvCapabilityAtomicFloat64AddEXT";
    340    case SpvCapabilityLongConstantCompositeINTEL: return "SpvCapabilityLongConstantCompositeINTEL";
    341    case SpvCapabilityOptNoneINTEL: return "SpvCapabilityOptNoneINTEL";
    342    case SpvCapabilityAtomicFloat16AddEXT: return "SpvCapabilityAtomicFloat16AddEXT";
    343    case SpvCapabilityDebugInfoModuleINTEL: return "SpvCapabilityDebugInfoModuleINTEL";
    344    case SpvCapabilityMax: break; /* silence warnings about unhandled enums. */
    345    }
    346 
    347    return "unknown";
    348 }
    349 
    350 const char *
    351 spirv_decoration_to_string(SpvDecoration v)
    352 {
    353    switch (v) {
    354    case SpvDecorationRelaxedPrecision: return "SpvDecorationRelaxedPrecision";
    355    case SpvDecorationSpecId: return "SpvDecorationSpecId";
    356    case SpvDecorationBlock: return "SpvDecorationBlock";
    357    case SpvDecorationBufferBlock: return "SpvDecorationBufferBlock";
    358    case SpvDecorationRowMajor: return "SpvDecorationRowMajor";
    359    case SpvDecorationColMajor: return "SpvDecorationColMajor";
    360    case SpvDecorationArrayStride: return "SpvDecorationArrayStride";
    361    case SpvDecorationMatrixStride: return "SpvDecorationMatrixStride";
    362    case SpvDecorationGLSLShared: return "SpvDecorationGLSLShared";
    363    case SpvDecorationGLSLPacked: return "SpvDecorationGLSLPacked";
    364    case SpvDecorationCPacked: return "SpvDecorationCPacked";
    365    case SpvDecorationBuiltIn: return "SpvDecorationBuiltIn";
    366    case SpvDecorationNoPerspective: return "SpvDecorationNoPerspective";
    367    case SpvDecorationFlat: return "SpvDecorationFlat";
    368    case SpvDecorationPatch: return "SpvDecorationPatch";
    369    case SpvDecorationCentroid: return "SpvDecorationCentroid";
    370    case SpvDecorationSample: return "SpvDecorationSample";
    371    case SpvDecorationInvariant: return "SpvDecorationInvariant";
    372    case SpvDecorationRestrict: return "SpvDecorationRestrict";
    373    case SpvDecorationAliased: return "SpvDecorationAliased";
    374    case SpvDecorationVolatile: return "SpvDecorationVolatile";
    375    case SpvDecorationConstant: return "SpvDecorationConstant";
    376    case SpvDecorationCoherent: return "SpvDecorationCoherent";
    377    case SpvDecorationNonWritable: return "SpvDecorationNonWritable";
    378    case SpvDecorationNonReadable: return "SpvDecorationNonReadable";
    379    case SpvDecorationUniform: return "SpvDecorationUniform";
    380    case SpvDecorationUniformId: return "SpvDecorationUniformId";
    381    case SpvDecorationSaturatedConversion: return "SpvDecorationSaturatedConversion";
    382    case SpvDecorationStream: return "SpvDecorationStream";
    383    case SpvDecorationLocation: return "SpvDecorationLocation";
    384    case SpvDecorationComponent: return "SpvDecorationComponent";
    385    case SpvDecorationIndex: return "SpvDecorationIndex";
    386    case SpvDecorationBinding: return "SpvDecorationBinding";
    387    case SpvDecorationDescriptorSet: return "SpvDecorationDescriptorSet";
    388    case SpvDecorationOffset: return "SpvDecorationOffset";
    389    case SpvDecorationXfbBuffer: return "SpvDecorationXfbBuffer";
    390    case SpvDecorationXfbStride: return "SpvDecorationXfbStride";
    391    case SpvDecorationFuncParamAttr: return "SpvDecorationFuncParamAttr";
    392    case SpvDecorationFPRoundingMode: return "SpvDecorationFPRoundingMode";
    393    case SpvDecorationFPFastMathMode: return "SpvDecorationFPFastMathMode";
    394    case SpvDecorationLinkageAttributes: return "SpvDecorationLinkageAttributes";
    395    case SpvDecorationNoContraction: return "SpvDecorationNoContraction";
    396    case SpvDecorationInputAttachmentIndex: return "SpvDecorationInputAttachmentIndex";
    397    case SpvDecorationAlignment: return "SpvDecorationAlignment";
    398    case SpvDecorationMaxByteOffset: return "SpvDecorationMaxByteOffset";
    399    case SpvDecorationAlignmentId: return "SpvDecorationAlignmentId";
    400    case SpvDecorationMaxByteOffsetId: return "SpvDecorationMaxByteOffsetId";
    401    case SpvDecorationNoSignedWrap: return "SpvDecorationNoSignedWrap";
    402    case SpvDecorationNoUnsignedWrap: return "SpvDecorationNoUnsignedWrap";
    403    case SpvDecorationExplicitInterpAMD: return "SpvDecorationExplicitInterpAMD";
    404    case SpvDecorationOverrideCoverageNV: return "SpvDecorationOverrideCoverageNV";
    405    case SpvDecorationPassthroughNV: return "SpvDecorationPassthroughNV";
    406    case SpvDecorationViewportRelativeNV: return "SpvDecorationViewportRelativeNV";
    407    case SpvDecorationSecondaryViewportRelativeNV: return "SpvDecorationSecondaryViewportRelativeNV";
    408    case SpvDecorationPerPrimitiveNV: return "SpvDecorationPerPrimitiveNV";
    409    case SpvDecorationPerViewNV: return "SpvDecorationPerViewNV";
    410    case SpvDecorationPerTaskNV: return "SpvDecorationPerTaskNV";
    411    case SpvDecorationPerVertexNV: return "SpvDecorationPerVertexNV";
    412    case SpvDecorationNonUniform: return "SpvDecorationNonUniform";
    413    case SpvDecorationRestrictPointer: return "SpvDecorationRestrictPointer";
    414    case SpvDecorationAliasedPointer: return "SpvDecorationAliasedPointer";
    415    case SpvDecorationSIMTCallINTEL: return "SpvDecorationSIMTCallINTEL";
    416    case SpvDecorationReferencedIndirectlyINTEL: return "SpvDecorationReferencedIndirectlyINTEL";
    417    case SpvDecorationClobberINTEL: return "SpvDecorationClobberINTEL";
    418    case SpvDecorationSideEffectsINTEL: return "SpvDecorationSideEffectsINTEL";
    419    case SpvDecorationVectorComputeVariableINTEL: return "SpvDecorationVectorComputeVariableINTEL";
    420    case SpvDecorationFuncParamIOKindINTEL: return "SpvDecorationFuncParamIOKindINTEL";
    421    case SpvDecorationVectorComputeFunctionINTEL: return "SpvDecorationVectorComputeFunctionINTEL";
    422    case SpvDecorationStackCallINTEL: return "SpvDecorationStackCallINTEL";
    423    case SpvDecorationGlobalVariableOffsetINTEL: return "SpvDecorationGlobalVariableOffsetINTEL";
    424    case SpvDecorationCounterBuffer: return "SpvDecorationCounterBuffer";
    425    case SpvDecorationUserSemantic: return "SpvDecorationUserSemantic";
    426    case SpvDecorationUserTypeGOOGLE: return "SpvDecorationUserTypeGOOGLE";
    427    case SpvDecorationFunctionRoundingModeINTEL: return "SpvDecorationFunctionRoundingModeINTEL";
    428    case SpvDecorationFunctionDenormModeINTEL: return "SpvDecorationFunctionDenormModeINTEL";
    429    case SpvDecorationRegisterINTEL: return "SpvDecorationRegisterINTEL";
    430    case SpvDecorationMemoryINTEL: return "SpvDecorationMemoryINTEL";
    431    case SpvDecorationNumbanksINTEL: return "SpvDecorationNumbanksINTEL";
    432    case SpvDecorationBankwidthINTEL: return "SpvDecorationBankwidthINTEL";
    433    case SpvDecorationMaxPrivateCopiesINTEL: return "SpvDecorationMaxPrivateCopiesINTEL";
    434    case SpvDecorationSinglepumpINTEL: return "SpvDecorationSinglepumpINTEL";
    435    case SpvDecorationDoublepumpINTEL: return "SpvDecorationDoublepumpINTEL";
    436    case SpvDecorationMaxReplicatesINTEL: return "SpvDecorationMaxReplicatesINTEL";
    437    case SpvDecorationSimpleDualPortINTEL: return "SpvDecorationSimpleDualPortINTEL";
    438    case SpvDecorationMergeINTEL: return "SpvDecorationMergeINTEL";
    439    case SpvDecorationBankBitsINTEL: return "SpvDecorationBankBitsINTEL";
    440    case SpvDecorationForcePow2DepthINTEL: return "SpvDecorationForcePow2DepthINTEL";
    441    case SpvDecorationBurstCoalesceINTEL: return "SpvDecorationBurstCoalesceINTEL";
    442    case SpvDecorationCacheSizeINTEL: return "SpvDecorationCacheSizeINTEL";
    443    case SpvDecorationDontStaticallyCoalesceINTEL: return "SpvDecorationDontStaticallyCoalesceINTEL";
    444    case SpvDecorationPrefetchINTEL: return "SpvDecorationPrefetchINTEL";
    445    case SpvDecorationStallEnableINTEL: return "SpvDecorationStallEnableINTEL";
    446    case SpvDecorationFuseLoopsInFunctionINTEL: return "SpvDecorationFuseLoopsInFunctionINTEL";
    447    case SpvDecorationBufferLocationINTEL: return "SpvDecorationBufferLocationINTEL";
    448    case SpvDecorationIOPipeStorageINTEL: return "SpvDecorationIOPipeStorageINTEL";
    449    case SpvDecorationFunctionFloatingPointModeINTEL: return "SpvDecorationFunctionFloatingPointModeINTEL";
    450    case SpvDecorationSingleElementVectorINTEL: return "SpvDecorationSingleElementVectorINTEL";
    451    case SpvDecorationVectorComputeCallableFunctionINTEL: return "SpvDecorationVectorComputeCallableFunctionINTEL";
    452    case SpvDecorationMax: break; /* silence warnings about unhandled enums. */
    453    }
    454 
    455    return "unknown";
    456 }
    457 
    458 const char *
    459 spirv_dim_to_string(SpvDim v)
    460 {
    461    switch (v) {
    462    case SpvDim1D: return "SpvDim1D";
    463    case SpvDim2D: return "SpvDim2D";
    464    case SpvDim3D: return "SpvDim3D";
    465    case SpvDimCube: return "SpvDimCube";
    466    case SpvDimRect: return "SpvDimRect";
    467    case SpvDimBuffer: return "SpvDimBuffer";
    468    case SpvDimSubpassData: return "SpvDimSubpassData";
    469    case SpvDimMax: break; /* silence warnings about unhandled enums. */
    470    }
    471 
    472    return "unknown";
    473 }
    474 
    475 const char *
    476 spirv_executionmode_to_string(SpvExecutionMode v)
    477 {
    478    switch (v) {
    479    case SpvExecutionModeInvocations: return "SpvExecutionModeInvocations";
    480    case SpvExecutionModeSpacingEqual: return "SpvExecutionModeSpacingEqual";
    481    case SpvExecutionModeSpacingFractionalEven: return "SpvExecutionModeSpacingFractionalEven";
    482    case SpvExecutionModeSpacingFractionalOdd: return "SpvExecutionModeSpacingFractionalOdd";
    483    case SpvExecutionModeVertexOrderCw: return "SpvExecutionModeVertexOrderCw";
    484    case SpvExecutionModeVertexOrderCcw: return "SpvExecutionModeVertexOrderCcw";
    485    case SpvExecutionModePixelCenterInteger: return "SpvExecutionModePixelCenterInteger";
    486    case SpvExecutionModeOriginUpperLeft: return "SpvExecutionModeOriginUpperLeft";
    487    case SpvExecutionModeOriginLowerLeft: return "SpvExecutionModeOriginLowerLeft";
    488    case SpvExecutionModeEarlyFragmentTests: return "SpvExecutionModeEarlyFragmentTests";
    489    case SpvExecutionModePointMode: return "SpvExecutionModePointMode";
    490    case SpvExecutionModeXfb: return "SpvExecutionModeXfb";
    491    case SpvExecutionModeDepthReplacing: return "SpvExecutionModeDepthReplacing";
    492    case SpvExecutionModeDepthGreater: return "SpvExecutionModeDepthGreater";
    493    case SpvExecutionModeDepthLess: return "SpvExecutionModeDepthLess";
    494    case SpvExecutionModeDepthUnchanged: return "SpvExecutionModeDepthUnchanged";
    495    case SpvExecutionModeLocalSize: return "SpvExecutionModeLocalSize";
    496    case SpvExecutionModeLocalSizeHint: return "SpvExecutionModeLocalSizeHint";
    497    case SpvExecutionModeInputPoints: return "SpvExecutionModeInputPoints";
    498    case SpvExecutionModeInputLines: return "SpvExecutionModeInputLines";
    499    case SpvExecutionModeInputLinesAdjacency: return "SpvExecutionModeInputLinesAdjacency";
    500    case SpvExecutionModeTriangles: return "SpvExecutionModeTriangles";
    501    case SpvExecutionModeInputTrianglesAdjacency: return "SpvExecutionModeInputTrianglesAdjacency";
    502    case SpvExecutionModeQuads: return "SpvExecutionModeQuads";
    503    case SpvExecutionModeIsolines: return "SpvExecutionModeIsolines";
    504    case SpvExecutionModeOutputVertices: return "SpvExecutionModeOutputVertices";
    505    case SpvExecutionModeOutputPoints: return "SpvExecutionModeOutputPoints";
    506    case SpvExecutionModeOutputLineStrip: return "SpvExecutionModeOutputLineStrip";
    507    case SpvExecutionModeOutputTriangleStrip: return "SpvExecutionModeOutputTriangleStrip";
    508    case SpvExecutionModeVecTypeHint: return "SpvExecutionModeVecTypeHint";
    509    case SpvExecutionModeContractionOff: return "SpvExecutionModeContractionOff";
    510    case SpvExecutionModeInitializer: return "SpvExecutionModeInitializer";
    511    case SpvExecutionModeFinalizer: return "SpvExecutionModeFinalizer";
    512    case SpvExecutionModeSubgroupSize: return "SpvExecutionModeSubgroupSize";
    513    case SpvExecutionModeSubgroupsPerWorkgroup: return "SpvExecutionModeSubgroupsPerWorkgroup";
    514    case SpvExecutionModeSubgroupsPerWorkgroupId: return "SpvExecutionModeSubgroupsPerWorkgroupId";
    515    case SpvExecutionModeLocalSizeId: return "SpvExecutionModeLocalSizeId";
    516    case SpvExecutionModeLocalSizeHintId: return "SpvExecutionModeLocalSizeHintId";
    517    case SpvExecutionModeSubgroupUniformControlFlowKHR: return "SpvExecutionModeSubgroupUniformControlFlowKHR";
    518    case SpvExecutionModePostDepthCoverage: return "SpvExecutionModePostDepthCoverage";
    519    case SpvExecutionModeDenormPreserve: return "SpvExecutionModeDenormPreserve";
    520    case SpvExecutionModeDenormFlushToZero: return "SpvExecutionModeDenormFlushToZero";
    521    case SpvExecutionModeSignedZeroInfNanPreserve: return "SpvExecutionModeSignedZeroInfNanPreserve";
    522    case SpvExecutionModeRoundingModeRTE: return "SpvExecutionModeRoundingModeRTE";
    523    case SpvExecutionModeRoundingModeRTZ: return "SpvExecutionModeRoundingModeRTZ";
    524    case SpvExecutionModeStencilRefReplacingEXT: return "SpvExecutionModeStencilRefReplacingEXT";
    525    case SpvExecutionModeOutputLinesNV: return "SpvExecutionModeOutputLinesNV";
    526    case SpvExecutionModeOutputPrimitivesNV: return "SpvExecutionModeOutputPrimitivesNV";
    527    case SpvExecutionModeDerivativeGroupQuadsNV: return "SpvExecutionModeDerivativeGroupQuadsNV";
    528    case SpvExecutionModeDerivativeGroupLinearNV: return "SpvExecutionModeDerivativeGroupLinearNV";
    529    case SpvExecutionModeOutputTrianglesNV: return "SpvExecutionModeOutputTrianglesNV";
    530    case SpvExecutionModePixelInterlockOrderedEXT: return "SpvExecutionModePixelInterlockOrderedEXT";
    531    case SpvExecutionModePixelInterlockUnorderedEXT: return "SpvExecutionModePixelInterlockUnorderedEXT";
    532    case SpvExecutionModeSampleInterlockOrderedEXT: return "SpvExecutionModeSampleInterlockOrderedEXT";
    533    case SpvExecutionModeSampleInterlockUnorderedEXT: return "SpvExecutionModeSampleInterlockUnorderedEXT";
    534    case SpvExecutionModeShadingRateInterlockOrderedEXT: return "SpvExecutionModeShadingRateInterlockOrderedEXT";
    535    case SpvExecutionModeShadingRateInterlockUnorderedEXT: return "SpvExecutionModeShadingRateInterlockUnorderedEXT";
    536    case SpvExecutionModeSharedLocalMemorySizeINTEL: return "SpvExecutionModeSharedLocalMemorySizeINTEL";
    537    case SpvExecutionModeRoundingModeRTPINTEL: return "SpvExecutionModeRoundingModeRTPINTEL";
    538    case SpvExecutionModeRoundingModeRTNINTEL: return "SpvExecutionModeRoundingModeRTNINTEL";
    539    case SpvExecutionModeFloatingPointModeALTINTEL: return "SpvExecutionModeFloatingPointModeALTINTEL";
    540    case SpvExecutionModeFloatingPointModeIEEEINTEL: return "SpvExecutionModeFloatingPointModeIEEEINTEL";
    541    case SpvExecutionModeMaxWorkgroupSizeINTEL: return "SpvExecutionModeMaxWorkgroupSizeINTEL";
    542    case SpvExecutionModeMaxWorkDimINTEL: return "SpvExecutionModeMaxWorkDimINTEL";
    543    case SpvExecutionModeNoGlobalOffsetINTEL: return "SpvExecutionModeNoGlobalOffsetINTEL";
    544    case SpvExecutionModeNumSIMDWorkitemsINTEL: return "SpvExecutionModeNumSIMDWorkitemsINTEL";
    545    case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SpvExecutionModeSchedulerTargetFmaxMhzINTEL";
    546    case SpvExecutionModeMax: break; /* silence warnings about unhandled enums. */
    547    }
    548 
    549    return "unknown";
    550 }
    551 
    552 const char *
    553 spirv_executionmodel_to_string(SpvExecutionModel v)
    554 {
    555    switch (v) {
    556    case SpvExecutionModelVertex: return "SpvExecutionModelVertex";
    557    case SpvExecutionModelTessellationControl: return "SpvExecutionModelTessellationControl";
    558    case SpvExecutionModelTessellationEvaluation: return "SpvExecutionModelTessellationEvaluation";
    559    case SpvExecutionModelGeometry: return "SpvExecutionModelGeometry";
    560    case SpvExecutionModelFragment: return "SpvExecutionModelFragment";
    561    case SpvExecutionModelGLCompute: return "SpvExecutionModelGLCompute";
    562    case SpvExecutionModelKernel: return "SpvExecutionModelKernel";
    563    case SpvExecutionModelTaskNV: return "SpvExecutionModelTaskNV";
    564    case SpvExecutionModelMeshNV: return "SpvExecutionModelMeshNV";
    565    case SpvExecutionModelRayGenerationNV: return "SpvExecutionModelRayGenerationNV";
    566    case SpvExecutionModelIntersectionNV: return "SpvExecutionModelIntersectionNV";
    567    case SpvExecutionModelAnyHitNV: return "SpvExecutionModelAnyHitNV";
    568    case SpvExecutionModelClosestHitNV: return "SpvExecutionModelClosestHitNV";
    569    case SpvExecutionModelMissNV: return "SpvExecutionModelMissNV";
    570    case SpvExecutionModelCallableNV: return "SpvExecutionModelCallableNV";
    571    case SpvExecutionModelMax: break; /* silence warnings about unhandled enums. */
    572    }
    573 
    574    return "unknown";
    575 }
    576 
    577 const char *
    578 spirv_imageformat_to_string(SpvImageFormat v)
    579 {
    580    switch (v) {
    581    case SpvImageFormatUnknown: return "SpvImageFormatUnknown";
    582    case SpvImageFormatRgba32f: return "SpvImageFormatRgba32f";
    583    case SpvImageFormatRgba16f: return "SpvImageFormatRgba16f";
    584    case SpvImageFormatR32f: return "SpvImageFormatR32f";
    585    case SpvImageFormatRgba8: return "SpvImageFormatRgba8";
    586    case SpvImageFormatRgba8Snorm: return "SpvImageFormatRgba8Snorm";
    587    case SpvImageFormatRg32f: return "SpvImageFormatRg32f";
    588    case SpvImageFormatRg16f: return "SpvImageFormatRg16f";
    589    case SpvImageFormatR11fG11fB10f: return "SpvImageFormatR11fG11fB10f";
    590    case SpvImageFormatR16f: return "SpvImageFormatR16f";
    591    case SpvImageFormatRgba16: return "SpvImageFormatRgba16";
    592    case SpvImageFormatRgb10A2: return "SpvImageFormatRgb10A2";
    593    case SpvImageFormatRg16: return "SpvImageFormatRg16";
    594    case SpvImageFormatRg8: return "SpvImageFormatRg8";
    595    case SpvImageFormatR16: return "SpvImageFormatR16";
    596    case SpvImageFormatR8: return "SpvImageFormatR8";
    597    case SpvImageFormatRgba16Snorm: return "SpvImageFormatRgba16Snorm";
    598    case SpvImageFormatRg16Snorm: return "SpvImageFormatRg16Snorm";
    599    case SpvImageFormatRg8Snorm: return "SpvImageFormatRg8Snorm";
    600    case SpvImageFormatR16Snorm: return "SpvImageFormatR16Snorm";
    601    case SpvImageFormatR8Snorm: return "SpvImageFormatR8Snorm";
    602    case SpvImageFormatRgba32i: return "SpvImageFormatRgba32i";
    603    case SpvImageFormatRgba16i: return "SpvImageFormatRgba16i";
    604    case SpvImageFormatRgba8i: return "SpvImageFormatRgba8i";
    605    case SpvImageFormatR32i: return "SpvImageFormatR32i";
    606    case SpvImageFormatRg32i: return "SpvImageFormatRg32i";
    607    case SpvImageFormatRg16i: return "SpvImageFormatRg16i";
    608    case SpvImageFormatRg8i: return "SpvImageFormatRg8i";
    609    case SpvImageFormatR16i: return "SpvImageFormatR16i";
    610    case SpvImageFormatR8i: return "SpvImageFormatR8i";
    611    case SpvImageFormatRgba32ui: return "SpvImageFormatRgba32ui";
    612    case SpvImageFormatRgba16ui: return "SpvImageFormatRgba16ui";
    613    case SpvImageFormatRgba8ui: return "SpvImageFormatRgba8ui";
    614    case SpvImageFormatR32ui: return "SpvImageFormatR32ui";
    615    case SpvImageFormatRgb10a2ui: return "SpvImageFormatRgb10a2ui";
    616    case SpvImageFormatRg32ui: return "SpvImageFormatRg32ui";
    617    case SpvImageFormatRg16ui: return "SpvImageFormatRg16ui";
    618    case SpvImageFormatRg8ui: return "SpvImageFormatRg8ui";
    619    case SpvImageFormatR16ui: return "SpvImageFormatR16ui";
    620    case SpvImageFormatR8ui: return "SpvImageFormatR8ui";
    621    case SpvImageFormatR64ui: return "SpvImageFormatR64ui";
    622    case SpvImageFormatR64i: return "SpvImageFormatR64i";
    623    case SpvImageFormatMax: break; /* silence warnings about unhandled enums. */
    624    }
    625 
    626    return "unknown";
    627 }
    628 
    629 const char *
    630 spirv_memorymodel_to_string(SpvMemoryModel v)
    631 {
    632    switch (v) {
    633    case SpvMemoryModelSimple: return "SpvMemoryModelSimple";
    634    case SpvMemoryModelGLSL450: return "SpvMemoryModelGLSL450";
    635    case SpvMemoryModelOpenCL: return "SpvMemoryModelOpenCL";
    636    case SpvMemoryModelVulkan: return "SpvMemoryModelVulkan";
    637    case SpvMemoryModelMax: break; /* silence warnings about unhandled enums. */
    638    }
    639 
    640    return "unknown";
    641 }
    642 
    643 const char *
    644 spirv_storageclass_to_string(SpvStorageClass v)
    645 {
    646    switch (v) {
    647    case SpvStorageClassUniformConstant: return "SpvStorageClassUniformConstant";
    648    case SpvStorageClassInput: return "SpvStorageClassInput";
    649    case SpvStorageClassUniform: return "SpvStorageClassUniform";
    650    case SpvStorageClassOutput: return "SpvStorageClassOutput";
    651    case SpvStorageClassWorkgroup: return "SpvStorageClassWorkgroup";
    652    case SpvStorageClassCrossWorkgroup: return "SpvStorageClassCrossWorkgroup";
    653    case SpvStorageClassPrivate: return "SpvStorageClassPrivate";
    654    case SpvStorageClassFunction: return "SpvStorageClassFunction";
    655    case SpvStorageClassGeneric: return "SpvStorageClassGeneric";
    656    case SpvStorageClassPushConstant: return "SpvStorageClassPushConstant";
    657    case SpvStorageClassAtomicCounter: return "SpvStorageClassAtomicCounter";
    658    case SpvStorageClassImage: return "SpvStorageClassImage";
    659    case SpvStorageClassStorageBuffer: return "SpvStorageClassStorageBuffer";
    660    case SpvStorageClassCallableDataNV: return "SpvStorageClassCallableDataNV";
    661    case SpvStorageClassIncomingCallableDataNV: return "SpvStorageClassIncomingCallableDataNV";
    662    case SpvStorageClassRayPayloadNV: return "SpvStorageClassRayPayloadNV";
    663    case SpvStorageClassHitAttributeNV: return "SpvStorageClassHitAttributeNV";
    664    case SpvStorageClassIncomingRayPayloadNV: return "SpvStorageClassIncomingRayPayloadNV";
    665    case SpvStorageClassShaderRecordBufferNV: return "SpvStorageClassShaderRecordBufferNV";
    666    case SpvStorageClassPhysicalStorageBuffer: return "SpvStorageClassPhysicalStorageBuffer";
    667    case SpvStorageClassCodeSectionINTEL: return "SpvStorageClassCodeSectionINTEL";
    668    case SpvStorageClassDeviceOnlyINTEL: return "SpvStorageClassDeviceOnlyINTEL";
    669    case SpvStorageClassHostOnlyINTEL: return "SpvStorageClassHostOnlyINTEL";
    670    case SpvStorageClassMax: break; /* silence warnings about unhandled enums. */
    671    }
    672 
    673    return "unknown";
    674 }
    675 
    676 const char *
    677 spirv_imageoperands_to_string(SpvImageOperandsMask v)
    678 {
    679    switch (v) {
    680    case SpvImageOperandsMaskNone: return "SpvImageOperandsNone";
    681    case SpvImageOperandsBiasMask: return "SpvImageOperandsBias";
    682    case SpvImageOperandsLodMask: return "SpvImageOperandsLod";
    683    case SpvImageOperandsGradMask: return "SpvImageOperandsGrad";
    684    case SpvImageOperandsConstOffsetMask: return "SpvImageOperandsConstOffset";
    685    case SpvImageOperandsOffsetMask: return "SpvImageOperandsOffset";
    686    case SpvImageOperandsConstOffsetsMask: return "SpvImageOperandsConstOffsets";
    687    case SpvImageOperandsSampleMask: return "SpvImageOperandsSample";
    688    case SpvImageOperandsMinLodMask: return "SpvImageOperandsMinLod";
    689    case SpvImageOperandsMakeTexelAvailableMask: return "SpvImageOperandsMakeTexelAvailable";
    690    case SpvImageOperandsMakeTexelVisibleMask: return "SpvImageOperandsMakeTexelVisible";
    691    case SpvImageOperandsNonPrivateTexelMask: return "SpvImageOperandsNonPrivateTexel";
    692    case SpvImageOperandsVolatileTexelMask: return "SpvImageOperandsVolatileTexel";
    693    case SpvImageOperandsSignExtendMask: return "SpvImageOperandsSignExtend";
    694    case SpvImageOperandsZeroExtendMask: return "SpvImageOperandsZeroExtend";
    695    }
    696 
    697    return "unknown";
    698 }
    699 
    700 const char *
    701 spirv_fproundingmode_to_string(SpvFPRoundingMode v)
    702 {
    703    switch (v) {
    704    case SpvFPRoundingModeRTE: return "SpvFPRoundingModeRTE";
    705    case SpvFPRoundingModeRTZ: return "SpvFPRoundingModeRTZ";
    706    case SpvFPRoundingModeRTP: return "SpvFPRoundingModeRTP";
    707    case SpvFPRoundingModeRTN: return "SpvFPRoundingModeRTN";
    708    case SpvFPRoundingModeMax: break; /* silence warnings about unhandled enums. */
    709    }
    710 
    711    return "unknown";
    712 }
    713 
    714 const char *
    715 spirv_op_to_string(SpvOp v)
    716 {
    717    switch (v) {
    718    case SpvOpNop: return "SpvOpNop";
    719    case SpvOpUndef: return "SpvOpUndef";
    720    case SpvOpSourceContinued: return "SpvOpSourceContinued";
    721    case SpvOpSource: return "SpvOpSource";
    722    case SpvOpSourceExtension: return "SpvOpSourceExtension";
    723    case SpvOpName: return "SpvOpName";
    724    case SpvOpMemberName: return "SpvOpMemberName";
    725    case SpvOpString: return "SpvOpString";
    726    case SpvOpLine: return "SpvOpLine";
    727    case SpvOpExtension: return "SpvOpExtension";
    728    case SpvOpExtInstImport: return "SpvOpExtInstImport";
    729    case SpvOpExtInst: return "SpvOpExtInst";
    730    case SpvOpMemoryModel: return "SpvOpMemoryModel";
    731    case SpvOpEntryPoint: return "SpvOpEntryPoint";
    732    case SpvOpExecutionMode: return "SpvOpExecutionMode";
    733    case SpvOpCapability: return "SpvOpCapability";
    734    case SpvOpTypeVoid: return "SpvOpTypeVoid";
    735    case SpvOpTypeBool: return "SpvOpTypeBool";
    736    case SpvOpTypeInt: return "SpvOpTypeInt";
    737    case SpvOpTypeFloat: return "SpvOpTypeFloat";
    738    case SpvOpTypeVector: return "SpvOpTypeVector";
    739    case SpvOpTypeMatrix: return "SpvOpTypeMatrix";
    740    case SpvOpTypeImage: return "SpvOpTypeImage";
    741    case SpvOpTypeSampler: return "SpvOpTypeSampler";
    742    case SpvOpTypeSampledImage: return "SpvOpTypeSampledImage";
    743    case SpvOpTypeArray: return "SpvOpTypeArray";
    744    case SpvOpTypeRuntimeArray: return "SpvOpTypeRuntimeArray";
    745    case SpvOpTypeStruct: return "SpvOpTypeStruct";
    746    case SpvOpTypeOpaque: return "SpvOpTypeOpaque";
    747    case SpvOpTypePointer: return "SpvOpTypePointer";
    748    case SpvOpTypeFunction: return "SpvOpTypeFunction";
    749    case SpvOpTypeEvent: return "SpvOpTypeEvent";
    750    case SpvOpTypeDeviceEvent: return "SpvOpTypeDeviceEvent";
    751    case SpvOpTypeReserveId: return "SpvOpTypeReserveId";
    752    case SpvOpTypeQueue: return "SpvOpTypeQueue";
    753    case SpvOpTypePipe: return "SpvOpTypePipe";
    754    case SpvOpTypeForwardPointer: return "SpvOpTypeForwardPointer";
    755    case SpvOpConstantTrue: return "SpvOpConstantTrue";
    756    case SpvOpConstantFalse: return "SpvOpConstantFalse";
    757    case SpvOpConstant: return "SpvOpConstant";
    758    case SpvOpConstantComposite: return "SpvOpConstantComposite";
    759    case SpvOpConstantSampler: return "SpvOpConstantSampler";
    760    case SpvOpConstantNull: return "SpvOpConstantNull";
    761    case SpvOpSpecConstantTrue: return "SpvOpSpecConstantTrue";
    762    case SpvOpSpecConstantFalse: return "SpvOpSpecConstantFalse";
    763    case SpvOpSpecConstant: return "SpvOpSpecConstant";
    764    case SpvOpSpecConstantComposite: return "SpvOpSpecConstantComposite";
    765    case SpvOpSpecConstantOp: return "SpvOpSpecConstantOp";
    766    case SpvOpFunction: return "SpvOpFunction";
    767    case SpvOpFunctionParameter: return "SpvOpFunctionParameter";
    768    case SpvOpFunctionEnd: return "SpvOpFunctionEnd";
    769    case SpvOpFunctionCall: return "SpvOpFunctionCall";
    770    case SpvOpVariable: return "SpvOpVariable";
    771    case SpvOpImageTexelPointer: return "SpvOpImageTexelPointer";
    772    case SpvOpLoad: return "SpvOpLoad";
    773    case SpvOpStore: return "SpvOpStore";
    774    case SpvOpCopyMemory: return "SpvOpCopyMemory";
    775    case SpvOpCopyMemorySized: return "SpvOpCopyMemorySized";
    776    case SpvOpAccessChain: return "SpvOpAccessChain";
    777    case SpvOpInBoundsAccessChain: return "SpvOpInBoundsAccessChain";
    778    case SpvOpPtrAccessChain: return "SpvOpPtrAccessChain";
    779    case SpvOpArrayLength: return "SpvOpArrayLength";
    780    case SpvOpGenericPtrMemSemantics: return "SpvOpGenericPtrMemSemantics";
    781    case SpvOpInBoundsPtrAccessChain: return "SpvOpInBoundsPtrAccessChain";
    782    case SpvOpDecorate: return "SpvOpDecorate";
    783    case SpvOpMemberDecorate: return "SpvOpMemberDecorate";
    784    case SpvOpDecorationGroup: return "SpvOpDecorationGroup";
    785    case SpvOpGroupDecorate: return "SpvOpGroupDecorate";
    786    case SpvOpGroupMemberDecorate: return "SpvOpGroupMemberDecorate";
    787    case SpvOpVectorExtractDynamic: return "SpvOpVectorExtractDynamic";
    788    case SpvOpVectorInsertDynamic: return "SpvOpVectorInsertDynamic";
    789    case SpvOpVectorShuffle: return "SpvOpVectorShuffle";
    790    case SpvOpCompositeConstruct: return "SpvOpCompositeConstruct";
    791    case SpvOpCompositeExtract: return "SpvOpCompositeExtract";
    792    case SpvOpCompositeInsert: return "SpvOpCompositeInsert";
    793    case SpvOpCopyObject: return "SpvOpCopyObject";
    794    case SpvOpTranspose: return "SpvOpTranspose";
    795    case SpvOpSampledImage: return "SpvOpSampledImage";
    796    case SpvOpImageSampleImplicitLod: return "SpvOpImageSampleImplicitLod";
    797    case SpvOpImageSampleExplicitLod: return "SpvOpImageSampleExplicitLod";
    798    case SpvOpImageSampleDrefImplicitLod: return "SpvOpImageSampleDrefImplicitLod";
    799    case SpvOpImageSampleDrefExplicitLod: return "SpvOpImageSampleDrefExplicitLod";
    800    case SpvOpImageSampleProjImplicitLod: return "SpvOpImageSampleProjImplicitLod";
    801    case SpvOpImageSampleProjExplicitLod: return "SpvOpImageSampleProjExplicitLod";
    802    case SpvOpImageSampleProjDrefImplicitLod: return "SpvOpImageSampleProjDrefImplicitLod";
    803    case SpvOpImageSampleProjDrefExplicitLod: return "SpvOpImageSampleProjDrefExplicitLod";
    804    case SpvOpImageFetch: return "SpvOpImageFetch";
    805    case SpvOpImageGather: return "SpvOpImageGather";
    806    case SpvOpImageDrefGather: return "SpvOpImageDrefGather";
    807    case SpvOpImageRead: return "SpvOpImageRead";
    808    case SpvOpImageWrite: return "SpvOpImageWrite";
    809    case SpvOpImage: return "SpvOpImage";
    810    case SpvOpImageQueryFormat: return "SpvOpImageQueryFormat";
    811    case SpvOpImageQueryOrder: return "SpvOpImageQueryOrder";
    812    case SpvOpImageQuerySizeLod: return "SpvOpImageQuerySizeLod";
    813    case SpvOpImageQuerySize: return "SpvOpImageQuerySize";
    814    case SpvOpImageQueryLod: return "SpvOpImageQueryLod";
    815    case SpvOpImageQueryLevels: return "SpvOpImageQueryLevels";
    816    case SpvOpImageQuerySamples: return "SpvOpImageQuerySamples";
    817    case SpvOpConvertFToU: return "SpvOpConvertFToU";
    818    case SpvOpConvertFToS: return "SpvOpConvertFToS";
    819    case SpvOpConvertSToF: return "SpvOpConvertSToF";
    820    case SpvOpConvertUToF: return "SpvOpConvertUToF";
    821    case SpvOpUConvert: return "SpvOpUConvert";
    822    case SpvOpSConvert: return "SpvOpSConvert";
    823    case SpvOpFConvert: return "SpvOpFConvert";
    824    case SpvOpQuantizeToF16: return "SpvOpQuantizeToF16";
    825    case SpvOpConvertPtrToU: return "SpvOpConvertPtrToU";
    826    case SpvOpSatConvertSToU: return "SpvOpSatConvertSToU";
    827    case SpvOpSatConvertUToS: return "SpvOpSatConvertUToS";
    828    case SpvOpConvertUToPtr: return "SpvOpConvertUToPtr";
    829    case SpvOpPtrCastToGeneric: return "SpvOpPtrCastToGeneric";
    830    case SpvOpGenericCastToPtr: return "SpvOpGenericCastToPtr";
    831    case SpvOpGenericCastToPtrExplicit: return "SpvOpGenericCastToPtrExplicit";
    832    case SpvOpBitcast: return "SpvOpBitcast";
    833    case SpvOpSNegate: return "SpvOpSNegate";
    834    case SpvOpFNegate: return "SpvOpFNegate";
    835    case SpvOpIAdd: return "SpvOpIAdd";
    836    case SpvOpFAdd: return "SpvOpFAdd";
    837    case SpvOpISub: return "SpvOpISub";
    838    case SpvOpFSub: return "SpvOpFSub";
    839    case SpvOpIMul: return "SpvOpIMul";
    840    case SpvOpFMul: return "SpvOpFMul";
    841    case SpvOpUDiv: return "SpvOpUDiv";
    842    case SpvOpSDiv: return "SpvOpSDiv";
    843    case SpvOpFDiv: return "SpvOpFDiv";
    844    case SpvOpUMod: return "SpvOpUMod";
    845    case SpvOpSRem: return "SpvOpSRem";
    846    case SpvOpSMod: return "SpvOpSMod";
    847    case SpvOpFRem: return "SpvOpFRem";
    848    case SpvOpFMod: return "SpvOpFMod";
    849    case SpvOpVectorTimesScalar: return "SpvOpVectorTimesScalar";
    850    case SpvOpMatrixTimesScalar: return "SpvOpMatrixTimesScalar";
    851    case SpvOpVectorTimesMatrix: return "SpvOpVectorTimesMatrix";
    852    case SpvOpMatrixTimesVector: return "SpvOpMatrixTimesVector";
    853    case SpvOpMatrixTimesMatrix: return "SpvOpMatrixTimesMatrix";
    854    case SpvOpOuterProduct: return "SpvOpOuterProduct";
    855    case SpvOpDot: return "SpvOpDot";
    856    case SpvOpIAddCarry: return "SpvOpIAddCarry";
    857    case SpvOpISubBorrow: return "SpvOpISubBorrow";
    858    case SpvOpUMulExtended: return "SpvOpUMulExtended";
    859    case SpvOpSMulExtended: return "SpvOpSMulExtended";
    860    case SpvOpAny: return "SpvOpAny";
    861    case SpvOpAll: return "SpvOpAll";
    862    case SpvOpIsNan: return "SpvOpIsNan";
    863    case SpvOpIsInf: return "SpvOpIsInf";
    864    case SpvOpIsFinite: return "SpvOpIsFinite";
    865    case SpvOpIsNormal: return "SpvOpIsNormal";
    866    case SpvOpSignBitSet: return "SpvOpSignBitSet";
    867    case SpvOpLessOrGreater: return "SpvOpLessOrGreater";
    868    case SpvOpOrdered: return "SpvOpOrdered";
    869    case SpvOpUnordered: return "SpvOpUnordered";
    870    case SpvOpLogicalEqual: return "SpvOpLogicalEqual";
    871    case SpvOpLogicalNotEqual: return "SpvOpLogicalNotEqual";
    872    case SpvOpLogicalOr: return "SpvOpLogicalOr";
    873    case SpvOpLogicalAnd: return "SpvOpLogicalAnd";
    874    case SpvOpLogicalNot: return "SpvOpLogicalNot";
    875    case SpvOpSelect: return "SpvOpSelect";
    876    case SpvOpIEqual: return "SpvOpIEqual";
    877    case SpvOpINotEqual: return "SpvOpINotEqual";
    878    case SpvOpUGreaterThan: return "SpvOpUGreaterThan";
    879    case SpvOpSGreaterThan: return "SpvOpSGreaterThan";
    880    case SpvOpUGreaterThanEqual: return "SpvOpUGreaterThanEqual";
    881    case SpvOpSGreaterThanEqual: return "SpvOpSGreaterThanEqual";
    882    case SpvOpULessThan: return "SpvOpULessThan";
    883    case SpvOpSLessThan: return "SpvOpSLessThan";
    884    case SpvOpULessThanEqual: return "SpvOpULessThanEqual";
    885    case SpvOpSLessThanEqual: return "SpvOpSLessThanEqual";
    886    case SpvOpFOrdEqual: return "SpvOpFOrdEqual";
    887    case SpvOpFUnordEqual: return "SpvOpFUnordEqual";
    888    case SpvOpFOrdNotEqual: return "SpvOpFOrdNotEqual";
    889    case SpvOpFUnordNotEqual: return "SpvOpFUnordNotEqual";
    890    case SpvOpFOrdLessThan: return "SpvOpFOrdLessThan";
    891    case SpvOpFUnordLessThan: return "SpvOpFUnordLessThan";
    892    case SpvOpFOrdGreaterThan: return "SpvOpFOrdGreaterThan";
    893    case SpvOpFUnordGreaterThan: return "SpvOpFUnordGreaterThan";
    894    case SpvOpFOrdLessThanEqual: return "SpvOpFOrdLessThanEqual";
    895    case SpvOpFUnordLessThanEqual: return "SpvOpFUnordLessThanEqual";
    896    case SpvOpFOrdGreaterThanEqual: return "SpvOpFOrdGreaterThanEqual";
    897    case SpvOpFUnordGreaterThanEqual: return "SpvOpFUnordGreaterThanEqual";
    898    case SpvOpShiftRightLogical: return "SpvOpShiftRightLogical";
    899    case SpvOpShiftRightArithmetic: return "SpvOpShiftRightArithmetic";
    900    case SpvOpShiftLeftLogical: return "SpvOpShiftLeftLogical";
    901    case SpvOpBitwiseOr: return "SpvOpBitwiseOr";
    902    case SpvOpBitwiseXor: return "SpvOpBitwiseXor";
    903    case SpvOpBitwiseAnd: return "SpvOpBitwiseAnd";
    904    case SpvOpNot: return "SpvOpNot";
    905    case SpvOpBitFieldInsert: return "SpvOpBitFieldInsert";
    906    case SpvOpBitFieldSExtract: return "SpvOpBitFieldSExtract";
    907    case SpvOpBitFieldUExtract: return "SpvOpBitFieldUExtract";
    908    case SpvOpBitReverse: return "SpvOpBitReverse";
    909    case SpvOpBitCount: return "SpvOpBitCount";
    910    case SpvOpDPdx: return "SpvOpDPdx";
    911    case SpvOpDPdy: return "SpvOpDPdy";
    912    case SpvOpFwidth: return "SpvOpFwidth";
    913    case SpvOpDPdxFine: return "SpvOpDPdxFine";
    914    case SpvOpDPdyFine: return "SpvOpDPdyFine";
    915    case SpvOpFwidthFine: return "SpvOpFwidthFine";
    916    case SpvOpDPdxCoarse: return "SpvOpDPdxCoarse";
    917    case SpvOpDPdyCoarse: return "SpvOpDPdyCoarse";
    918    case SpvOpFwidthCoarse: return "SpvOpFwidthCoarse";
    919    case SpvOpEmitVertex: return "SpvOpEmitVertex";
    920    case SpvOpEndPrimitive: return "SpvOpEndPrimitive";
    921    case SpvOpEmitStreamVertex: return "SpvOpEmitStreamVertex";
    922    case SpvOpEndStreamPrimitive: return "SpvOpEndStreamPrimitive";
    923    case SpvOpControlBarrier: return "SpvOpControlBarrier";
    924    case SpvOpMemoryBarrier: return "SpvOpMemoryBarrier";
    925    case SpvOpAtomicLoad: return "SpvOpAtomicLoad";
    926    case SpvOpAtomicStore: return "SpvOpAtomicStore";
    927    case SpvOpAtomicExchange: return "SpvOpAtomicExchange";
    928    case SpvOpAtomicCompareExchange: return "SpvOpAtomicCompareExchange";
    929    case SpvOpAtomicCompareExchangeWeak: return "SpvOpAtomicCompareExchangeWeak";
    930    case SpvOpAtomicIIncrement: return "SpvOpAtomicIIncrement";
    931    case SpvOpAtomicIDecrement: return "SpvOpAtomicIDecrement";
    932    case SpvOpAtomicIAdd: return "SpvOpAtomicIAdd";
    933    case SpvOpAtomicISub: return "SpvOpAtomicISub";
    934    case SpvOpAtomicSMin: return "SpvOpAtomicSMin";
    935    case SpvOpAtomicUMin: return "SpvOpAtomicUMin";
    936    case SpvOpAtomicSMax: return "SpvOpAtomicSMax";
    937    case SpvOpAtomicUMax: return "SpvOpAtomicUMax";
    938    case SpvOpAtomicAnd: return "SpvOpAtomicAnd";
    939    case SpvOpAtomicOr: return "SpvOpAtomicOr";
    940    case SpvOpAtomicXor: return "SpvOpAtomicXor";
    941    case SpvOpPhi: return "SpvOpPhi";
    942    case SpvOpLoopMerge: return "SpvOpLoopMerge";
    943    case SpvOpSelectionMerge: return "SpvOpSelectionMerge";
    944    case SpvOpLabel: return "SpvOpLabel";
    945    case SpvOpBranch: return "SpvOpBranch";
    946    case SpvOpBranchConditional: return "SpvOpBranchConditional";
    947    case SpvOpSwitch: return "SpvOpSwitch";
    948    case SpvOpKill: return "SpvOpKill";
    949    case SpvOpReturn: return "SpvOpReturn";
    950    case SpvOpReturnValue: return "SpvOpReturnValue";
    951    case SpvOpUnreachable: return "SpvOpUnreachable";
    952    case SpvOpLifetimeStart: return "SpvOpLifetimeStart";
    953    case SpvOpLifetimeStop: return "SpvOpLifetimeStop";
    954    case SpvOpGroupAsyncCopy: return "SpvOpGroupAsyncCopy";
    955    case SpvOpGroupWaitEvents: return "SpvOpGroupWaitEvents";
    956    case SpvOpGroupAll: return "SpvOpGroupAll";
    957    case SpvOpGroupAny: return "SpvOpGroupAny";
    958    case SpvOpGroupBroadcast: return "SpvOpGroupBroadcast";
    959    case SpvOpGroupIAdd: return "SpvOpGroupIAdd";
    960    case SpvOpGroupFAdd: return "SpvOpGroupFAdd";
    961    case SpvOpGroupFMin: return "SpvOpGroupFMin";
    962    case SpvOpGroupUMin: return "SpvOpGroupUMin";
    963    case SpvOpGroupSMin: return "SpvOpGroupSMin";
    964    case SpvOpGroupFMax: return "SpvOpGroupFMax";
    965    case SpvOpGroupUMax: return "SpvOpGroupUMax";
    966    case SpvOpGroupSMax: return "SpvOpGroupSMax";
    967    case SpvOpReadPipe: return "SpvOpReadPipe";
    968    case SpvOpWritePipe: return "SpvOpWritePipe";
    969    case SpvOpReservedReadPipe: return "SpvOpReservedReadPipe";
    970    case SpvOpReservedWritePipe: return "SpvOpReservedWritePipe";
    971    case SpvOpReserveReadPipePackets: return "SpvOpReserveReadPipePackets";
    972    case SpvOpReserveWritePipePackets: return "SpvOpReserveWritePipePackets";
    973    case SpvOpCommitReadPipe: return "SpvOpCommitReadPipe";
    974    case SpvOpCommitWritePipe: return "SpvOpCommitWritePipe";
    975    case SpvOpIsValidReserveId: return "SpvOpIsValidReserveId";
    976    case SpvOpGetNumPipePackets: return "SpvOpGetNumPipePackets";
    977    case SpvOpGetMaxPipePackets: return "SpvOpGetMaxPipePackets";
    978    case SpvOpGroupReserveReadPipePackets: return "SpvOpGroupReserveReadPipePackets";
    979    case SpvOpGroupReserveWritePipePackets: return "SpvOpGroupReserveWritePipePackets";
    980    case SpvOpGroupCommitReadPipe: return "SpvOpGroupCommitReadPipe";
    981    case SpvOpGroupCommitWritePipe: return "SpvOpGroupCommitWritePipe";
    982    case SpvOpEnqueueMarker: return "SpvOpEnqueueMarker";
    983    case SpvOpEnqueueKernel: return "SpvOpEnqueueKernel";
    984    case SpvOpGetKernelNDrangeSubGroupCount: return "SpvOpGetKernelNDrangeSubGroupCount";
    985    case SpvOpGetKernelNDrangeMaxSubGroupSize: return "SpvOpGetKernelNDrangeMaxSubGroupSize";
    986    case SpvOpGetKernelWorkGroupSize: return "SpvOpGetKernelWorkGroupSize";
    987    case SpvOpGetKernelPreferredWorkGroupSizeMultiple: return "SpvOpGetKernelPreferredWorkGroupSizeMultiple";
    988    case SpvOpRetainEvent: return "SpvOpRetainEvent";
    989    case SpvOpReleaseEvent: return "SpvOpReleaseEvent";
    990    case SpvOpCreateUserEvent: return "SpvOpCreateUserEvent";
    991    case SpvOpIsValidEvent: return "SpvOpIsValidEvent";
    992    case SpvOpSetUserEventStatus: return "SpvOpSetUserEventStatus";
    993    case SpvOpCaptureEventProfilingInfo: return "SpvOpCaptureEventProfilingInfo";
    994    case SpvOpGetDefaultQueue: return "SpvOpGetDefaultQueue";
    995    case SpvOpBuildNDRange: return "SpvOpBuildNDRange";
    996    case SpvOpImageSparseSampleImplicitLod: return "SpvOpImageSparseSampleImplicitLod";
    997    case SpvOpImageSparseSampleExplicitLod: return "SpvOpImageSparseSampleExplicitLod";
    998    case SpvOpImageSparseSampleDrefImplicitLod: return "SpvOpImageSparseSampleDrefImplicitLod";
    999    case SpvOpImageSparseSampleDrefExplicitLod: return "SpvOpImageSparseSampleDrefExplicitLod";
   1000    case SpvOpImageSparseSampleProjImplicitLod: return "SpvOpImageSparseSampleProjImplicitLod";
   1001    case SpvOpImageSparseSampleProjExplicitLod: return "SpvOpImageSparseSampleProjExplicitLod";
   1002    case SpvOpImageSparseSampleProjDrefImplicitLod: return "SpvOpImageSparseSampleProjDrefImplicitLod";
   1003    case SpvOpImageSparseSampleProjDrefExplicitLod: return "SpvOpImageSparseSampleProjDrefExplicitLod";
   1004    case SpvOpImageSparseFetch: return "SpvOpImageSparseFetch";
   1005    case SpvOpImageSparseGather: return "SpvOpImageSparseGather";
   1006    case SpvOpImageSparseDrefGather: return "SpvOpImageSparseDrefGather";
   1007    case SpvOpImageSparseTexelsResident: return "SpvOpImageSparseTexelsResident";
   1008    case SpvOpNoLine: return "SpvOpNoLine";
   1009    case SpvOpAtomicFlagTestAndSet: return "SpvOpAtomicFlagTestAndSet";
   1010    case SpvOpAtomicFlagClear: return "SpvOpAtomicFlagClear";
   1011    case SpvOpImageSparseRead: return "SpvOpImageSparseRead";
   1012    case SpvOpSizeOf: return "SpvOpSizeOf";
   1013    case SpvOpTypePipeStorage: return "SpvOpTypePipeStorage";
   1014    case SpvOpConstantPipeStorage: return "SpvOpConstantPipeStorage";
   1015    case SpvOpCreatePipeFromPipeStorage: return "SpvOpCreatePipeFromPipeStorage";
   1016    case SpvOpGetKernelLocalSizeForSubgroupCount: return "SpvOpGetKernelLocalSizeForSubgroupCount";
   1017    case SpvOpGetKernelMaxNumSubgroups: return "SpvOpGetKernelMaxNumSubgroups";
   1018    case SpvOpTypeNamedBarrier: return "SpvOpTypeNamedBarrier";
   1019    case SpvOpNamedBarrierInitialize: return "SpvOpNamedBarrierInitialize";
   1020    case SpvOpMemoryNamedBarrier: return "SpvOpMemoryNamedBarrier";
   1021    case SpvOpModuleProcessed: return "SpvOpModuleProcessed";
   1022    case SpvOpExecutionModeId: return "SpvOpExecutionModeId";
   1023    case SpvOpDecorateId: return "SpvOpDecorateId";
   1024    case SpvOpGroupNonUniformElect: return "SpvOpGroupNonUniformElect";
   1025    case SpvOpGroupNonUniformAll: return "SpvOpGroupNonUniformAll";
   1026    case SpvOpGroupNonUniformAny: return "SpvOpGroupNonUniformAny";
   1027    case SpvOpGroupNonUniformAllEqual: return "SpvOpGroupNonUniformAllEqual";
   1028    case SpvOpGroupNonUniformBroadcast: return "SpvOpGroupNonUniformBroadcast";
   1029    case SpvOpGroupNonUniformBroadcastFirst: return "SpvOpGroupNonUniformBroadcastFirst";
   1030    case SpvOpGroupNonUniformBallot: return "SpvOpGroupNonUniformBallot";
   1031    case SpvOpGroupNonUniformInverseBallot: return "SpvOpGroupNonUniformInverseBallot";
   1032    case SpvOpGroupNonUniformBallotBitExtract: return "SpvOpGroupNonUniformBallotBitExtract";
   1033    case SpvOpGroupNonUniformBallotBitCount: return "SpvOpGroupNonUniformBallotBitCount";
   1034    case SpvOpGroupNonUniformBallotFindLSB: return "SpvOpGroupNonUniformBallotFindLSB";
   1035    case SpvOpGroupNonUniformBallotFindMSB: return "SpvOpGroupNonUniformBallotFindMSB";
   1036    case SpvOpGroupNonUniformShuffle: return "SpvOpGroupNonUniformShuffle";
   1037    case SpvOpGroupNonUniformShuffleXor: return "SpvOpGroupNonUniformShuffleXor";
   1038    case SpvOpGroupNonUniformShuffleUp: return "SpvOpGroupNonUniformShuffleUp";
   1039    case SpvOpGroupNonUniformShuffleDown: return "SpvOpGroupNonUniformShuffleDown";
   1040    case SpvOpGroupNonUniformIAdd: return "SpvOpGroupNonUniformIAdd";
   1041    case SpvOpGroupNonUniformFAdd: return "SpvOpGroupNonUniformFAdd";
   1042    case SpvOpGroupNonUniformIMul: return "SpvOpGroupNonUniformIMul";
   1043    case SpvOpGroupNonUniformFMul: return "SpvOpGroupNonUniformFMul";
   1044    case SpvOpGroupNonUniformSMin: return "SpvOpGroupNonUniformSMin";
   1045    case SpvOpGroupNonUniformUMin: return "SpvOpGroupNonUniformUMin";
   1046    case SpvOpGroupNonUniformFMin: return "SpvOpGroupNonUniformFMin";
   1047    case SpvOpGroupNonUniformSMax: return "SpvOpGroupNonUniformSMax";
   1048    case SpvOpGroupNonUniformUMax: return "SpvOpGroupNonUniformUMax";
   1049    case SpvOpGroupNonUniformFMax: return "SpvOpGroupNonUniformFMax";
   1050    case SpvOpGroupNonUniformBitwiseAnd: return "SpvOpGroupNonUniformBitwiseAnd";
   1051    case SpvOpGroupNonUniformBitwiseOr: return "SpvOpGroupNonUniformBitwiseOr";
   1052    case SpvOpGroupNonUniformBitwiseXor: return "SpvOpGroupNonUniformBitwiseXor";
   1053    case SpvOpGroupNonUniformLogicalAnd: return "SpvOpGroupNonUniformLogicalAnd";
   1054    case SpvOpGroupNonUniformLogicalOr: return "SpvOpGroupNonUniformLogicalOr";
   1055    case SpvOpGroupNonUniformLogicalXor: return "SpvOpGroupNonUniformLogicalXor";
   1056    case SpvOpGroupNonUniformQuadBroadcast: return "SpvOpGroupNonUniformQuadBroadcast";
   1057    case SpvOpGroupNonUniformQuadSwap: return "SpvOpGroupNonUniformQuadSwap";
   1058    case SpvOpCopyLogical: return "SpvOpCopyLogical";
   1059    case SpvOpPtrEqual: return "SpvOpPtrEqual";
   1060    case SpvOpPtrNotEqual: return "SpvOpPtrNotEqual";
   1061    case SpvOpPtrDiff: return "SpvOpPtrDiff";
   1062    case SpvOpTerminateInvocation: return "SpvOpTerminateInvocation";
   1063    case SpvOpSubgroupBallotKHR: return "SpvOpSubgroupBallotKHR";
   1064    case SpvOpSubgroupFirstInvocationKHR: return "SpvOpSubgroupFirstInvocationKHR";
   1065    case SpvOpSubgroupAllKHR: return "SpvOpSubgroupAllKHR";
   1066    case SpvOpSubgroupAnyKHR: return "SpvOpSubgroupAnyKHR";
   1067    case SpvOpSubgroupAllEqualKHR: return "SpvOpSubgroupAllEqualKHR";
   1068    case SpvOpSubgroupReadInvocationKHR: return "SpvOpSubgroupReadInvocationKHR";
   1069    case SpvOpTraceRayKHR: return "SpvOpTraceRayKHR";
   1070    case SpvOpExecuteCallableKHR: return "SpvOpExecuteCallableKHR";
   1071    case SpvOpConvertUToAccelerationStructureKHR: return "SpvOpConvertUToAccelerationStructureKHR";
   1072    case SpvOpIgnoreIntersectionKHR: return "SpvOpIgnoreIntersectionKHR";
   1073    case SpvOpTerminateRayKHR: return "SpvOpTerminateRayKHR";
   1074    case SpvOpSDotKHR: return "SpvOpSDotKHR";
   1075    case SpvOpUDotKHR: return "SpvOpUDotKHR";
   1076    case SpvOpSUDotKHR: return "SpvOpSUDotKHR";
   1077    case SpvOpSDotAccSatKHR: return "SpvOpSDotAccSatKHR";
   1078    case SpvOpUDotAccSatKHR: return "SpvOpUDotAccSatKHR";
   1079    case SpvOpSUDotAccSatKHR: return "SpvOpSUDotAccSatKHR";
   1080    case SpvOpTypeRayQueryKHR: return "SpvOpTypeRayQueryKHR";
   1081    case SpvOpRayQueryInitializeKHR: return "SpvOpRayQueryInitializeKHR";
   1082    case SpvOpRayQueryTerminateKHR: return "SpvOpRayQueryTerminateKHR";
   1083    case SpvOpRayQueryGenerateIntersectionKHR: return "SpvOpRayQueryGenerateIntersectionKHR";
   1084    case SpvOpRayQueryConfirmIntersectionKHR: return "SpvOpRayQueryConfirmIntersectionKHR";
   1085    case SpvOpRayQueryProceedKHR: return "SpvOpRayQueryProceedKHR";
   1086    case SpvOpRayQueryGetIntersectionTypeKHR: return "SpvOpRayQueryGetIntersectionTypeKHR";
   1087    case SpvOpGroupIAddNonUniformAMD: return "SpvOpGroupIAddNonUniformAMD";
   1088    case SpvOpGroupFAddNonUniformAMD: return "SpvOpGroupFAddNonUniformAMD";
   1089    case SpvOpGroupFMinNonUniformAMD: return "SpvOpGroupFMinNonUniformAMD";
   1090    case SpvOpGroupUMinNonUniformAMD: return "SpvOpGroupUMinNonUniformAMD";
   1091    case SpvOpGroupSMinNonUniformAMD: return "SpvOpGroupSMinNonUniformAMD";
   1092    case SpvOpGroupFMaxNonUniformAMD: return "SpvOpGroupFMaxNonUniformAMD";
   1093    case SpvOpGroupUMaxNonUniformAMD: return "SpvOpGroupUMaxNonUniformAMD";
   1094    case SpvOpGroupSMaxNonUniformAMD: return "SpvOpGroupSMaxNonUniformAMD";
   1095    case SpvOpFragmentMaskFetchAMD: return "SpvOpFragmentMaskFetchAMD";
   1096    case SpvOpFragmentFetchAMD: return "SpvOpFragmentFetchAMD";
   1097    case SpvOpReadClockKHR: return "SpvOpReadClockKHR";
   1098    case SpvOpImageSampleFootprintNV: return "SpvOpImageSampleFootprintNV";
   1099    case SpvOpGroupNonUniformPartitionNV: return "SpvOpGroupNonUniformPartitionNV";
   1100    case SpvOpWritePackedPrimitiveIndices4x8NV: return "SpvOpWritePackedPrimitiveIndices4x8NV";
   1101    case SpvOpReportIntersectionNV: return "SpvOpReportIntersectionNV";
   1102    case SpvOpIgnoreIntersectionNV: return "SpvOpIgnoreIntersectionNV";
   1103    case SpvOpTerminateRayNV: return "SpvOpTerminateRayNV";
   1104    case SpvOpTraceNV: return "SpvOpTraceNV";
   1105    case SpvOpTypeAccelerationStructureNV: return "SpvOpTypeAccelerationStructureNV";
   1106    case SpvOpExecuteCallableNV: return "SpvOpExecuteCallableNV";
   1107    case SpvOpTypeCooperativeMatrixNV: return "SpvOpTypeCooperativeMatrixNV";
   1108    case SpvOpCooperativeMatrixLoadNV: return "SpvOpCooperativeMatrixLoadNV";
   1109    case SpvOpCooperativeMatrixStoreNV: return "SpvOpCooperativeMatrixStoreNV";
   1110    case SpvOpCooperativeMatrixMulAddNV: return "SpvOpCooperativeMatrixMulAddNV";
   1111    case SpvOpCooperativeMatrixLengthNV: return "SpvOpCooperativeMatrixLengthNV";
   1112    case SpvOpBeginInvocationInterlockEXT: return "SpvOpBeginInvocationInterlockEXT";
   1113    case SpvOpEndInvocationInterlockEXT: return "SpvOpEndInvocationInterlockEXT";
   1114    case SpvOpDemoteToHelperInvocationEXT: return "SpvOpDemoteToHelperInvocationEXT";
   1115    case SpvOpIsHelperInvocationEXT: return "SpvOpIsHelperInvocationEXT";
   1116    case SpvOpSubgroupShuffleINTEL: return "SpvOpSubgroupShuffleINTEL";
   1117    case SpvOpSubgroupShuffleDownINTEL: return "SpvOpSubgroupShuffleDownINTEL";
   1118    case SpvOpSubgroupShuffleUpINTEL: return "SpvOpSubgroupShuffleUpINTEL";
   1119    case SpvOpSubgroupShuffleXorINTEL: return "SpvOpSubgroupShuffleXorINTEL";
   1120    case SpvOpSubgroupBlockReadINTEL: return "SpvOpSubgroupBlockReadINTEL";
   1121    case SpvOpSubgroupBlockWriteINTEL: return "SpvOpSubgroupBlockWriteINTEL";
   1122    case SpvOpSubgroupImageBlockReadINTEL: return "SpvOpSubgroupImageBlockReadINTEL";
   1123    case SpvOpSubgroupImageBlockWriteINTEL: return "SpvOpSubgroupImageBlockWriteINTEL";
   1124    case SpvOpSubgroupImageMediaBlockReadINTEL: return "SpvOpSubgroupImageMediaBlockReadINTEL";
   1125    case SpvOpSubgroupImageMediaBlockWriteINTEL: return "SpvOpSubgroupImageMediaBlockWriteINTEL";
   1126    case SpvOpUCountLeadingZerosINTEL: return "SpvOpUCountLeadingZerosINTEL";
   1127    case SpvOpUCountTrailingZerosINTEL: return "SpvOpUCountTrailingZerosINTEL";
   1128    case SpvOpAbsISubINTEL: return "SpvOpAbsISubINTEL";
   1129    case SpvOpAbsUSubINTEL: return "SpvOpAbsUSubINTEL";
   1130    case SpvOpIAddSatINTEL: return "SpvOpIAddSatINTEL";
   1131    case SpvOpUAddSatINTEL: return "SpvOpUAddSatINTEL";
   1132    case SpvOpIAverageINTEL: return "SpvOpIAverageINTEL";
   1133    case SpvOpUAverageINTEL: return "SpvOpUAverageINTEL";
   1134    case SpvOpIAverageRoundedINTEL: return "SpvOpIAverageRoundedINTEL";
   1135    case SpvOpUAverageRoundedINTEL: return "SpvOpUAverageRoundedINTEL";
   1136    case SpvOpISubSatINTEL: return "SpvOpISubSatINTEL";
   1137    case SpvOpUSubSatINTEL: return "SpvOpUSubSatINTEL";
   1138    case SpvOpIMul32x16INTEL: return "SpvOpIMul32x16INTEL";
   1139    case SpvOpUMul32x16INTEL: return "SpvOpUMul32x16INTEL";
   1140    case SpvOpConstFunctionPointerINTEL: return "SpvOpConstFunctionPointerINTEL";
   1141    case SpvOpFunctionPointerCallINTEL: return "SpvOpFunctionPointerCallINTEL";
   1142    case SpvOpAsmTargetINTEL: return "SpvOpAsmTargetINTEL";
   1143    case SpvOpAsmINTEL: return "SpvOpAsmINTEL";
   1144    case SpvOpAsmCallINTEL: return "SpvOpAsmCallINTEL";
   1145    case SpvOpAtomicFMinEXT: return "SpvOpAtomicFMinEXT";
   1146    case SpvOpAtomicFMaxEXT: return "SpvOpAtomicFMaxEXT";
   1147    case SpvOpAssumeTrueKHR: return "SpvOpAssumeTrueKHR";
   1148    case SpvOpExpectKHR: return "SpvOpExpectKHR";
   1149    case SpvOpDecorateString: return "SpvOpDecorateString";
   1150    case SpvOpMemberDecorateString: return "SpvOpMemberDecorateString";
   1151    case SpvOpVmeImageINTEL: return "SpvOpVmeImageINTEL";
   1152    case SpvOpTypeVmeImageINTEL: return "SpvOpTypeVmeImageINTEL";
   1153    case SpvOpTypeAvcImePayloadINTEL: return "SpvOpTypeAvcImePayloadINTEL";
   1154    case SpvOpTypeAvcRefPayloadINTEL: return "SpvOpTypeAvcRefPayloadINTEL";
   1155    case SpvOpTypeAvcSicPayloadINTEL: return "SpvOpTypeAvcSicPayloadINTEL";
   1156    case SpvOpTypeAvcMcePayloadINTEL: return "SpvOpTypeAvcMcePayloadINTEL";
   1157    case SpvOpTypeAvcMceResultINTEL: return "SpvOpTypeAvcMceResultINTEL";
   1158    case SpvOpTypeAvcImeResultINTEL: return "SpvOpTypeAvcImeResultINTEL";
   1159    case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL";
   1160    case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: return "SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL";
   1161    case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: return "SpvOpTypeAvcImeSingleReferenceStreaminINTEL";
   1162    case SpvOpTypeAvcImeDualReferenceStreaminINTEL: return "SpvOpTypeAvcImeDualReferenceStreaminINTEL";
   1163    case SpvOpTypeAvcRefResultINTEL: return "SpvOpTypeAvcRefResultINTEL";
   1164    case SpvOpTypeAvcSicResultINTEL: return "SpvOpTypeAvcSicResultINTEL";
   1165    case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
   1166    case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
   1167    case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
   1168    case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: return "SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL";
   1169    case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
   1170    case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
   1171    case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
   1172    case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
   1173    case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
   1174    case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
   1175    case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
   1176    case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
   1177    case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
   1178    case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
   1179    case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
   1180    case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: return "SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL";
   1181    case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
   1182    case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
   1183    case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
   1184    case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: return "SpvOpSubgroupAvcMceConvertToImePayloadINTEL";
   1185    case SpvOpSubgroupAvcMceConvertToImeResultINTEL: return "SpvOpSubgroupAvcMceConvertToImeResultINTEL";
   1186    case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: return "SpvOpSubgroupAvcMceConvertToRefPayloadINTEL";
   1187    case SpvOpSubgroupAvcMceConvertToRefResultINTEL: return "SpvOpSubgroupAvcMceConvertToRefResultINTEL";
   1188    case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: return "SpvOpSubgroupAvcMceConvertToSicPayloadINTEL";
   1189    case SpvOpSubgroupAvcMceConvertToSicResultINTEL: return "SpvOpSubgroupAvcMceConvertToSicResultINTEL";
   1190    case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: return "SpvOpSubgroupAvcMceGetMotionVectorsINTEL";
   1191    case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: return "SpvOpSubgroupAvcMceGetInterDistortionsINTEL";
   1192    case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: return "SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL";
   1193    case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: return "SpvOpSubgroupAvcMceGetInterMajorShapeINTEL";
   1194    case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: return "SpvOpSubgroupAvcMceGetInterMinorShapeINTEL";
   1195    case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: return "SpvOpSubgroupAvcMceGetInterDirectionsINTEL";
   1196    case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL";
   1197    case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: return "SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL";
   1198    case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
   1199    case SpvOpSubgroupAvcImeInitializeINTEL: return "SpvOpSubgroupAvcImeInitializeINTEL";
   1200    case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: return "SpvOpSubgroupAvcImeSetSingleReferenceINTEL";
   1201    case SpvOpSubgroupAvcImeSetDualReferenceINTEL: return "SpvOpSubgroupAvcImeSetDualReferenceINTEL";
   1202    case SpvOpSubgroupAvcImeRefWindowSizeINTEL: return "SpvOpSubgroupAvcImeRefWindowSizeINTEL";
   1203    case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: return "SpvOpSubgroupAvcImeAdjustRefOffsetINTEL";
   1204    case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: return "SpvOpSubgroupAvcImeConvertToMcePayloadINTEL";
   1205    case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
   1206    case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
   1207    case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
   1208    case SpvOpSubgroupAvcImeSetWeightedSadINTEL: return "SpvOpSubgroupAvcImeSetWeightedSadINTEL";
   1209    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
   1210    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
   1211    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
   1212    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
   1213    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
   1214    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
   1215    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
   1216    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
   1217    case SpvOpSubgroupAvcImeConvertToMceResultINTEL: return "SpvOpSubgroupAvcImeConvertToMceResultINTEL";
   1218    case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
   1219    case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL";
   1220    case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
   1221    case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
   1222    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
   1223    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
   1224    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
   1225    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
   1226    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
   1227    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
   1228    case SpvOpSubgroupAvcImeGetBorderReachedINTEL: return "SpvOpSubgroupAvcImeGetBorderReachedINTEL";
   1229    case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
   1230    case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
   1231    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
   1232    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
   1233    case SpvOpSubgroupAvcFmeInitializeINTEL: return "SpvOpSubgroupAvcFmeInitializeINTEL";
   1234    case SpvOpSubgroupAvcBmeInitializeINTEL: return "SpvOpSubgroupAvcBmeInitializeINTEL";
   1235    case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: return "SpvOpSubgroupAvcRefConvertToMcePayloadINTEL";
   1236    case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
   1237    case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL";
   1238    case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
   1239    case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
   1240    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
   1241    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
   1242    case SpvOpSubgroupAvcRefConvertToMceResultINTEL: return "SpvOpSubgroupAvcRefConvertToMceResultINTEL";
   1243    case SpvOpSubgroupAvcSicInitializeINTEL: return "SpvOpSubgroupAvcSicInitializeINTEL";
   1244    case SpvOpSubgroupAvcSicConfigureSkcINTEL: return "SpvOpSubgroupAvcSicConfigureSkcINTEL";
   1245    case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: return "SpvOpSubgroupAvcSicConfigureIpeLumaINTEL";
   1246    case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
   1247    case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: return "SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL";
   1248    case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: return "SpvOpSubgroupAvcSicConvertToMcePayloadINTEL";
   1249    case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
   1250    case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
   1251    case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
   1252    case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL";
   1253    case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
   1254    case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
   1255    case SpvOpSubgroupAvcSicEvaluateIpeINTEL: return "SpvOpSubgroupAvcSicEvaluateIpeINTEL";
   1256    case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
   1257    case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
   1258    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
   1259    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
   1260    case SpvOpSubgroupAvcSicConvertToMceResultINTEL: return "SpvOpSubgroupAvcSicConvertToMceResultINTEL";
   1261    case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: return "SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL";
   1262    case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
   1263    case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
   1264    case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
   1265    case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: return "SpvOpSubgroupAvcSicGetIpeChromaModeINTEL";
   1266    case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
   1267    case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
   1268    case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: return "SpvOpSubgroupAvcSicGetInterRawSadsINTEL";
   1269    case SpvOpVariableLengthArrayINTEL: return "SpvOpVariableLengthArrayINTEL";
   1270    case SpvOpSaveMemoryINTEL: return "SpvOpSaveMemoryINTEL";
   1271    case SpvOpRestoreMemoryINTEL: return "SpvOpRestoreMemoryINTEL";
   1272    case SpvOpArbitraryFloatSinCosPiINTEL: return "SpvOpArbitraryFloatSinCosPiINTEL";
   1273    case SpvOpArbitraryFloatCastINTEL: return "SpvOpArbitraryFloatCastINTEL";
   1274    case SpvOpArbitraryFloatCastFromIntINTEL: return "SpvOpArbitraryFloatCastFromIntINTEL";
   1275    case SpvOpArbitraryFloatCastToIntINTEL: return "SpvOpArbitraryFloatCastToIntINTEL";
   1276    case SpvOpArbitraryFloatAddINTEL: return "SpvOpArbitraryFloatAddINTEL";
   1277    case SpvOpArbitraryFloatSubINTEL: return "SpvOpArbitraryFloatSubINTEL";
   1278    case SpvOpArbitraryFloatMulINTEL: return "SpvOpArbitraryFloatMulINTEL";
   1279    case SpvOpArbitraryFloatDivINTEL: return "SpvOpArbitraryFloatDivINTEL";
   1280    case SpvOpArbitraryFloatGTINTEL: return "SpvOpArbitraryFloatGTINTEL";
   1281    case SpvOpArbitraryFloatGEINTEL: return "SpvOpArbitraryFloatGEINTEL";
   1282    case SpvOpArbitraryFloatLTINTEL: return "SpvOpArbitraryFloatLTINTEL";
   1283    case SpvOpArbitraryFloatLEINTEL: return "SpvOpArbitraryFloatLEINTEL";
   1284    case SpvOpArbitraryFloatEQINTEL: return "SpvOpArbitraryFloatEQINTEL";
   1285    case SpvOpArbitraryFloatRecipINTEL: return "SpvOpArbitraryFloatRecipINTEL";
   1286    case SpvOpArbitraryFloatRSqrtINTEL: return "SpvOpArbitraryFloatRSqrtINTEL";
   1287    case SpvOpArbitraryFloatCbrtINTEL: return "SpvOpArbitraryFloatCbrtINTEL";
   1288    case SpvOpArbitraryFloatHypotINTEL: return "SpvOpArbitraryFloatHypotINTEL";
   1289    case SpvOpArbitraryFloatSqrtINTEL: return "SpvOpArbitraryFloatSqrtINTEL";
   1290    case SpvOpArbitraryFloatLogINTEL: return "SpvOpArbitraryFloatLogINTEL";
   1291    case SpvOpArbitraryFloatLog2INTEL: return "SpvOpArbitraryFloatLog2INTEL";
   1292    case SpvOpArbitraryFloatLog10INTEL: return "SpvOpArbitraryFloatLog10INTEL";
   1293    case SpvOpArbitraryFloatLog1pINTEL: return "SpvOpArbitraryFloatLog1pINTEL";
   1294    case SpvOpArbitraryFloatExpINTEL: return "SpvOpArbitraryFloatExpINTEL";
   1295    case SpvOpArbitraryFloatExp2INTEL: return "SpvOpArbitraryFloatExp2INTEL";
   1296    case SpvOpArbitraryFloatExp10INTEL: return "SpvOpArbitraryFloatExp10INTEL";
   1297    case SpvOpArbitraryFloatExpm1INTEL: return "SpvOpArbitraryFloatExpm1INTEL";
   1298    case SpvOpArbitraryFloatSinINTEL: return "SpvOpArbitraryFloatSinINTEL";
   1299    case SpvOpArbitraryFloatCosINTEL: return "SpvOpArbitraryFloatCosINTEL";
   1300    case SpvOpArbitraryFloatSinCosINTEL: return "SpvOpArbitraryFloatSinCosINTEL";
   1301    case SpvOpArbitraryFloatSinPiINTEL: return "SpvOpArbitraryFloatSinPiINTEL";
   1302    case SpvOpArbitraryFloatCosPiINTEL: return "SpvOpArbitraryFloatCosPiINTEL";
   1303    case SpvOpArbitraryFloatASinINTEL: return "SpvOpArbitraryFloatASinINTEL";
   1304    case SpvOpArbitraryFloatASinPiINTEL: return "SpvOpArbitraryFloatASinPiINTEL";
   1305    case SpvOpArbitraryFloatACosINTEL: return "SpvOpArbitraryFloatACosINTEL";
   1306    case SpvOpArbitraryFloatACosPiINTEL: return "SpvOpArbitraryFloatACosPiINTEL";
   1307    case SpvOpArbitraryFloatATanINTEL: return "SpvOpArbitraryFloatATanINTEL";
   1308    case SpvOpArbitraryFloatATanPiINTEL: return "SpvOpArbitraryFloatATanPiINTEL";
   1309    case SpvOpArbitraryFloatATan2INTEL: return "SpvOpArbitraryFloatATan2INTEL";
   1310    case SpvOpArbitraryFloatPowINTEL: return "SpvOpArbitraryFloatPowINTEL";
   1311    case SpvOpArbitraryFloatPowRINTEL: return "SpvOpArbitraryFloatPowRINTEL";
   1312    case SpvOpArbitraryFloatPowNINTEL: return "SpvOpArbitraryFloatPowNINTEL";
   1313    case SpvOpLoopControlINTEL: return "SpvOpLoopControlINTEL";
   1314    case SpvOpFixedSqrtINTEL: return "SpvOpFixedSqrtINTEL";
   1315    case SpvOpFixedRecipINTEL: return "SpvOpFixedRecipINTEL";
   1316    case SpvOpFixedRsqrtINTEL: return "SpvOpFixedRsqrtINTEL";
   1317    case SpvOpFixedSinINTEL: return "SpvOpFixedSinINTEL";
   1318    case SpvOpFixedCosINTEL: return "SpvOpFixedCosINTEL";
   1319    case SpvOpFixedSinCosINTEL: return "SpvOpFixedSinCosINTEL";
   1320    case SpvOpFixedSinPiINTEL: return "SpvOpFixedSinPiINTEL";
   1321    case SpvOpFixedCosPiINTEL: return "SpvOpFixedCosPiINTEL";
   1322    case SpvOpFixedSinCosPiINTEL: return "SpvOpFixedSinCosPiINTEL";
   1323    case SpvOpFixedLogINTEL: return "SpvOpFixedLogINTEL";
   1324    case SpvOpFixedExpINTEL: return "SpvOpFixedExpINTEL";
   1325    case SpvOpPtrCastToCrossWorkgroupINTEL: return "SpvOpPtrCastToCrossWorkgroupINTEL";
   1326    case SpvOpCrossWorkgroupCastToPtrINTEL: return "SpvOpCrossWorkgroupCastToPtrINTEL";
   1327    case SpvOpReadPipeBlockingINTEL: return "SpvOpReadPipeBlockingINTEL";
   1328    case SpvOpWritePipeBlockingINTEL: return "SpvOpWritePipeBlockingINTEL";
   1329    case SpvOpFPGARegINTEL: return "SpvOpFPGARegINTEL";
   1330    case SpvOpRayQueryGetRayTMinKHR: return "SpvOpRayQueryGetRayTMinKHR";
   1331    case SpvOpRayQueryGetRayFlagsKHR: return "SpvOpRayQueryGetRayFlagsKHR";
   1332    case SpvOpRayQueryGetIntersectionTKHR: return "SpvOpRayQueryGetIntersectionTKHR";
   1333    case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: return "SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR";
   1334    case SpvOpRayQueryGetIntersectionInstanceIdKHR: return "SpvOpRayQueryGetIntersectionInstanceIdKHR";
   1335    case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
   1336    case SpvOpRayQueryGetIntersectionGeometryIndexKHR: return "SpvOpRayQueryGetIntersectionGeometryIndexKHR";
   1337    case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: return "SpvOpRayQueryGetIntersectionPrimitiveIndexKHR";
   1338    case SpvOpRayQueryGetIntersectionBarycentricsKHR: return "SpvOpRayQueryGetIntersectionBarycentricsKHR";
   1339    case SpvOpRayQueryGetIntersectionFrontFaceKHR: return "SpvOpRayQueryGetIntersectionFrontFaceKHR";
   1340    case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
   1341    case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: return "SpvOpRayQueryGetIntersectionObjectRayDirectionKHR";
   1342    case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: return "SpvOpRayQueryGetIntersectionObjectRayOriginKHR";
   1343    case SpvOpRayQueryGetWorldRayDirectionKHR: return "SpvOpRayQueryGetWorldRayDirectionKHR";
   1344    case SpvOpRayQueryGetWorldRayOriginKHR: return "SpvOpRayQueryGetWorldRayOriginKHR";
   1345    case SpvOpRayQueryGetIntersectionObjectToWorldKHR: return "SpvOpRayQueryGetIntersectionObjectToWorldKHR";
   1346    case SpvOpRayQueryGetIntersectionWorldToObjectKHR: return "SpvOpRayQueryGetIntersectionWorldToObjectKHR";
   1347    case SpvOpAtomicFAddEXT: return "SpvOpAtomicFAddEXT";
   1348    case SpvOpTypeBufferSurfaceINTEL: return "SpvOpTypeBufferSurfaceINTEL";
   1349    case SpvOpTypeStructContinuedINTEL: return "SpvOpTypeStructContinuedINTEL";
   1350    case SpvOpConstantCompositeContinuedINTEL: return "SpvOpConstantCompositeContinuedINTEL";
   1351    case SpvOpSpecConstantCompositeContinuedINTEL: return "SpvOpSpecConstantCompositeContinuedINTEL";
   1352    case SpvOpMax: break; /* silence warnings about unhandled enums. */
   1353    }
   1354 
   1355    return "unknown";
   1356 }
   1357