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 *
spirv_addressingmodel_to_string(SpvAddressingModel v)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 *
spirv_builtin_to_string(SpvBuiltIn v)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 *
spirv_capability_to_string(SpvCapability v)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 SpvCapabilitySubgroupVoteKHR: return "SpvCapabilitySubgroupVoteKHR";
226    case SpvCapabilityStorageBuffer16BitAccess: return "SpvCapabilityStorageBuffer16BitAccess";
227    case SpvCapabilityUniformAndStorageBuffer16BitAccess: return "SpvCapabilityUniformAndStorageBuffer16BitAccess";
228    case SpvCapabilityStoragePushConstant16: return "SpvCapabilityStoragePushConstant16";
229    case SpvCapabilityStorageInputOutput16: return "SpvCapabilityStorageInputOutput16";
230    case SpvCapabilityDeviceGroup: return "SpvCapabilityDeviceGroup";
231    case SpvCapabilityMultiView: return "SpvCapabilityMultiView";
232    case SpvCapabilityVariablePointersStorageBuffer: return "SpvCapabilityVariablePointersStorageBuffer";
233    case SpvCapabilityVariablePointers: return "SpvCapabilityVariablePointers";
234    case SpvCapabilityAtomicStorageOps: return "SpvCapabilityAtomicStorageOps";
235    case SpvCapabilitySampleMaskPostDepthCoverage: return "SpvCapabilitySampleMaskPostDepthCoverage";
236    case SpvCapabilityStorageBuffer8BitAccess: return "SpvCapabilityStorageBuffer8BitAccess";
237    case SpvCapabilityUniformAndStorageBuffer8BitAccess: return "SpvCapabilityUniformAndStorageBuffer8BitAccess";
238    case SpvCapabilityStoragePushConstant8: return "SpvCapabilityStoragePushConstant8";
239    case SpvCapabilityDenormPreserve: return "SpvCapabilityDenormPreserve";
240    case SpvCapabilityDenormFlushToZero: return "SpvCapabilityDenormFlushToZero";
241    case SpvCapabilitySignedZeroInfNanPreserve: return "SpvCapabilitySignedZeroInfNanPreserve";
242    case SpvCapabilityRoundingModeRTE: return "SpvCapabilityRoundingModeRTE";
243    case SpvCapabilityRoundingModeRTZ: return "SpvCapabilityRoundingModeRTZ";
244    case SpvCapabilityRayQueryProvisionalKHR: return "SpvCapabilityRayQueryProvisionalKHR";
245    case SpvCapabilityRayTraversalPrimitiveCullingProvisionalKHR: return "SpvCapabilityRayTraversalPrimitiveCullingProvisionalKHR";
246    case SpvCapabilityFloat16ImageAMD: return "SpvCapabilityFloat16ImageAMD";
247    case SpvCapabilityImageGatherBiasLodAMD: return "SpvCapabilityImageGatherBiasLodAMD";
248    case SpvCapabilityFragmentMaskAMD: return "SpvCapabilityFragmentMaskAMD";
249    case SpvCapabilityStencilExportEXT: return "SpvCapabilityStencilExportEXT";
250    case SpvCapabilityImageReadWriteLodAMD: return "SpvCapabilityImageReadWriteLodAMD";
251    case SpvCapabilityInt64ImageEXT: return "SpvCapabilityInt64ImageEXT";
252    case SpvCapabilityShaderClockKHR: return "SpvCapabilityShaderClockKHR";
253    case SpvCapabilitySampleMaskOverrideCoverageNV: return "SpvCapabilitySampleMaskOverrideCoverageNV";
254    case SpvCapabilityGeometryShaderPassthroughNV: return "SpvCapabilityGeometryShaderPassthroughNV";
255    case SpvCapabilityShaderViewportIndexLayerEXT: return "SpvCapabilityShaderViewportIndexLayerEXT";
256    case SpvCapabilityShaderViewportMaskNV: return "SpvCapabilityShaderViewportMaskNV";
257    case SpvCapabilityShaderStereoViewNV: return "SpvCapabilityShaderStereoViewNV";
258    case SpvCapabilityPerViewAttributesNV: return "SpvCapabilityPerViewAttributesNV";
259    case SpvCapabilityFragmentFullyCoveredEXT: return "SpvCapabilityFragmentFullyCoveredEXT";
260    case SpvCapabilityMeshShadingNV: return "SpvCapabilityMeshShadingNV";
261    case SpvCapabilityImageFootprintNV: return "SpvCapabilityImageFootprintNV";
262    case SpvCapabilityFragmentBarycentricNV: return "SpvCapabilityFragmentBarycentricNV";
263    case SpvCapabilityComputeDerivativeGroupQuadsNV: return "SpvCapabilityComputeDerivativeGroupQuadsNV";
264    case SpvCapabilityFragmentDensityEXT: return "SpvCapabilityFragmentDensityEXT";
265    case SpvCapabilityGroupNonUniformPartitionedNV: return "SpvCapabilityGroupNonUniformPartitionedNV";
266    case SpvCapabilityShaderNonUniform: return "SpvCapabilityShaderNonUniform";
267    case SpvCapabilityRuntimeDescriptorArray: return "SpvCapabilityRuntimeDescriptorArray";
268    case SpvCapabilityInputAttachmentArrayDynamicIndexing: return "SpvCapabilityInputAttachmentArrayDynamicIndexing";
269    case SpvCapabilityUniformTexelBufferArrayDynamicIndexing: return "SpvCapabilityUniformTexelBufferArrayDynamicIndexing";
270    case SpvCapabilityStorageTexelBufferArrayDynamicIndexing: return "SpvCapabilityStorageTexelBufferArrayDynamicIndexing";
271    case SpvCapabilityUniformBufferArrayNonUniformIndexing: return "SpvCapabilityUniformBufferArrayNonUniformIndexing";
272    case SpvCapabilitySampledImageArrayNonUniformIndexing: return "SpvCapabilitySampledImageArrayNonUniformIndexing";
273    case SpvCapabilityStorageBufferArrayNonUniformIndexing: return "SpvCapabilityStorageBufferArrayNonUniformIndexing";
274    case SpvCapabilityStorageImageArrayNonUniformIndexing: return "SpvCapabilityStorageImageArrayNonUniformIndexing";
275    case SpvCapabilityInputAttachmentArrayNonUniformIndexing: return "SpvCapabilityInputAttachmentArrayNonUniformIndexing";
276    case SpvCapabilityUniformTexelBufferArrayNonUniformIndexing: return "SpvCapabilityUniformTexelBufferArrayNonUniformIndexing";
277    case SpvCapabilityStorageTexelBufferArrayNonUniformIndexing: return "SpvCapabilityStorageTexelBufferArrayNonUniformIndexing";
278    case SpvCapabilityRayTracingNV: return "SpvCapabilityRayTracingNV";
279    case SpvCapabilityVulkanMemoryModel: return "SpvCapabilityVulkanMemoryModel";
280    case SpvCapabilityVulkanMemoryModelDeviceScope: return "SpvCapabilityVulkanMemoryModelDeviceScope";
281    case SpvCapabilityPhysicalStorageBufferAddresses: return "SpvCapabilityPhysicalStorageBufferAddresses";
282    case SpvCapabilityComputeDerivativeGroupLinearNV: return "SpvCapabilityComputeDerivativeGroupLinearNV";
283    case SpvCapabilityRayTracingProvisionalKHR: return "SpvCapabilityRayTracingProvisionalKHR";
284    case SpvCapabilityCooperativeMatrixNV: return "SpvCapabilityCooperativeMatrixNV";
285    case SpvCapabilityFragmentShaderSampleInterlockEXT: return "SpvCapabilityFragmentShaderSampleInterlockEXT";
286    case SpvCapabilityFragmentShaderShadingRateInterlockEXT: return "SpvCapabilityFragmentShaderShadingRateInterlockEXT";
287    case SpvCapabilityShaderSMBuiltinsNV: return "SpvCapabilityShaderSMBuiltinsNV";
288    case SpvCapabilityFragmentShaderPixelInterlockEXT: return "SpvCapabilityFragmentShaderPixelInterlockEXT";
289    case SpvCapabilityDemoteToHelperInvocationEXT: return "SpvCapabilityDemoteToHelperInvocationEXT";
290    case SpvCapabilitySubgroupShuffleINTEL: return "SpvCapabilitySubgroupShuffleINTEL";
291    case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SpvCapabilitySubgroupBufferBlockIOINTEL";
292    case SpvCapabilitySubgroupImageBlockIOINTEL: return "SpvCapabilitySubgroupImageBlockIOINTEL";
293    case SpvCapabilitySubgroupImageMediaBlockIOINTEL: return "SpvCapabilitySubgroupImageMediaBlockIOINTEL";
294    case SpvCapabilityIntegerFunctions2INTEL: return "SpvCapabilityIntegerFunctions2INTEL";
295    case SpvCapabilityFunctionPointersINTEL: return "SpvCapabilityFunctionPointersINTEL";
296    case SpvCapabilityIndirectReferencesINTEL: return "SpvCapabilityIndirectReferencesINTEL";
297    case SpvCapabilitySubgroupAvcMotionEstimationINTEL: return "SpvCapabilitySubgroupAvcMotionEstimationINTEL";
298    case SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL";
299    case SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL";
300    case SpvCapabilityFPGAMemoryAttributesINTEL: return "SpvCapabilityFPGAMemoryAttributesINTEL";
301    case SpvCapabilityUnstructuredLoopControlsINTEL: return "SpvCapabilityUnstructuredLoopControlsINTEL";
302    case SpvCapabilityFPGALoopControlsINTEL: return "SpvCapabilityFPGALoopControlsINTEL";
303    case SpvCapabilityKernelAttributesINTEL: return "SpvCapabilityKernelAttributesINTEL";
304    case SpvCapabilityFPGAKernelAttributesINTEL: return "SpvCapabilityFPGAKernelAttributesINTEL";
305    case SpvCapabilityBlockingPipesINTEL: return "SpvCapabilityBlockingPipesINTEL";
306    case SpvCapabilityFPGARegINTEL: return "SpvCapabilityFPGARegINTEL";
307    case SpvCapabilityAtomicFloat32AddEXT: return "SpvCapabilityAtomicFloat32AddEXT";
308    case SpvCapabilityAtomicFloat64AddEXT: return "SpvCapabilityAtomicFloat64AddEXT";
309    case SpvCapabilityMax: break; /* silence warnings about unhandled enums. */
310    }
311 
312    return "unknown";
313 }
314 
315 const char *
spirv_decoration_to_string(SpvDecoration v)316 spirv_decoration_to_string(SpvDecoration v)
317 {
318    switch (v) {
319    case SpvDecorationRelaxedPrecision: return "SpvDecorationRelaxedPrecision";
320    case SpvDecorationSpecId: return "SpvDecorationSpecId";
321    case SpvDecorationBlock: return "SpvDecorationBlock";
322    case SpvDecorationBufferBlock: return "SpvDecorationBufferBlock";
323    case SpvDecorationRowMajor: return "SpvDecorationRowMajor";
324    case SpvDecorationColMajor: return "SpvDecorationColMajor";
325    case SpvDecorationArrayStride: return "SpvDecorationArrayStride";
326    case SpvDecorationMatrixStride: return "SpvDecorationMatrixStride";
327    case SpvDecorationGLSLShared: return "SpvDecorationGLSLShared";
328    case SpvDecorationGLSLPacked: return "SpvDecorationGLSLPacked";
329    case SpvDecorationCPacked: return "SpvDecorationCPacked";
330    case SpvDecorationBuiltIn: return "SpvDecorationBuiltIn";
331    case SpvDecorationNoPerspective: return "SpvDecorationNoPerspective";
332    case SpvDecorationFlat: return "SpvDecorationFlat";
333    case SpvDecorationPatch: return "SpvDecorationPatch";
334    case SpvDecorationCentroid: return "SpvDecorationCentroid";
335    case SpvDecorationSample: return "SpvDecorationSample";
336    case SpvDecorationInvariant: return "SpvDecorationInvariant";
337    case SpvDecorationRestrict: return "SpvDecorationRestrict";
338    case SpvDecorationAliased: return "SpvDecorationAliased";
339    case SpvDecorationVolatile: return "SpvDecorationVolatile";
340    case SpvDecorationConstant: return "SpvDecorationConstant";
341    case SpvDecorationCoherent: return "SpvDecorationCoherent";
342    case SpvDecorationNonWritable: return "SpvDecorationNonWritable";
343    case SpvDecorationNonReadable: return "SpvDecorationNonReadable";
344    case SpvDecorationUniform: return "SpvDecorationUniform";
345    case SpvDecorationUniformId: return "SpvDecorationUniformId";
346    case SpvDecorationSaturatedConversion: return "SpvDecorationSaturatedConversion";
347    case SpvDecorationStream: return "SpvDecorationStream";
348    case SpvDecorationLocation: return "SpvDecorationLocation";
349    case SpvDecorationComponent: return "SpvDecorationComponent";
350    case SpvDecorationIndex: return "SpvDecorationIndex";
351    case SpvDecorationBinding: return "SpvDecorationBinding";
352    case SpvDecorationDescriptorSet: return "SpvDecorationDescriptorSet";
353    case SpvDecorationOffset: return "SpvDecorationOffset";
354    case SpvDecorationXfbBuffer: return "SpvDecorationXfbBuffer";
355    case SpvDecorationXfbStride: return "SpvDecorationXfbStride";
356    case SpvDecorationFuncParamAttr: return "SpvDecorationFuncParamAttr";
357    case SpvDecorationFPRoundingMode: return "SpvDecorationFPRoundingMode";
358    case SpvDecorationFPFastMathMode: return "SpvDecorationFPFastMathMode";
359    case SpvDecorationLinkageAttributes: return "SpvDecorationLinkageAttributes";
360    case SpvDecorationNoContraction: return "SpvDecorationNoContraction";
361    case SpvDecorationInputAttachmentIndex: return "SpvDecorationInputAttachmentIndex";
362    case SpvDecorationAlignment: return "SpvDecorationAlignment";
363    case SpvDecorationMaxByteOffset: return "SpvDecorationMaxByteOffset";
364    case SpvDecorationAlignmentId: return "SpvDecorationAlignmentId";
365    case SpvDecorationMaxByteOffsetId: return "SpvDecorationMaxByteOffsetId";
366    case SpvDecorationNoSignedWrap: return "SpvDecorationNoSignedWrap";
367    case SpvDecorationNoUnsignedWrap: return "SpvDecorationNoUnsignedWrap";
368    case SpvDecorationExplicitInterpAMD: return "SpvDecorationExplicitInterpAMD";
369    case SpvDecorationOverrideCoverageNV: return "SpvDecorationOverrideCoverageNV";
370    case SpvDecorationPassthroughNV: return "SpvDecorationPassthroughNV";
371    case SpvDecorationViewportRelativeNV: return "SpvDecorationViewportRelativeNV";
372    case SpvDecorationSecondaryViewportRelativeNV: return "SpvDecorationSecondaryViewportRelativeNV";
373    case SpvDecorationPerPrimitiveNV: return "SpvDecorationPerPrimitiveNV";
374    case SpvDecorationPerViewNV: return "SpvDecorationPerViewNV";
375    case SpvDecorationPerTaskNV: return "SpvDecorationPerTaskNV";
376    case SpvDecorationPerVertexNV: return "SpvDecorationPerVertexNV";
377    case SpvDecorationNonUniform: return "SpvDecorationNonUniform";
378    case SpvDecorationRestrictPointer: return "SpvDecorationRestrictPointer";
379    case SpvDecorationAliasedPointer: return "SpvDecorationAliasedPointer";
380    case SpvDecorationReferencedIndirectlyINTEL: return "SpvDecorationReferencedIndirectlyINTEL";
381    case SpvDecorationCounterBuffer: return "SpvDecorationCounterBuffer";
382    case SpvDecorationUserSemantic: return "SpvDecorationUserSemantic";
383    case SpvDecorationUserTypeGOOGLE: return "SpvDecorationUserTypeGOOGLE";
384    case SpvDecorationRegisterINTEL: return "SpvDecorationRegisterINTEL";
385    case SpvDecorationMemoryINTEL: return "SpvDecorationMemoryINTEL";
386    case SpvDecorationNumbanksINTEL: return "SpvDecorationNumbanksINTEL";
387    case SpvDecorationBankwidthINTEL: return "SpvDecorationBankwidthINTEL";
388    case SpvDecorationMaxPrivateCopiesINTEL: return "SpvDecorationMaxPrivateCopiesINTEL";
389    case SpvDecorationSinglepumpINTEL: return "SpvDecorationSinglepumpINTEL";
390    case SpvDecorationDoublepumpINTEL: return "SpvDecorationDoublepumpINTEL";
391    case SpvDecorationMaxReplicatesINTEL: return "SpvDecorationMaxReplicatesINTEL";
392    case SpvDecorationSimpleDualPortINTEL: return "SpvDecorationSimpleDualPortINTEL";
393    case SpvDecorationMergeINTEL: return "SpvDecorationMergeINTEL";
394    case SpvDecorationBankBitsINTEL: return "SpvDecorationBankBitsINTEL";
395    case SpvDecorationForcePow2DepthINTEL: return "SpvDecorationForcePow2DepthINTEL";
396    case SpvDecorationMax: break; /* silence warnings about unhandled enums. */
397    }
398 
399    return "unknown";
400 }
401 
402 const char *
spirv_dim_to_string(SpvDim v)403 spirv_dim_to_string(SpvDim v)
404 {
405    switch (v) {
406    case SpvDim1D: return "SpvDim1D";
407    case SpvDim2D: return "SpvDim2D";
408    case SpvDim3D: return "SpvDim3D";
409    case SpvDimCube: return "SpvDimCube";
410    case SpvDimRect: return "SpvDimRect";
411    case SpvDimBuffer: return "SpvDimBuffer";
412    case SpvDimSubpassData: return "SpvDimSubpassData";
413    case SpvDimMax: break; /* silence warnings about unhandled enums. */
414    }
415 
416    return "unknown";
417 }
418 
419 const char *
spirv_executionmode_to_string(SpvExecutionMode v)420 spirv_executionmode_to_string(SpvExecutionMode v)
421 {
422    switch (v) {
423    case SpvExecutionModeInvocations: return "SpvExecutionModeInvocations";
424    case SpvExecutionModeSpacingEqual: return "SpvExecutionModeSpacingEqual";
425    case SpvExecutionModeSpacingFractionalEven: return "SpvExecutionModeSpacingFractionalEven";
426    case SpvExecutionModeSpacingFractionalOdd: return "SpvExecutionModeSpacingFractionalOdd";
427    case SpvExecutionModeVertexOrderCw: return "SpvExecutionModeVertexOrderCw";
428    case SpvExecutionModeVertexOrderCcw: return "SpvExecutionModeVertexOrderCcw";
429    case SpvExecutionModePixelCenterInteger: return "SpvExecutionModePixelCenterInteger";
430    case SpvExecutionModeOriginUpperLeft: return "SpvExecutionModeOriginUpperLeft";
431    case SpvExecutionModeOriginLowerLeft: return "SpvExecutionModeOriginLowerLeft";
432    case SpvExecutionModeEarlyFragmentTests: return "SpvExecutionModeEarlyFragmentTests";
433    case SpvExecutionModePointMode: return "SpvExecutionModePointMode";
434    case SpvExecutionModeXfb: return "SpvExecutionModeXfb";
435    case SpvExecutionModeDepthReplacing: return "SpvExecutionModeDepthReplacing";
436    case SpvExecutionModeDepthGreater: return "SpvExecutionModeDepthGreater";
437    case SpvExecutionModeDepthLess: return "SpvExecutionModeDepthLess";
438    case SpvExecutionModeDepthUnchanged: return "SpvExecutionModeDepthUnchanged";
439    case SpvExecutionModeLocalSize: return "SpvExecutionModeLocalSize";
440    case SpvExecutionModeLocalSizeHint: return "SpvExecutionModeLocalSizeHint";
441    case SpvExecutionModeInputPoints: return "SpvExecutionModeInputPoints";
442    case SpvExecutionModeInputLines: return "SpvExecutionModeInputLines";
443    case SpvExecutionModeInputLinesAdjacency: return "SpvExecutionModeInputLinesAdjacency";
444    case SpvExecutionModeTriangles: return "SpvExecutionModeTriangles";
445    case SpvExecutionModeInputTrianglesAdjacency: return "SpvExecutionModeInputTrianglesAdjacency";
446    case SpvExecutionModeQuads: return "SpvExecutionModeQuads";
447    case SpvExecutionModeIsolines: return "SpvExecutionModeIsolines";
448    case SpvExecutionModeOutputVertices: return "SpvExecutionModeOutputVertices";
449    case SpvExecutionModeOutputPoints: return "SpvExecutionModeOutputPoints";
450    case SpvExecutionModeOutputLineStrip: return "SpvExecutionModeOutputLineStrip";
451    case SpvExecutionModeOutputTriangleStrip: return "SpvExecutionModeOutputTriangleStrip";
452    case SpvExecutionModeVecTypeHint: return "SpvExecutionModeVecTypeHint";
453    case SpvExecutionModeContractionOff: return "SpvExecutionModeContractionOff";
454    case SpvExecutionModeInitializer: return "SpvExecutionModeInitializer";
455    case SpvExecutionModeFinalizer: return "SpvExecutionModeFinalizer";
456    case SpvExecutionModeSubgroupSize: return "SpvExecutionModeSubgroupSize";
457    case SpvExecutionModeSubgroupsPerWorkgroup: return "SpvExecutionModeSubgroupsPerWorkgroup";
458    case SpvExecutionModeSubgroupsPerWorkgroupId: return "SpvExecutionModeSubgroupsPerWorkgroupId";
459    case SpvExecutionModeLocalSizeId: return "SpvExecutionModeLocalSizeId";
460    case SpvExecutionModeLocalSizeHintId: return "SpvExecutionModeLocalSizeHintId";
461    case SpvExecutionModePostDepthCoverage: return "SpvExecutionModePostDepthCoverage";
462    case SpvExecutionModeDenormPreserve: return "SpvExecutionModeDenormPreserve";
463    case SpvExecutionModeDenormFlushToZero: return "SpvExecutionModeDenormFlushToZero";
464    case SpvExecutionModeSignedZeroInfNanPreserve: return "SpvExecutionModeSignedZeroInfNanPreserve";
465    case SpvExecutionModeRoundingModeRTE: return "SpvExecutionModeRoundingModeRTE";
466    case SpvExecutionModeRoundingModeRTZ: return "SpvExecutionModeRoundingModeRTZ";
467    case SpvExecutionModeStencilRefReplacingEXT: return "SpvExecutionModeStencilRefReplacingEXT";
468    case SpvExecutionModeOutputLinesNV: return "SpvExecutionModeOutputLinesNV";
469    case SpvExecutionModeOutputPrimitivesNV: return "SpvExecutionModeOutputPrimitivesNV";
470    case SpvExecutionModeDerivativeGroupQuadsNV: return "SpvExecutionModeDerivativeGroupQuadsNV";
471    case SpvExecutionModeDerivativeGroupLinearNV: return "SpvExecutionModeDerivativeGroupLinearNV";
472    case SpvExecutionModeOutputTrianglesNV: return "SpvExecutionModeOutputTrianglesNV";
473    case SpvExecutionModePixelInterlockOrderedEXT: return "SpvExecutionModePixelInterlockOrderedEXT";
474    case SpvExecutionModePixelInterlockUnorderedEXT: return "SpvExecutionModePixelInterlockUnorderedEXT";
475    case SpvExecutionModeSampleInterlockOrderedEXT: return "SpvExecutionModeSampleInterlockOrderedEXT";
476    case SpvExecutionModeSampleInterlockUnorderedEXT: return "SpvExecutionModeSampleInterlockUnorderedEXT";
477    case SpvExecutionModeShadingRateInterlockOrderedEXT: return "SpvExecutionModeShadingRateInterlockOrderedEXT";
478    case SpvExecutionModeShadingRateInterlockUnorderedEXT: return "SpvExecutionModeShadingRateInterlockUnorderedEXT";
479    case SpvExecutionModeMaxWorkgroupSizeINTEL: return "SpvExecutionModeMaxWorkgroupSizeINTEL";
480    case SpvExecutionModeMaxWorkDimINTEL: return "SpvExecutionModeMaxWorkDimINTEL";
481    case SpvExecutionModeNoGlobalOffsetINTEL: return "SpvExecutionModeNoGlobalOffsetINTEL";
482    case SpvExecutionModeNumSIMDWorkitemsINTEL: return "SpvExecutionModeNumSIMDWorkitemsINTEL";
483    case SpvExecutionModeMax: break; /* silence warnings about unhandled enums. */
484    }
485 
486    return "unknown";
487 }
488 
489 const char *
spirv_executionmodel_to_string(SpvExecutionModel v)490 spirv_executionmodel_to_string(SpvExecutionModel v)
491 {
492    switch (v) {
493    case SpvExecutionModelVertex: return "SpvExecutionModelVertex";
494    case SpvExecutionModelTessellationControl: return "SpvExecutionModelTessellationControl";
495    case SpvExecutionModelTessellationEvaluation: return "SpvExecutionModelTessellationEvaluation";
496    case SpvExecutionModelGeometry: return "SpvExecutionModelGeometry";
497    case SpvExecutionModelFragment: return "SpvExecutionModelFragment";
498    case SpvExecutionModelGLCompute: return "SpvExecutionModelGLCompute";
499    case SpvExecutionModelKernel: return "SpvExecutionModelKernel";
500    case SpvExecutionModelTaskNV: return "SpvExecutionModelTaskNV";
501    case SpvExecutionModelMeshNV: return "SpvExecutionModelMeshNV";
502    case SpvExecutionModelRayGenerationNV: return "SpvExecutionModelRayGenerationNV";
503    case SpvExecutionModelIntersectionNV: return "SpvExecutionModelIntersectionNV";
504    case SpvExecutionModelAnyHitNV: return "SpvExecutionModelAnyHitNV";
505    case SpvExecutionModelClosestHitNV: return "SpvExecutionModelClosestHitNV";
506    case SpvExecutionModelMissNV: return "SpvExecutionModelMissNV";
507    case SpvExecutionModelCallableNV: return "SpvExecutionModelCallableNV";
508    case SpvExecutionModelMax: break; /* silence warnings about unhandled enums. */
509    }
510 
511    return "unknown";
512 }
513 
514 const char *
spirv_imageformat_to_string(SpvImageFormat v)515 spirv_imageformat_to_string(SpvImageFormat v)
516 {
517    switch (v) {
518    case SpvImageFormatUnknown: return "SpvImageFormatUnknown";
519    case SpvImageFormatRgba32f: return "SpvImageFormatRgba32f";
520    case SpvImageFormatRgba16f: return "SpvImageFormatRgba16f";
521    case SpvImageFormatR32f: return "SpvImageFormatR32f";
522    case SpvImageFormatRgba8: return "SpvImageFormatRgba8";
523    case SpvImageFormatRgba8Snorm: return "SpvImageFormatRgba8Snorm";
524    case SpvImageFormatRg32f: return "SpvImageFormatRg32f";
525    case SpvImageFormatRg16f: return "SpvImageFormatRg16f";
526    case SpvImageFormatR11fG11fB10f: return "SpvImageFormatR11fG11fB10f";
527    case SpvImageFormatR16f: return "SpvImageFormatR16f";
528    case SpvImageFormatRgba16: return "SpvImageFormatRgba16";
529    case SpvImageFormatRgb10A2: return "SpvImageFormatRgb10A2";
530    case SpvImageFormatRg16: return "SpvImageFormatRg16";
531    case SpvImageFormatRg8: return "SpvImageFormatRg8";
532    case SpvImageFormatR16: return "SpvImageFormatR16";
533    case SpvImageFormatR8: return "SpvImageFormatR8";
534    case SpvImageFormatRgba16Snorm: return "SpvImageFormatRgba16Snorm";
535    case SpvImageFormatRg16Snorm: return "SpvImageFormatRg16Snorm";
536    case SpvImageFormatRg8Snorm: return "SpvImageFormatRg8Snorm";
537    case SpvImageFormatR16Snorm: return "SpvImageFormatR16Snorm";
538    case SpvImageFormatR8Snorm: return "SpvImageFormatR8Snorm";
539    case SpvImageFormatRgba32i: return "SpvImageFormatRgba32i";
540    case SpvImageFormatRgba16i: return "SpvImageFormatRgba16i";
541    case SpvImageFormatRgba8i: return "SpvImageFormatRgba8i";
542    case SpvImageFormatR32i: return "SpvImageFormatR32i";
543    case SpvImageFormatRg32i: return "SpvImageFormatRg32i";
544    case SpvImageFormatRg16i: return "SpvImageFormatRg16i";
545    case SpvImageFormatRg8i: return "SpvImageFormatRg8i";
546    case SpvImageFormatR16i: return "SpvImageFormatR16i";
547    case SpvImageFormatR8i: return "SpvImageFormatR8i";
548    case SpvImageFormatRgba32ui: return "SpvImageFormatRgba32ui";
549    case SpvImageFormatRgba16ui: return "SpvImageFormatRgba16ui";
550    case SpvImageFormatRgba8ui: return "SpvImageFormatRgba8ui";
551    case SpvImageFormatR32ui: return "SpvImageFormatR32ui";
552    case SpvImageFormatRgb10a2ui: return "SpvImageFormatRgb10a2ui";
553    case SpvImageFormatRg32ui: return "SpvImageFormatRg32ui";
554    case SpvImageFormatRg16ui: return "SpvImageFormatRg16ui";
555    case SpvImageFormatRg8ui: return "SpvImageFormatRg8ui";
556    case SpvImageFormatR16ui: return "SpvImageFormatR16ui";
557    case SpvImageFormatR8ui: return "SpvImageFormatR8ui";
558    case SpvImageFormatR64ui: return "SpvImageFormatR64ui";
559    case SpvImageFormatR64i: return "SpvImageFormatR64i";
560    case SpvImageFormatMax: break; /* silence warnings about unhandled enums. */
561    }
562 
563    return "unknown";
564 }
565 
566 const char *
spirv_memorymodel_to_string(SpvMemoryModel v)567 spirv_memorymodel_to_string(SpvMemoryModel v)
568 {
569    switch (v) {
570    case SpvMemoryModelSimple: return "SpvMemoryModelSimple";
571    case SpvMemoryModelGLSL450: return "SpvMemoryModelGLSL450";
572    case SpvMemoryModelOpenCL: return "SpvMemoryModelOpenCL";
573    case SpvMemoryModelVulkan: return "SpvMemoryModelVulkan";
574    case SpvMemoryModelMax: break; /* silence warnings about unhandled enums. */
575    }
576 
577    return "unknown";
578 }
579 
580 const char *
spirv_storageclass_to_string(SpvStorageClass v)581 spirv_storageclass_to_string(SpvStorageClass v)
582 {
583    switch (v) {
584    case SpvStorageClassUniformConstant: return "SpvStorageClassUniformConstant";
585    case SpvStorageClassInput: return "SpvStorageClassInput";
586    case SpvStorageClassUniform: return "SpvStorageClassUniform";
587    case SpvStorageClassOutput: return "SpvStorageClassOutput";
588    case SpvStorageClassWorkgroup: return "SpvStorageClassWorkgroup";
589    case SpvStorageClassCrossWorkgroup: return "SpvStorageClassCrossWorkgroup";
590    case SpvStorageClassPrivate: return "SpvStorageClassPrivate";
591    case SpvStorageClassFunction: return "SpvStorageClassFunction";
592    case SpvStorageClassGeneric: return "SpvStorageClassGeneric";
593    case SpvStorageClassPushConstant: return "SpvStorageClassPushConstant";
594    case SpvStorageClassAtomicCounter: return "SpvStorageClassAtomicCounter";
595    case SpvStorageClassImage: return "SpvStorageClassImage";
596    case SpvStorageClassStorageBuffer: return "SpvStorageClassStorageBuffer";
597    case SpvStorageClassCallableDataNV: return "SpvStorageClassCallableDataNV";
598    case SpvStorageClassIncomingCallableDataNV: return "SpvStorageClassIncomingCallableDataNV";
599    case SpvStorageClassRayPayloadNV: return "SpvStorageClassRayPayloadNV";
600    case SpvStorageClassHitAttributeNV: return "SpvStorageClassHitAttributeNV";
601    case SpvStorageClassIncomingRayPayloadNV: return "SpvStorageClassIncomingRayPayloadNV";
602    case SpvStorageClassShaderRecordBufferNV: return "SpvStorageClassShaderRecordBufferNV";
603    case SpvStorageClassPhysicalStorageBuffer: return "SpvStorageClassPhysicalStorageBuffer";
604    case SpvStorageClassCodeSectionINTEL: return "SpvStorageClassCodeSectionINTEL";
605    case SpvStorageClassMax: break; /* silence warnings about unhandled enums. */
606    }
607 
608    return "unknown";
609 }
610 
611 const char *
spirv_imageoperands_to_string(SpvImageOperandsMask v)612 spirv_imageoperands_to_string(SpvImageOperandsMask v)
613 {
614    switch (v) {
615    case SpvImageOperandsMaskNone: return "SpvImageOperandsNone";
616    case SpvImageOperandsBiasMask: return "SpvImageOperandsBias";
617    case SpvImageOperandsLodMask: return "SpvImageOperandsLod";
618    case SpvImageOperandsGradMask: return "SpvImageOperandsGrad";
619    case SpvImageOperandsConstOffsetMask: return "SpvImageOperandsConstOffset";
620    case SpvImageOperandsOffsetMask: return "SpvImageOperandsOffset";
621    case SpvImageOperandsConstOffsetsMask: return "SpvImageOperandsConstOffsets";
622    case SpvImageOperandsSampleMask: return "SpvImageOperandsSample";
623    case SpvImageOperandsMinLodMask: return "SpvImageOperandsMinLod";
624    case SpvImageOperandsMakeTexelAvailableMask: return "SpvImageOperandsMakeTexelAvailable";
625    case SpvImageOperandsMakeTexelVisibleMask: return "SpvImageOperandsMakeTexelVisible";
626    case SpvImageOperandsNonPrivateTexelMask: return "SpvImageOperandsNonPrivateTexel";
627    case SpvImageOperandsVolatileTexelMask: return "SpvImageOperandsVolatileTexel";
628    case SpvImageOperandsSignExtendMask: return "SpvImageOperandsSignExtend";
629    case SpvImageOperandsZeroExtendMask: return "SpvImageOperandsZeroExtend";
630    }
631 
632    return "unknown";
633 }
634 
635 const char *
spirv_fproundingmode_to_string(SpvFPRoundingMode v)636 spirv_fproundingmode_to_string(SpvFPRoundingMode v)
637 {
638    switch (v) {
639    case SpvFPRoundingModeRTE: return "SpvFPRoundingModeRTE";
640    case SpvFPRoundingModeRTZ: return "SpvFPRoundingModeRTZ";
641    case SpvFPRoundingModeRTP: return "SpvFPRoundingModeRTP";
642    case SpvFPRoundingModeRTN: return "SpvFPRoundingModeRTN";
643    case SpvFPRoundingModeMax: break; /* silence warnings about unhandled enums. */
644    }
645 
646    return "unknown";
647 }
648 
649 const char *
spirv_op_to_string(SpvOp v)650 spirv_op_to_string(SpvOp v)
651 {
652    switch (v) {
653    case SpvOpNop: return "SpvOpNop";
654    case SpvOpUndef: return "SpvOpUndef";
655    case SpvOpSourceContinued: return "SpvOpSourceContinued";
656    case SpvOpSource: return "SpvOpSource";
657    case SpvOpSourceExtension: return "SpvOpSourceExtension";
658    case SpvOpName: return "SpvOpName";
659    case SpvOpMemberName: return "SpvOpMemberName";
660    case SpvOpString: return "SpvOpString";
661    case SpvOpLine: return "SpvOpLine";
662    case SpvOpExtension: return "SpvOpExtension";
663    case SpvOpExtInstImport: return "SpvOpExtInstImport";
664    case SpvOpExtInst: return "SpvOpExtInst";
665    case SpvOpMemoryModel: return "SpvOpMemoryModel";
666    case SpvOpEntryPoint: return "SpvOpEntryPoint";
667    case SpvOpExecutionMode: return "SpvOpExecutionMode";
668    case SpvOpCapability: return "SpvOpCapability";
669    case SpvOpTypeVoid: return "SpvOpTypeVoid";
670    case SpvOpTypeBool: return "SpvOpTypeBool";
671    case SpvOpTypeInt: return "SpvOpTypeInt";
672    case SpvOpTypeFloat: return "SpvOpTypeFloat";
673    case SpvOpTypeVector: return "SpvOpTypeVector";
674    case SpvOpTypeMatrix: return "SpvOpTypeMatrix";
675    case SpvOpTypeImage: return "SpvOpTypeImage";
676    case SpvOpTypeSampler: return "SpvOpTypeSampler";
677    case SpvOpTypeSampledImage: return "SpvOpTypeSampledImage";
678    case SpvOpTypeArray: return "SpvOpTypeArray";
679    case SpvOpTypeRuntimeArray: return "SpvOpTypeRuntimeArray";
680    case SpvOpTypeStruct: return "SpvOpTypeStruct";
681    case SpvOpTypeOpaque: return "SpvOpTypeOpaque";
682    case SpvOpTypePointer: return "SpvOpTypePointer";
683    case SpvOpTypeFunction: return "SpvOpTypeFunction";
684    case SpvOpTypeEvent: return "SpvOpTypeEvent";
685    case SpvOpTypeDeviceEvent: return "SpvOpTypeDeviceEvent";
686    case SpvOpTypeReserveId: return "SpvOpTypeReserveId";
687    case SpvOpTypeQueue: return "SpvOpTypeQueue";
688    case SpvOpTypePipe: return "SpvOpTypePipe";
689    case SpvOpTypeForwardPointer: return "SpvOpTypeForwardPointer";
690    case SpvOpConstantTrue: return "SpvOpConstantTrue";
691    case SpvOpConstantFalse: return "SpvOpConstantFalse";
692    case SpvOpConstant: return "SpvOpConstant";
693    case SpvOpConstantComposite: return "SpvOpConstantComposite";
694    case SpvOpConstantSampler: return "SpvOpConstantSampler";
695    case SpvOpConstantNull: return "SpvOpConstantNull";
696    case SpvOpSpecConstantTrue: return "SpvOpSpecConstantTrue";
697    case SpvOpSpecConstantFalse: return "SpvOpSpecConstantFalse";
698    case SpvOpSpecConstant: return "SpvOpSpecConstant";
699    case SpvOpSpecConstantComposite: return "SpvOpSpecConstantComposite";
700    case SpvOpSpecConstantOp: return "SpvOpSpecConstantOp";
701    case SpvOpFunction: return "SpvOpFunction";
702    case SpvOpFunctionParameter: return "SpvOpFunctionParameter";
703    case SpvOpFunctionEnd: return "SpvOpFunctionEnd";
704    case SpvOpFunctionCall: return "SpvOpFunctionCall";
705    case SpvOpVariable: return "SpvOpVariable";
706    case SpvOpImageTexelPointer: return "SpvOpImageTexelPointer";
707    case SpvOpLoad: return "SpvOpLoad";
708    case SpvOpStore: return "SpvOpStore";
709    case SpvOpCopyMemory: return "SpvOpCopyMemory";
710    case SpvOpCopyMemorySized: return "SpvOpCopyMemorySized";
711    case SpvOpAccessChain: return "SpvOpAccessChain";
712    case SpvOpInBoundsAccessChain: return "SpvOpInBoundsAccessChain";
713    case SpvOpPtrAccessChain: return "SpvOpPtrAccessChain";
714    case SpvOpArrayLength: return "SpvOpArrayLength";
715    case SpvOpGenericPtrMemSemantics: return "SpvOpGenericPtrMemSemantics";
716    case SpvOpInBoundsPtrAccessChain: return "SpvOpInBoundsPtrAccessChain";
717    case SpvOpDecorate: return "SpvOpDecorate";
718    case SpvOpMemberDecorate: return "SpvOpMemberDecorate";
719    case SpvOpDecorationGroup: return "SpvOpDecorationGroup";
720    case SpvOpGroupDecorate: return "SpvOpGroupDecorate";
721    case SpvOpGroupMemberDecorate: return "SpvOpGroupMemberDecorate";
722    case SpvOpVectorExtractDynamic: return "SpvOpVectorExtractDynamic";
723    case SpvOpVectorInsertDynamic: return "SpvOpVectorInsertDynamic";
724    case SpvOpVectorShuffle: return "SpvOpVectorShuffle";
725    case SpvOpCompositeConstruct: return "SpvOpCompositeConstruct";
726    case SpvOpCompositeExtract: return "SpvOpCompositeExtract";
727    case SpvOpCompositeInsert: return "SpvOpCompositeInsert";
728    case SpvOpCopyObject: return "SpvOpCopyObject";
729    case SpvOpTranspose: return "SpvOpTranspose";
730    case SpvOpSampledImage: return "SpvOpSampledImage";
731    case SpvOpImageSampleImplicitLod: return "SpvOpImageSampleImplicitLod";
732    case SpvOpImageSampleExplicitLod: return "SpvOpImageSampleExplicitLod";
733    case SpvOpImageSampleDrefImplicitLod: return "SpvOpImageSampleDrefImplicitLod";
734    case SpvOpImageSampleDrefExplicitLod: return "SpvOpImageSampleDrefExplicitLod";
735    case SpvOpImageSampleProjImplicitLod: return "SpvOpImageSampleProjImplicitLod";
736    case SpvOpImageSampleProjExplicitLod: return "SpvOpImageSampleProjExplicitLod";
737    case SpvOpImageSampleProjDrefImplicitLod: return "SpvOpImageSampleProjDrefImplicitLod";
738    case SpvOpImageSampleProjDrefExplicitLod: return "SpvOpImageSampleProjDrefExplicitLod";
739    case SpvOpImageFetch: return "SpvOpImageFetch";
740    case SpvOpImageGather: return "SpvOpImageGather";
741    case SpvOpImageDrefGather: return "SpvOpImageDrefGather";
742    case SpvOpImageRead: return "SpvOpImageRead";
743    case SpvOpImageWrite: return "SpvOpImageWrite";
744    case SpvOpImage: return "SpvOpImage";
745    case SpvOpImageQueryFormat: return "SpvOpImageQueryFormat";
746    case SpvOpImageQueryOrder: return "SpvOpImageQueryOrder";
747    case SpvOpImageQuerySizeLod: return "SpvOpImageQuerySizeLod";
748    case SpvOpImageQuerySize: return "SpvOpImageQuerySize";
749    case SpvOpImageQueryLod: return "SpvOpImageQueryLod";
750    case SpvOpImageQueryLevels: return "SpvOpImageQueryLevels";
751    case SpvOpImageQuerySamples: return "SpvOpImageQuerySamples";
752    case SpvOpConvertFToU: return "SpvOpConvertFToU";
753    case SpvOpConvertFToS: return "SpvOpConvertFToS";
754    case SpvOpConvertSToF: return "SpvOpConvertSToF";
755    case SpvOpConvertUToF: return "SpvOpConvertUToF";
756    case SpvOpUConvert: return "SpvOpUConvert";
757    case SpvOpSConvert: return "SpvOpSConvert";
758    case SpvOpFConvert: return "SpvOpFConvert";
759    case SpvOpQuantizeToF16: return "SpvOpQuantizeToF16";
760    case SpvOpConvertPtrToU: return "SpvOpConvertPtrToU";
761    case SpvOpSatConvertSToU: return "SpvOpSatConvertSToU";
762    case SpvOpSatConvertUToS: return "SpvOpSatConvertUToS";
763    case SpvOpConvertUToPtr: return "SpvOpConvertUToPtr";
764    case SpvOpPtrCastToGeneric: return "SpvOpPtrCastToGeneric";
765    case SpvOpGenericCastToPtr: return "SpvOpGenericCastToPtr";
766    case SpvOpGenericCastToPtrExplicit: return "SpvOpGenericCastToPtrExplicit";
767    case SpvOpBitcast: return "SpvOpBitcast";
768    case SpvOpSNegate: return "SpvOpSNegate";
769    case SpvOpFNegate: return "SpvOpFNegate";
770    case SpvOpIAdd: return "SpvOpIAdd";
771    case SpvOpFAdd: return "SpvOpFAdd";
772    case SpvOpISub: return "SpvOpISub";
773    case SpvOpFSub: return "SpvOpFSub";
774    case SpvOpIMul: return "SpvOpIMul";
775    case SpvOpFMul: return "SpvOpFMul";
776    case SpvOpUDiv: return "SpvOpUDiv";
777    case SpvOpSDiv: return "SpvOpSDiv";
778    case SpvOpFDiv: return "SpvOpFDiv";
779    case SpvOpUMod: return "SpvOpUMod";
780    case SpvOpSRem: return "SpvOpSRem";
781    case SpvOpSMod: return "SpvOpSMod";
782    case SpvOpFRem: return "SpvOpFRem";
783    case SpvOpFMod: return "SpvOpFMod";
784    case SpvOpVectorTimesScalar: return "SpvOpVectorTimesScalar";
785    case SpvOpMatrixTimesScalar: return "SpvOpMatrixTimesScalar";
786    case SpvOpVectorTimesMatrix: return "SpvOpVectorTimesMatrix";
787    case SpvOpMatrixTimesVector: return "SpvOpMatrixTimesVector";
788    case SpvOpMatrixTimesMatrix: return "SpvOpMatrixTimesMatrix";
789    case SpvOpOuterProduct: return "SpvOpOuterProduct";
790    case SpvOpDot: return "SpvOpDot";
791    case SpvOpIAddCarry: return "SpvOpIAddCarry";
792    case SpvOpISubBorrow: return "SpvOpISubBorrow";
793    case SpvOpUMulExtended: return "SpvOpUMulExtended";
794    case SpvOpSMulExtended: return "SpvOpSMulExtended";
795    case SpvOpAny: return "SpvOpAny";
796    case SpvOpAll: return "SpvOpAll";
797    case SpvOpIsNan: return "SpvOpIsNan";
798    case SpvOpIsInf: return "SpvOpIsInf";
799    case SpvOpIsFinite: return "SpvOpIsFinite";
800    case SpvOpIsNormal: return "SpvOpIsNormal";
801    case SpvOpSignBitSet: return "SpvOpSignBitSet";
802    case SpvOpLessOrGreater: return "SpvOpLessOrGreater";
803    case SpvOpOrdered: return "SpvOpOrdered";
804    case SpvOpUnordered: return "SpvOpUnordered";
805    case SpvOpLogicalEqual: return "SpvOpLogicalEqual";
806    case SpvOpLogicalNotEqual: return "SpvOpLogicalNotEqual";
807    case SpvOpLogicalOr: return "SpvOpLogicalOr";
808    case SpvOpLogicalAnd: return "SpvOpLogicalAnd";
809    case SpvOpLogicalNot: return "SpvOpLogicalNot";
810    case SpvOpSelect: return "SpvOpSelect";
811    case SpvOpIEqual: return "SpvOpIEqual";
812    case SpvOpINotEqual: return "SpvOpINotEqual";
813    case SpvOpUGreaterThan: return "SpvOpUGreaterThan";
814    case SpvOpSGreaterThan: return "SpvOpSGreaterThan";
815    case SpvOpUGreaterThanEqual: return "SpvOpUGreaterThanEqual";
816    case SpvOpSGreaterThanEqual: return "SpvOpSGreaterThanEqual";
817    case SpvOpULessThan: return "SpvOpULessThan";
818    case SpvOpSLessThan: return "SpvOpSLessThan";
819    case SpvOpULessThanEqual: return "SpvOpULessThanEqual";
820    case SpvOpSLessThanEqual: return "SpvOpSLessThanEqual";
821    case SpvOpFOrdEqual: return "SpvOpFOrdEqual";
822    case SpvOpFUnordEqual: return "SpvOpFUnordEqual";
823    case SpvOpFOrdNotEqual: return "SpvOpFOrdNotEqual";
824    case SpvOpFUnordNotEqual: return "SpvOpFUnordNotEqual";
825    case SpvOpFOrdLessThan: return "SpvOpFOrdLessThan";
826    case SpvOpFUnordLessThan: return "SpvOpFUnordLessThan";
827    case SpvOpFOrdGreaterThan: return "SpvOpFOrdGreaterThan";
828    case SpvOpFUnordGreaterThan: return "SpvOpFUnordGreaterThan";
829    case SpvOpFOrdLessThanEqual: return "SpvOpFOrdLessThanEqual";
830    case SpvOpFUnordLessThanEqual: return "SpvOpFUnordLessThanEqual";
831    case SpvOpFOrdGreaterThanEqual: return "SpvOpFOrdGreaterThanEqual";
832    case SpvOpFUnordGreaterThanEqual: return "SpvOpFUnordGreaterThanEqual";
833    case SpvOpShiftRightLogical: return "SpvOpShiftRightLogical";
834    case SpvOpShiftRightArithmetic: return "SpvOpShiftRightArithmetic";
835    case SpvOpShiftLeftLogical: return "SpvOpShiftLeftLogical";
836    case SpvOpBitwiseOr: return "SpvOpBitwiseOr";
837    case SpvOpBitwiseXor: return "SpvOpBitwiseXor";
838    case SpvOpBitwiseAnd: return "SpvOpBitwiseAnd";
839    case SpvOpNot: return "SpvOpNot";
840    case SpvOpBitFieldInsert: return "SpvOpBitFieldInsert";
841    case SpvOpBitFieldSExtract: return "SpvOpBitFieldSExtract";
842    case SpvOpBitFieldUExtract: return "SpvOpBitFieldUExtract";
843    case SpvOpBitReverse: return "SpvOpBitReverse";
844    case SpvOpBitCount: return "SpvOpBitCount";
845    case SpvOpDPdx: return "SpvOpDPdx";
846    case SpvOpDPdy: return "SpvOpDPdy";
847    case SpvOpFwidth: return "SpvOpFwidth";
848    case SpvOpDPdxFine: return "SpvOpDPdxFine";
849    case SpvOpDPdyFine: return "SpvOpDPdyFine";
850    case SpvOpFwidthFine: return "SpvOpFwidthFine";
851    case SpvOpDPdxCoarse: return "SpvOpDPdxCoarse";
852    case SpvOpDPdyCoarse: return "SpvOpDPdyCoarse";
853    case SpvOpFwidthCoarse: return "SpvOpFwidthCoarse";
854    case SpvOpEmitVertex: return "SpvOpEmitVertex";
855    case SpvOpEndPrimitive: return "SpvOpEndPrimitive";
856    case SpvOpEmitStreamVertex: return "SpvOpEmitStreamVertex";
857    case SpvOpEndStreamPrimitive: return "SpvOpEndStreamPrimitive";
858    case SpvOpControlBarrier: return "SpvOpControlBarrier";
859    case SpvOpMemoryBarrier: return "SpvOpMemoryBarrier";
860    case SpvOpAtomicLoad: return "SpvOpAtomicLoad";
861    case SpvOpAtomicStore: return "SpvOpAtomicStore";
862    case SpvOpAtomicExchange: return "SpvOpAtomicExchange";
863    case SpvOpAtomicCompareExchange: return "SpvOpAtomicCompareExchange";
864    case SpvOpAtomicCompareExchangeWeak: return "SpvOpAtomicCompareExchangeWeak";
865    case SpvOpAtomicIIncrement: return "SpvOpAtomicIIncrement";
866    case SpvOpAtomicIDecrement: return "SpvOpAtomicIDecrement";
867    case SpvOpAtomicIAdd: return "SpvOpAtomicIAdd";
868    case SpvOpAtomicISub: return "SpvOpAtomicISub";
869    case SpvOpAtomicSMin: return "SpvOpAtomicSMin";
870    case SpvOpAtomicUMin: return "SpvOpAtomicUMin";
871    case SpvOpAtomicSMax: return "SpvOpAtomicSMax";
872    case SpvOpAtomicUMax: return "SpvOpAtomicUMax";
873    case SpvOpAtomicAnd: return "SpvOpAtomicAnd";
874    case SpvOpAtomicOr: return "SpvOpAtomicOr";
875    case SpvOpAtomicXor: return "SpvOpAtomicXor";
876    case SpvOpPhi: return "SpvOpPhi";
877    case SpvOpLoopMerge: return "SpvOpLoopMerge";
878    case SpvOpSelectionMerge: return "SpvOpSelectionMerge";
879    case SpvOpLabel: return "SpvOpLabel";
880    case SpvOpBranch: return "SpvOpBranch";
881    case SpvOpBranchConditional: return "SpvOpBranchConditional";
882    case SpvOpSwitch: return "SpvOpSwitch";
883    case SpvOpKill: return "SpvOpKill";
884    case SpvOpReturn: return "SpvOpReturn";
885    case SpvOpReturnValue: return "SpvOpReturnValue";
886    case SpvOpUnreachable: return "SpvOpUnreachable";
887    case SpvOpLifetimeStart: return "SpvOpLifetimeStart";
888    case SpvOpLifetimeStop: return "SpvOpLifetimeStop";
889    case SpvOpGroupAsyncCopy: return "SpvOpGroupAsyncCopy";
890    case SpvOpGroupWaitEvents: return "SpvOpGroupWaitEvents";
891    case SpvOpGroupAll: return "SpvOpGroupAll";
892    case SpvOpGroupAny: return "SpvOpGroupAny";
893    case SpvOpGroupBroadcast: return "SpvOpGroupBroadcast";
894    case SpvOpGroupIAdd: return "SpvOpGroupIAdd";
895    case SpvOpGroupFAdd: return "SpvOpGroupFAdd";
896    case SpvOpGroupFMin: return "SpvOpGroupFMin";
897    case SpvOpGroupUMin: return "SpvOpGroupUMin";
898    case SpvOpGroupSMin: return "SpvOpGroupSMin";
899    case SpvOpGroupFMax: return "SpvOpGroupFMax";
900    case SpvOpGroupUMax: return "SpvOpGroupUMax";
901    case SpvOpGroupSMax: return "SpvOpGroupSMax";
902    case SpvOpReadPipe: return "SpvOpReadPipe";
903    case SpvOpWritePipe: return "SpvOpWritePipe";
904    case SpvOpReservedReadPipe: return "SpvOpReservedReadPipe";
905    case SpvOpReservedWritePipe: return "SpvOpReservedWritePipe";
906    case SpvOpReserveReadPipePackets: return "SpvOpReserveReadPipePackets";
907    case SpvOpReserveWritePipePackets: return "SpvOpReserveWritePipePackets";
908    case SpvOpCommitReadPipe: return "SpvOpCommitReadPipe";
909    case SpvOpCommitWritePipe: return "SpvOpCommitWritePipe";
910    case SpvOpIsValidReserveId: return "SpvOpIsValidReserveId";
911    case SpvOpGetNumPipePackets: return "SpvOpGetNumPipePackets";
912    case SpvOpGetMaxPipePackets: return "SpvOpGetMaxPipePackets";
913    case SpvOpGroupReserveReadPipePackets: return "SpvOpGroupReserveReadPipePackets";
914    case SpvOpGroupReserveWritePipePackets: return "SpvOpGroupReserveWritePipePackets";
915    case SpvOpGroupCommitReadPipe: return "SpvOpGroupCommitReadPipe";
916    case SpvOpGroupCommitWritePipe: return "SpvOpGroupCommitWritePipe";
917    case SpvOpEnqueueMarker: return "SpvOpEnqueueMarker";
918    case SpvOpEnqueueKernel: return "SpvOpEnqueueKernel";
919    case SpvOpGetKernelNDrangeSubGroupCount: return "SpvOpGetKernelNDrangeSubGroupCount";
920    case SpvOpGetKernelNDrangeMaxSubGroupSize: return "SpvOpGetKernelNDrangeMaxSubGroupSize";
921    case SpvOpGetKernelWorkGroupSize: return "SpvOpGetKernelWorkGroupSize";
922    case SpvOpGetKernelPreferredWorkGroupSizeMultiple: return "SpvOpGetKernelPreferredWorkGroupSizeMultiple";
923    case SpvOpRetainEvent: return "SpvOpRetainEvent";
924    case SpvOpReleaseEvent: return "SpvOpReleaseEvent";
925    case SpvOpCreateUserEvent: return "SpvOpCreateUserEvent";
926    case SpvOpIsValidEvent: return "SpvOpIsValidEvent";
927    case SpvOpSetUserEventStatus: return "SpvOpSetUserEventStatus";
928    case SpvOpCaptureEventProfilingInfo: return "SpvOpCaptureEventProfilingInfo";
929    case SpvOpGetDefaultQueue: return "SpvOpGetDefaultQueue";
930    case SpvOpBuildNDRange: return "SpvOpBuildNDRange";
931    case SpvOpImageSparseSampleImplicitLod: return "SpvOpImageSparseSampleImplicitLod";
932    case SpvOpImageSparseSampleExplicitLod: return "SpvOpImageSparseSampleExplicitLod";
933    case SpvOpImageSparseSampleDrefImplicitLod: return "SpvOpImageSparseSampleDrefImplicitLod";
934    case SpvOpImageSparseSampleDrefExplicitLod: return "SpvOpImageSparseSampleDrefExplicitLod";
935    case SpvOpImageSparseSampleProjImplicitLod: return "SpvOpImageSparseSampleProjImplicitLod";
936    case SpvOpImageSparseSampleProjExplicitLod: return "SpvOpImageSparseSampleProjExplicitLod";
937    case SpvOpImageSparseSampleProjDrefImplicitLod: return "SpvOpImageSparseSampleProjDrefImplicitLod";
938    case SpvOpImageSparseSampleProjDrefExplicitLod: return "SpvOpImageSparseSampleProjDrefExplicitLod";
939    case SpvOpImageSparseFetch: return "SpvOpImageSparseFetch";
940    case SpvOpImageSparseGather: return "SpvOpImageSparseGather";
941    case SpvOpImageSparseDrefGather: return "SpvOpImageSparseDrefGather";
942    case SpvOpImageSparseTexelsResident: return "SpvOpImageSparseTexelsResident";
943    case SpvOpNoLine: return "SpvOpNoLine";
944    case SpvOpAtomicFlagTestAndSet: return "SpvOpAtomicFlagTestAndSet";
945    case SpvOpAtomicFlagClear: return "SpvOpAtomicFlagClear";
946    case SpvOpImageSparseRead: return "SpvOpImageSparseRead";
947    case SpvOpSizeOf: return "SpvOpSizeOf";
948    case SpvOpTypePipeStorage: return "SpvOpTypePipeStorage";
949    case SpvOpConstantPipeStorage: return "SpvOpConstantPipeStorage";
950    case SpvOpCreatePipeFromPipeStorage: return "SpvOpCreatePipeFromPipeStorage";
951    case SpvOpGetKernelLocalSizeForSubgroupCount: return "SpvOpGetKernelLocalSizeForSubgroupCount";
952    case SpvOpGetKernelMaxNumSubgroups: return "SpvOpGetKernelMaxNumSubgroups";
953    case SpvOpTypeNamedBarrier: return "SpvOpTypeNamedBarrier";
954    case SpvOpNamedBarrierInitialize: return "SpvOpNamedBarrierInitialize";
955    case SpvOpMemoryNamedBarrier: return "SpvOpMemoryNamedBarrier";
956    case SpvOpModuleProcessed: return "SpvOpModuleProcessed";
957    case SpvOpExecutionModeId: return "SpvOpExecutionModeId";
958    case SpvOpDecorateId: return "SpvOpDecorateId";
959    case SpvOpGroupNonUniformElect: return "SpvOpGroupNonUniformElect";
960    case SpvOpGroupNonUniformAll: return "SpvOpGroupNonUniformAll";
961    case SpvOpGroupNonUniformAny: return "SpvOpGroupNonUniformAny";
962    case SpvOpGroupNonUniformAllEqual: return "SpvOpGroupNonUniformAllEqual";
963    case SpvOpGroupNonUniformBroadcast: return "SpvOpGroupNonUniformBroadcast";
964    case SpvOpGroupNonUniformBroadcastFirst: return "SpvOpGroupNonUniformBroadcastFirst";
965    case SpvOpGroupNonUniformBallot: return "SpvOpGroupNonUniformBallot";
966    case SpvOpGroupNonUniformInverseBallot: return "SpvOpGroupNonUniformInverseBallot";
967    case SpvOpGroupNonUniformBallotBitExtract: return "SpvOpGroupNonUniformBallotBitExtract";
968    case SpvOpGroupNonUniformBallotBitCount: return "SpvOpGroupNonUniformBallotBitCount";
969    case SpvOpGroupNonUniformBallotFindLSB: return "SpvOpGroupNonUniformBallotFindLSB";
970    case SpvOpGroupNonUniformBallotFindMSB: return "SpvOpGroupNonUniformBallotFindMSB";
971    case SpvOpGroupNonUniformShuffle: return "SpvOpGroupNonUniformShuffle";
972    case SpvOpGroupNonUniformShuffleXor: return "SpvOpGroupNonUniformShuffleXor";
973    case SpvOpGroupNonUniformShuffleUp: return "SpvOpGroupNonUniformShuffleUp";
974    case SpvOpGroupNonUniformShuffleDown: return "SpvOpGroupNonUniformShuffleDown";
975    case SpvOpGroupNonUniformIAdd: return "SpvOpGroupNonUniformIAdd";
976    case SpvOpGroupNonUniformFAdd: return "SpvOpGroupNonUniformFAdd";
977    case SpvOpGroupNonUniformIMul: return "SpvOpGroupNonUniformIMul";
978    case SpvOpGroupNonUniformFMul: return "SpvOpGroupNonUniformFMul";
979    case SpvOpGroupNonUniformSMin: return "SpvOpGroupNonUniformSMin";
980    case SpvOpGroupNonUniformUMin: return "SpvOpGroupNonUniformUMin";
981    case SpvOpGroupNonUniformFMin: return "SpvOpGroupNonUniformFMin";
982    case SpvOpGroupNonUniformSMax: return "SpvOpGroupNonUniformSMax";
983    case SpvOpGroupNonUniformUMax: return "SpvOpGroupNonUniformUMax";
984    case SpvOpGroupNonUniformFMax: return "SpvOpGroupNonUniformFMax";
985    case SpvOpGroupNonUniformBitwiseAnd: return "SpvOpGroupNonUniformBitwiseAnd";
986    case SpvOpGroupNonUniformBitwiseOr: return "SpvOpGroupNonUniformBitwiseOr";
987    case SpvOpGroupNonUniformBitwiseXor: return "SpvOpGroupNonUniformBitwiseXor";
988    case SpvOpGroupNonUniformLogicalAnd: return "SpvOpGroupNonUniformLogicalAnd";
989    case SpvOpGroupNonUniformLogicalOr: return "SpvOpGroupNonUniformLogicalOr";
990    case SpvOpGroupNonUniformLogicalXor: return "SpvOpGroupNonUniformLogicalXor";
991    case SpvOpGroupNonUniformQuadBroadcast: return "SpvOpGroupNonUniformQuadBroadcast";
992    case SpvOpGroupNonUniformQuadSwap: return "SpvOpGroupNonUniformQuadSwap";
993    case SpvOpCopyLogical: return "SpvOpCopyLogical";
994    case SpvOpPtrEqual: return "SpvOpPtrEqual";
995    case SpvOpPtrNotEqual: return "SpvOpPtrNotEqual";
996    case SpvOpPtrDiff: return "SpvOpPtrDiff";
997    case SpvOpTerminateInvocation: return "SpvOpTerminateInvocation";
998    case SpvOpSubgroupBallotKHR: return "SpvOpSubgroupBallotKHR";
999    case SpvOpSubgroupFirstInvocationKHR: return "SpvOpSubgroupFirstInvocationKHR";
1000    case SpvOpSubgroupAllKHR: return "SpvOpSubgroupAllKHR";
1001    case SpvOpSubgroupAnyKHR: return "SpvOpSubgroupAnyKHR";
1002    case SpvOpSubgroupAllEqualKHR: return "SpvOpSubgroupAllEqualKHR";
1003    case SpvOpSubgroupReadInvocationKHR: return "SpvOpSubgroupReadInvocationKHR";
1004    case SpvOpTypeRayQueryProvisionalKHR: return "SpvOpTypeRayQueryProvisionalKHR";
1005    case SpvOpRayQueryInitializeKHR: return "SpvOpRayQueryInitializeKHR";
1006    case SpvOpRayQueryTerminateKHR: return "SpvOpRayQueryTerminateKHR";
1007    case SpvOpRayQueryGenerateIntersectionKHR: return "SpvOpRayQueryGenerateIntersectionKHR";
1008    case SpvOpRayQueryConfirmIntersectionKHR: return "SpvOpRayQueryConfirmIntersectionKHR";
1009    case SpvOpRayQueryProceedKHR: return "SpvOpRayQueryProceedKHR";
1010    case SpvOpRayQueryGetIntersectionTypeKHR: return "SpvOpRayQueryGetIntersectionTypeKHR";
1011    case SpvOpGroupIAddNonUniformAMD: return "SpvOpGroupIAddNonUniformAMD";
1012    case SpvOpGroupFAddNonUniformAMD: return "SpvOpGroupFAddNonUniformAMD";
1013    case SpvOpGroupFMinNonUniformAMD: return "SpvOpGroupFMinNonUniformAMD";
1014    case SpvOpGroupUMinNonUniformAMD: return "SpvOpGroupUMinNonUniformAMD";
1015    case SpvOpGroupSMinNonUniformAMD: return "SpvOpGroupSMinNonUniformAMD";
1016    case SpvOpGroupFMaxNonUniformAMD: return "SpvOpGroupFMaxNonUniformAMD";
1017    case SpvOpGroupUMaxNonUniformAMD: return "SpvOpGroupUMaxNonUniformAMD";
1018    case SpvOpGroupSMaxNonUniformAMD: return "SpvOpGroupSMaxNonUniformAMD";
1019    case SpvOpFragmentMaskFetchAMD: return "SpvOpFragmentMaskFetchAMD";
1020    case SpvOpFragmentFetchAMD: return "SpvOpFragmentFetchAMD";
1021    case SpvOpReadClockKHR: return "SpvOpReadClockKHR";
1022    case SpvOpImageSampleFootprintNV: return "SpvOpImageSampleFootprintNV";
1023    case SpvOpGroupNonUniformPartitionNV: return "SpvOpGroupNonUniformPartitionNV";
1024    case SpvOpWritePackedPrimitiveIndices4x8NV: return "SpvOpWritePackedPrimitiveIndices4x8NV";
1025    case SpvOpReportIntersectionNV: return "SpvOpReportIntersectionNV";
1026    case SpvOpIgnoreIntersectionNV: return "SpvOpIgnoreIntersectionNV";
1027    case SpvOpTerminateRayNV: return "SpvOpTerminateRayNV";
1028    case SpvOpTraceNV: return "SpvOpTraceNV";
1029    case SpvOpTypeAccelerationStructureNV: return "SpvOpTypeAccelerationStructureNV";
1030    case SpvOpExecuteCallableNV: return "SpvOpExecuteCallableNV";
1031    case SpvOpTypeCooperativeMatrixNV: return "SpvOpTypeCooperativeMatrixNV";
1032    case SpvOpCooperativeMatrixLoadNV: return "SpvOpCooperativeMatrixLoadNV";
1033    case SpvOpCooperativeMatrixStoreNV: return "SpvOpCooperativeMatrixStoreNV";
1034    case SpvOpCooperativeMatrixMulAddNV: return "SpvOpCooperativeMatrixMulAddNV";
1035    case SpvOpCooperativeMatrixLengthNV: return "SpvOpCooperativeMatrixLengthNV";
1036    case SpvOpBeginInvocationInterlockEXT: return "SpvOpBeginInvocationInterlockEXT";
1037    case SpvOpEndInvocationInterlockEXT: return "SpvOpEndInvocationInterlockEXT";
1038    case SpvOpDemoteToHelperInvocationEXT: return "SpvOpDemoteToHelperInvocationEXT";
1039    case SpvOpIsHelperInvocationEXT: return "SpvOpIsHelperInvocationEXT";
1040    case SpvOpSubgroupShuffleINTEL: return "SpvOpSubgroupShuffleINTEL";
1041    case SpvOpSubgroupShuffleDownINTEL: return "SpvOpSubgroupShuffleDownINTEL";
1042    case SpvOpSubgroupShuffleUpINTEL: return "SpvOpSubgroupShuffleUpINTEL";
1043    case SpvOpSubgroupShuffleXorINTEL: return "SpvOpSubgroupShuffleXorINTEL";
1044    case SpvOpSubgroupBlockReadINTEL: return "SpvOpSubgroupBlockReadINTEL";
1045    case SpvOpSubgroupBlockWriteINTEL: return "SpvOpSubgroupBlockWriteINTEL";
1046    case SpvOpSubgroupImageBlockReadINTEL: return "SpvOpSubgroupImageBlockReadINTEL";
1047    case SpvOpSubgroupImageBlockWriteINTEL: return "SpvOpSubgroupImageBlockWriteINTEL";
1048    case SpvOpSubgroupImageMediaBlockReadINTEL: return "SpvOpSubgroupImageMediaBlockReadINTEL";
1049    case SpvOpSubgroupImageMediaBlockWriteINTEL: return "SpvOpSubgroupImageMediaBlockWriteINTEL";
1050    case SpvOpUCountLeadingZerosINTEL: return "SpvOpUCountLeadingZerosINTEL";
1051    case SpvOpUCountTrailingZerosINTEL: return "SpvOpUCountTrailingZerosINTEL";
1052    case SpvOpAbsISubINTEL: return "SpvOpAbsISubINTEL";
1053    case SpvOpAbsUSubINTEL: return "SpvOpAbsUSubINTEL";
1054    case SpvOpIAddSatINTEL: return "SpvOpIAddSatINTEL";
1055    case SpvOpUAddSatINTEL: return "SpvOpUAddSatINTEL";
1056    case SpvOpIAverageINTEL: return "SpvOpIAverageINTEL";
1057    case SpvOpUAverageINTEL: return "SpvOpUAverageINTEL";
1058    case SpvOpIAverageRoundedINTEL: return "SpvOpIAverageRoundedINTEL";
1059    case SpvOpUAverageRoundedINTEL: return "SpvOpUAverageRoundedINTEL";
1060    case SpvOpISubSatINTEL: return "SpvOpISubSatINTEL";
1061    case SpvOpUSubSatINTEL: return "SpvOpUSubSatINTEL";
1062    case SpvOpIMul32x16INTEL: return "SpvOpIMul32x16INTEL";
1063    case SpvOpUMul32x16INTEL: return "SpvOpUMul32x16INTEL";
1064    case SpvOpFunctionPointerINTEL: return "SpvOpFunctionPointerINTEL";
1065    case SpvOpFunctionPointerCallINTEL: return "SpvOpFunctionPointerCallINTEL";
1066    case SpvOpDecorateString: return "SpvOpDecorateString";
1067    case SpvOpMemberDecorateString: return "SpvOpMemberDecorateString";
1068    case SpvOpVmeImageINTEL: return "SpvOpVmeImageINTEL";
1069    case SpvOpTypeVmeImageINTEL: return "SpvOpTypeVmeImageINTEL";
1070    case SpvOpTypeAvcImePayloadINTEL: return "SpvOpTypeAvcImePayloadINTEL";
1071    case SpvOpTypeAvcRefPayloadINTEL: return "SpvOpTypeAvcRefPayloadINTEL";
1072    case SpvOpTypeAvcSicPayloadINTEL: return "SpvOpTypeAvcSicPayloadINTEL";
1073    case SpvOpTypeAvcMcePayloadINTEL: return "SpvOpTypeAvcMcePayloadINTEL";
1074    case SpvOpTypeAvcMceResultINTEL: return "SpvOpTypeAvcMceResultINTEL";
1075    case SpvOpTypeAvcImeResultINTEL: return "SpvOpTypeAvcImeResultINTEL";
1076    case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL";
1077    case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: return "SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL";
1078    case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: return "SpvOpTypeAvcImeSingleReferenceStreaminINTEL";
1079    case SpvOpTypeAvcImeDualReferenceStreaminINTEL: return "SpvOpTypeAvcImeDualReferenceStreaminINTEL";
1080    case SpvOpTypeAvcRefResultINTEL: return "SpvOpTypeAvcRefResultINTEL";
1081    case SpvOpTypeAvcSicResultINTEL: return "SpvOpTypeAvcSicResultINTEL";
1082    case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
1083    case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
1084    case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
1085    case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: return "SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL";
1086    case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
1087    case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
1088    case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
1089    case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
1090    case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
1091    case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
1092    case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
1093    case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
1094    case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
1095    case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
1096    case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
1097    case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: return "SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL";
1098    case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
1099    case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
1100    case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
1101    case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: return "SpvOpSubgroupAvcMceConvertToImePayloadINTEL";
1102    case SpvOpSubgroupAvcMceConvertToImeResultINTEL: return "SpvOpSubgroupAvcMceConvertToImeResultINTEL";
1103    case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: return "SpvOpSubgroupAvcMceConvertToRefPayloadINTEL";
1104    case SpvOpSubgroupAvcMceConvertToRefResultINTEL: return "SpvOpSubgroupAvcMceConvertToRefResultINTEL";
1105    case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: return "SpvOpSubgroupAvcMceConvertToSicPayloadINTEL";
1106    case SpvOpSubgroupAvcMceConvertToSicResultINTEL: return "SpvOpSubgroupAvcMceConvertToSicResultINTEL";
1107    case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: return "SpvOpSubgroupAvcMceGetMotionVectorsINTEL";
1108    case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: return "SpvOpSubgroupAvcMceGetInterDistortionsINTEL";
1109    case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: return "SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL";
1110    case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: return "SpvOpSubgroupAvcMceGetInterMajorShapeINTEL";
1111    case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: return "SpvOpSubgroupAvcMceGetInterMinorShapeINTEL";
1112    case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: return "SpvOpSubgroupAvcMceGetInterDirectionsINTEL";
1113    case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL";
1114    case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: return "SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL";
1115    case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
1116    case SpvOpSubgroupAvcImeInitializeINTEL: return "SpvOpSubgroupAvcImeInitializeINTEL";
1117    case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: return "SpvOpSubgroupAvcImeSetSingleReferenceINTEL";
1118    case SpvOpSubgroupAvcImeSetDualReferenceINTEL: return "SpvOpSubgroupAvcImeSetDualReferenceINTEL";
1119    case SpvOpSubgroupAvcImeRefWindowSizeINTEL: return "SpvOpSubgroupAvcImeRefWindowSizeINTEL";
1120    case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: return "SpvOpSubgroupAvcImeAdjustRefOffsetINTEL";
1121    case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: return "SpvOpSubgroupAvcImeConvertToMcePayloadINTEL";
1122    case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
1123    case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
1124    case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
1125    case SpvOpSubgroupAvcImeSetWeightedSadINTEL: return "SpvOpSubgroupAvcImeSetWeightedSadINTEL";
1126    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
1127    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
1128    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
1129    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
1130    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
1131    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
1132    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
1133    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
1134    case SpvOpSubgroupAvcImeConvertToMceResultINTEL: return "SpvOpSubgroupAvcImeConvertToMceResultINTEL";
1135    case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
1136    case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL";
1137    case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
1138    case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
1139    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
1140    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
1141    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
1142    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
1143    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
1144    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
1145    case SpvOpSubgroupAvcImeGetBorderReachedINTEL: return "SpvOpSubgroupAvcImeGetBorderReachedINTEL";
1146    case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
1147    case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
1148    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
1149    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
1150    case SpvOpSubgroupAvcFmeInitializeINTEL: return "SpvOpSubgroupAvcFmeInitializeINTEL";
1151    case SpvOpSubgroupAvcBmeInitializeINTEL: return "SpvOpSubgroupAvcBmeInitializeINTEL";
1152    case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: return "SpvOpSubgroupAvcRefConvertToMcePayloadINTEL";
1153    case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
1154    case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL";
1155    case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
1156    case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
1157    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
1158    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
1159    case SpvOpSubgroupAvcRefConvertToMceResultINTEL: return "SpvOpSubgroupAvcRefConvertToMceResultINTEL";
1160    case SpvOpSubgroupAvcSicInitializeINTEL: return "SpvOpSubgroupAvcSicInitializeINTEL";
1161    case SpvOpSubgroupAvcSicConfigureSkcINTEL: return "SpvOpSubgroupAvcSicConfigureSkcINTEL";
1162    case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: return "SpvOpSubgroupAvcSicConfigureIpeLumaINTEL";
1163    case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
1164    case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: return "SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL";
1165    case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: return "SpvOpSubgroupAvcSicConvertToMcePayloadINTEL";
1166    case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
1167    case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
1168    case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
1169    case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL";
1170    case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
1171    case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
1172    case SpvOpSubgroupAvcSicEvaluateIpeINTEL: return "SpvOpSubgroupAvcSicEvaluateIpeINTEL";
1173    case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
1174    case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
1175    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
1176    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
1177    case SpvOpSubgroupAvcSicConvertToMceResultINTEL: return "SpvOpSubgroupAvcSicConvertToMceResultINTEL";
1178    case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: return "SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL";
1179    case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
1180    case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
1181    case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
1182    case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: return "SpvOpSubgroupAvcSicGetIpeChromaModeINTEL";
1183    case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
1184    case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
1185    case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: return "SpvOpSubgroupAvcSicGetInterRawSadsINTEL";
1186    case SpvOpLoopControlINTEL: return "SpvOpLoopControlINTEL";
1187    case SpvOpReadPipeBlockingINTEL: return "SpvOpReadPipeBlockingINTEL";
1188    case SpvOpWritePipeBlockingINTEL: return "SpvOpWritePipeBlockingINTEL";
1189    case SpvOpFPGARegINTEL: return "SpvOpFPGARegINTEL";
1190    case SpvOpRayQueryGetRayTMinKHR: return "SpvOpRayQueryGetRayTMinKHR";
1191    case SpvOpRayQueryGetRayFlagsKHR: return "SpvOpRayQueryGetRayFlagsKHR";
1192    case SpvOpRayQueryGetIntersectionTKHR: return "SpvOpRayQueryGetIntersectionTKHR";
1193    case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: return "SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR";
1194    case SpvOpRayQueryGetIntersectionInstanceIdKHR: return "SpvOpRayQueryGetIntersectionInstanceIdKHR";
1195    case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
1196    case SpvOpRayQueryGetIntersectionGeometryIndexKHR: return "SpvOpRayQueryGetIntersectionGeometryIndexKHR";
1197    case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: return "SpvOpRayQueryGetIntersectionPrimitiveIndexKHR";
1198    case SpvOpRayQueryGetIntersectionBarycentricsKHR: return "SpvOpRayQueryGetIntersectionBarycentricsKHR";
1199    case SpvOpRayQueryGetIntersectionFrontFaceKHR: return "SpvOpRayQueryGetIntersectionFrontFaceKHR";
1200    case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
1201    case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: return "SpvOpRayQueryGetIntersectionObjectRayDirectionKHR";
1202    case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: return "SpvOpRayQueryGetIntersectionObjectRayOriginKHR";
1203    case SpvOpRayQueryGetWorldRayDirectionKHR: return "SpvOpRayQueryGetWorldRayDirectionKHR";
1204    case SpvOpRayQueryGetWorldRayOriginKHR: return "SpvOpRayQueryGetWorldRayOriginKHR";
1205    case SpvOpRayQueryGetIntersectionObjectToWorldKHR: return "SpvOpRayQueryGetIntersectionObjectToWorldKHR";
1206    case SpvOpRayQueryGetIntersectionWorldToObjectKHR: return "SpvOpRayQueryGetIntersectionWorldToObjectKHR";
1207    case SpvOpAtomicFAddEXT: return "SpvOpAtomicFAddEXT";
1208    case SpvOpMax: break; /* silence warnings about unhandled enums. */
1209    }
1210 
1211    return "unknown";
1212 }
1213