• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_capability_to_string(SpvCapability v)28 spirv_capability_to_string(SpvCapability v)
29 {
30    switch (v) {
31    case SpvCapabilityMatrix: return "SpvCapabilityMatrix";
32    case SpvCapabilityShader: return "SpvCapabilityShader";
33    case SpvCapabilityGeometry: return "SpvCapabilityGeometry";
34    case SpvCapabilityTessellation: return "SpvCapabilityTessellation";
35    case SpvCapabilityAddresses: return "SpvCapabilityAddresses";
36    case SpvCapabilityLinkage: return "SpvCapabilityLinkage";
37    case SpvCapabilityKernel: return "SpvCapabilityKernel";
38    case SpvCapabilityVector16: return "SpvCapabilityVector16";
39    case SpvCapabilityFloat16Buffer: return "SpvCapabilityFloat16Buffer";
40    case SpvCapabilityFloat16: return "SpvCapabilityFloat16";
41    case SpvCapabilityFloat64: return "SpvCapabilityFloat64";
42    case SpvCapabilityInt64: return "SpvCapabilityInt64";
43    case SpvCapabilityInt64Atomics: return "SpvCapabilityInt64Atomics";
44    case SpvCapabilityImageBasic: return "SpvCapabilityImageBasic";
45    case SpvCapabilityImageReadWrite: return "SpvCapabilityImageReadWrite";
46    case SpvCapabilityImageMipmap: return "SpvCapabilityImageMipmap";
47    case SpvCapabilityPipes: return "SpvCapabilityPipes";
48    case SpvCapabilityGroups: return "SpvCapabilityGroups";
49    case SpvCapabilityDeviceEnqueue: return "SpvCapabilityDeviceEnqueue";
50    case SpvCapabilityLiteralSampler: return "SpvCapabilityLiteralSampler";
51    case SpvCapabilityAtomicStorage: return "SpvCapabilityAtomicStorage";
52    case SpvCapabilityInt16: return "SpvCapabilityInt16";
53    case SpvCapabilityTessellationPointSize: return "SpvCapabilityTessellationPointSize";
54    case SpvCapabilityGeometryPointSize: return "SpvCapabilityGeometryPointSize";
55    case SpvCapabilityImageGatherExtended: return "SpvCapabilityImageGatherExtended";
56    case SpvCapabilityStorageImageMultisample: return "SpvCapabilityStorageImageMultisample";
57    case SpvCapabilityUniformBufferArrayDynamicIndexing: return "SpvCapabilityUniformBufferArrayDynamicIndexing";
58    case SpvCapabilitySampledImageArrayDynamicIndexing: return "SpvCapabilitySampledImageArrayDynamicIndexing";
59    case SpvCapabilityStorageBufferArrayDynamicIndexing: return "SpvCapabilityStorageBufferArrayDynamicIndexing";
60    case SpvCapabilityStorageImageArrayDynamicIndexing: return "SpvCapabilityStorageImageArrayDynamicIndexing";
61    case SpvCapabilityClipDistance: return "SpvCapabilityClipDistance";
62    case SpvCapabilityCullDistance: return "SpvCapabilityCullDistance";
63    case SpvCapabilityImageCubeArray: return "SpvCapabilityImageCubeArray";
64    case SpvCapabilitySampleRateShading: return "SpvCapabilitySampleRateShading";
65    case SpvCapabilityImageRect: return "SpvCapabilityImageRect";
66    case SpvCapabilitySampledRect: return "SpvCapabilitySampledRect";
67    case SpvCapabilityGenericPointer: return "SpvCapabilityGenericPointer";
68    case SpvCapabilityInt8: return "SpvCapabilityInt8";
69    case SpvCapabilityInputAttachment: return "SpvCapabilityInputAttachment";
70    case SpvCapabilitySparseResidency: return "SpvCapabilitySparseResidency";
71    case SpvCapabilityMinLod: return "SpvCapabilityMinLod";
72    case SpvCapabilitySampled1D: return "SpvCapabilitySampled1D";
73    case SpvCapabilityImage1D: return "SpvCapabilityImage1D";
74    case SpvCapabilitySampledCubeArray: return "SpvCapabilitySampledCubeArray";
75    case SpvCapabilitySampledBuffer: return "SpvCapabilitySampledBuffer";
76    case SpvCapabilityImageBuffer: return "SpvCapabilityImageBuffer";
77    case SpvCapabilityImageMSArray: return "SpvCapabilityImageMSArray";
78    case SpvCapabilityStorageImageExtendedFormats: return "SpvCapabilityStorageImageExtendedFormats";
79    case SpvCapabilityImageQuery: return "SpvCapabilityImageQuery";
80    case SpvCapabilityDerivativeControl: return "SpvCapabilityDerivativeControl";
81    case SpvCapabilityInterpolationFunction: return "SpvCapabilityInterpolationFunction";
82    case SpvCapabilityTransformFeedback: return "SpvCapabilityTransformFeedback";
83    case SpvCapabilityGeometryStreams: return "SpvCapabilityGeometryStreams";
84    case SpvCapabilityStorageImageReadWithoutFormat: return "SpvCapabilityStorageImageReadWithoutFormat";
85    case SpvCapabilityStorageImageWriteWithoutFormat: return "SpvCapabilityStorageImageWriteWithoutFormat";
86    case SpvCapabilityMultiViewport: return "SpvCapabilityMultiViewport";
87    case SpvCapabilitySubgroupDispatch: return "SpvCapabilitySubgroupDispatch";
88    case SpvCapabilityNamedBarrier: return "SpvCapabilityNamedBarrier";
89    case SpvCapabilityPipeStorage: return "SpvCapabilityPipeStorage";
90    case SpvCapabilitySubgroupBallotKHR: return "SpvCapabilitySubgroupBallotKHR";
91    case SpvCapabilityDrawParameters: return "SpvCapabilityDrawParameters";
92    case SpvCapabilitySubgroupVoteKHR: return "SpvCapabilitySubgroupVoteKHR";
93    case SpvCapabilityStorageBuffer16BitAccess: return "SpvCapabilityStorageBuffer16BitAccess";
94    case SpvCapabilityUniformAndStorageBuffer16BitAccess: return "SpvCapabilityUniformAndStorageBuffer16BitAccess";
95    case SpvCapabilityStoragePushConstant16: return "SpvCapabilityStoragePushConstant16";
96    case SpvCapabilityStorageInputOutput16: return "SpvCapabilityStorageInputOutput16";
97    case SpvCapabilityDeviceGroup: return "SpvCapabilityDeviceGroup";
98    case SpvCapabilityMultiView: return "SpvCapabilityMultiView";
99    case SpvCapabilityVariablePointersStorageBuffer: return "SpvCapabilityVariablePointersStorageBuffer";
100    case SpvCapabilityVariablePointers: return "SpvCapabilityVariablePointers";
101    case SpvCapabilityAtomicStorageOps: return "SpvCapabilityAtomicStorageOps";
102    case SpvCapabilitySampleMaskPostDepthCoverage: return "SpvCapabilitySampleMaskPostDepthCoverage";
103    case SpvCapabilityImageGatherBiasLodAMD: return "SpvCapabilityImageGatherBiasLodAMD";
104    case SpvCapabilityFragmentMaskAMD: return "SpvCapabilityFragmentMaskAMD";
105    case SpvCapabilityStencilExportEXT: return "SpvCapabilityStencilExportEXT";
106    case SpvCapabilityImageReadWriteLodAMD: return "SpvCapabilityImageReadWriteLodAMD";
107    case SpvCapabilitySampleMaskOverrideCoverageNV: return "SpvCapabilitySampleMaskOverrideCoverageNV";
108    case SpvCapabilityGeometryShaderPassthroughNV: return "SpvCapabilityGeometryShaderPassthroughNV";
109    case SpvCapabilityShaderViewportIndexLayerEXT: return "SpvCapabilityShaderViewportIndexLayerEXT";
110    case SpvCapabilityShaderViewportMaskNV: return "SpvCapabilityShaderViewportMaskNV";
111    case SpvCapabilityShaderStereoViewNV: return "SpvCapabilityShaderStereoViewNV";
112    case SpvCapabilityPerViewAttributesNV: return "SpvCapabilityPerViewAttributesNV";
113    case SpvCapabilityFragmentFullyCoveredEXT: return "SpvCapabilityFragmentFullyCoveredEXT";
114    case SpvCapabilitySubgroupShuffleINTEL: return "SpvCapabilitySubgroupShuffleINTEL";
115    case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SpvCapabilitySubgroupBufferBlockIOINTEL";
116    case SpvCapabilitySubgroupImageBlockIOINTEL: return "SpvCapabilitySubgroupImageBlockIOINTEL";
117    case SpvCapabilityMax: break; /* silence warnings about unhandled enums. */
118    }
119 
120    return "unknown";
121 }
122 
123 const char *
spirv_decoration_to_string(SpvDecoration v)124 spirv_decoration_to_string(SpvDecoration v)
125 {
126    switch (v) {
127    case SpvDecorationRelaxedPrecision: return "SpvDecorationRelaxedPrecision";
128    case SpvDecorationSpecId: return "SpvDecorationSpecId";
129    case SpvDecorationBlock: return "SpvDecorationBlock";
130    case SpvDecorationBufferBlock: return "SpvDecorationBufferBlock";
131    case SpvDecorationRowMajor: return "SpvDecorationRowMajor";
132    case SpvDecorationColMajor: return "SpvDecorationColMajor";
133    case SpvDecorationArrayStride: return "SpvDecorationArrayStride";
134    case SpvDecorationMatrixStride: return "SpvDecorationMatrixStride";
135    case SpvDecorationGLSLShared: return "SpvDecorationGLSLShared";
136    case SpvDecorationGLSLPacked: return "SpvDecorationGLSLPacked";
137    case SpvDecorationCPacked: return "SpvDecorationCPacked";
138    case SpvDecorationBuiltIn: return "SpvDecorationBuiltIn";
139    case SpvDecorationNoPerspective: return "SpvDecorationNoPerspective";
140    case SpvDecorationFlat: return "SpvDecorationFlat";
141    case SpvDecorationPatch: return "SpvDecorationPatch";
142    case SpvDecorationCentroid: return "SpvDecorationCentroid";
143    case SpvDecorationSample: return "SpvDecorationSample";
144    case SpvDecorationInvariant: return "SpvDecorationInvariant";
145    case SpvDecorationRestrict: return "SpvDecorationRestrict";
146    case SpvDecorationAliased: return "SpvDecorationAliased";
147    case SpvDecorationVolatile: return "SpvDecorationVolatile";
148    case SpvDecorationConstant: return "SpvDecorationConstant";
149    case SpvDecorationCoherent: return "SpvDecorationCoherent";
150    case SpvDecorationNonWritable: return "SpvDecorationNonWritable";
151    case SpvDecorationNonReadable: return "SpvDecorationNonReadable";
152    case SpvDecorationUniform: return "SpvDecorationUniform";
153    case SpvDecorationSaturatedConversion: return "SpvDecorationSaturatedConversion";
154    case SpvDecorationStream: return "SpvDecorationStream";
155    case SpvDecorationLocation: return "SpvDecorationLocation";
156    case SpvDecorationComponent: return "SpvDecorationComponent";
157    case SpvDecorationIndex: return "SpvDecorationIndex";
158    case SpvDecorationBinding: return "SpvDecorationBinding";
159    case SpvDecorationDescriptorSet: return "SpvDecorationDescriptorSet";
160    case SpvDecorationOffset: return "SpvDecorationOffset";
161    case SpvDecorationXfbBuffer: return "SpvDecorationXfbBuffer";
162    case SpvDecorationXfbStride: return "SpvDecorationXfbStride";
163    case SpvDecorationFuncParamAttr: return "SpvDecorationFuncParamAttr";
164    case SpvDecorationFPRoundingMode: return "SpvDecorationFPRoundingMode";
165    case SpvDecorationFPFastMathMode: return "SpvDecorationFPFastMathMode";
166    case SpvDecorationLinkageAttributes: return "SpvDecorationLinkageAttributes";
167    case SpvDecorationNoContraction: return "SpvDecorationNoContraction";
168    case SpvDecorationInputAttachmentIndex: return "SpvDecorationInputAttachmentIndex";
169    case SpvDecorationAlignment: return "SpvDecorationAlignment";
170    case SpvDecorationMaxByteOffset: return "SpvDecorationMaxByteOffset";
171    case SpvDecorationAlignmentId: return "SpvDecorationAlignmentId";
172    case SpvDecorationMaxByteOffsetId: return "SpvDecorationMaxByteOffsetId";
173    case SpvDecorationExplicitInterpAMD: return "SpvDecorationExplicitInterpAMD";
174    case SpvDecorationOverrideCoverageNV: return "SpvDecorationOverrideCoverageNV";
175    case SpvDecorationPassthroughNV: return "SpvDecorationPassthroughNV";
176    case SpvDecorationViewportRelativeNV: return "SpvDecorationViewportRelativeNV";
177    case SpvDecorationSecondaryViewportRelativeNV: return "SpvDecorationSecondaryViewportRelativeNV";
178    case SpvDecorationMax: break; /* silence warnings about unhandled enums. */
179    }
180 
181    return "unknown";
182 }
183 
184 const char *
spirv_op_to_string(SpvOp v)185 spirv_op_to_string(SpvOp v)
186 {
187    switch (v) {
188    case SpvOpNop: return "SpvOpNop";
189    case SpvOpUndef: return "SpvOpUndef";
190    case SpvOpSourceContinued: return "SpvOpSourceContinued";
191    case SpvOpSource: return "SpvOpSource";
192    case SpvOpSourceExtension: return "SpvOpSourceExtension";
193    case SpvOpName: return "SpvOpName";
194    case SpvOpMemberName: return "SpvOpMemberName";
195    case SpvOpString: return "SpvOpString";
196    case SpvOpLine: return "SpvOpLine";
197    case SpvOpExtension: return "SpvOpExtension";
198    case SpvOpExtInstImport: return "SpvOpExtInstImport";
199    case SpvOpExtInst: return "SpvOpExtInst";
200    case SpvOpMemoryModel: return "SpvOpMemoryModel";
201    case SpvOpEntryPoint: return "SpvOpEntryPoint";
202    case SpvOpExecutionMode: return "SpvOpExecutionMode";
203    case SpvOpCapability: return "SpvOpCapability";
204    case SpvOpTypeVoid: return "SpvOpTypeVoid";
205    case SpvOpTypeBool: return "SpvOpTypeBool";
206    case SpvOpTypeInt: return "SpvOpTypeInt";
207    case SpvOpTypeFloat: return "SpvOpTypeFloat";
208    case SpvOpTypeVector: return "SpvOpTypeVector";
209    case SpvOpTypeMatrix: return "SpvOpTypeMatrix";
210    case SpvOpTypeImage: return "SpvOpTypeImage";
211    case SpvOpTypeSampler: return "SpvOpTypeSampler";
212    case SpvOpTypeSampledImage: return "SpvOpTypeSampledImage";
213    case SpvOpTypeArray: return "SpvOpTypeArray";
214    case SpvOpTypeRuntimeArray: return "SpvOpTypeRuntimeArray";
215    case SpvOpTypeStruct: return "SpvOpTypeStruct";
216    case SpvOpTypeOpaque: return "SpvOpTypeOpaque";
217    case SpvOpTypePointer: return "SpvOpTypePointer";
218    case SpvOpTypeFunction: return "SpvOpTypeFunction";
219    case SpvOpTypeEvent: return "SpvOpTypeEvent";
220    case SpvOpTypeDeviceEvent: return "SpvOpTypeDeviceEvent";
221    case SpvOpTypeReserveId: return "SpvOpTypeReserveId";
222    case SpvOpTypeQueue: return "SpvOpTypeQueue";
223    case SpvOpTypePipe: return "SpvOpTypePipe";
224    case SpvOpTypeForwardPointer: return "SpvOpTypeForwardPointer";
225    case SpvOpConstantTrue: return "SpvOpConstantTrue";
226    case SpvOpConstantFalse: return "SpvOpConstantFalse";
227    case SpvOpConstant: return "SpvOpConstant";
228    case SpvOpConstantComposite: return "SpvOpConstantComposite";
229    case SpvOpConstantSampler: return "SpvOpConstantSampler";
230    case SpvOpConstantNull: return "SpvOpConstantNull";
231    case SpvOpSpecConstantTrue: return "SpvOpSpecConstantTrue";
232    case SpvOpSpecConstantFalse: return "SpvOpSpecConstantFalse";
233    case SpvOpSpecConstant: return "SpvOpSpecConstant";
234    case SpvOpSpecConstantComposite: return "SpvOpSpecConstantComposite";
235    case SpvOpSpecConstantOp: return "SpvOpSpecConstantOp";
236    case SpvOpFunction: return "SpvOpFunction";
237    case SpvOpFunctionParameter: return "SpvOpFunctionParameter";
238    case SpvOpFunctionEnd: return "SpvOpFunctionEnd";
239    case SpvOpFunctionCall: return "SpvOpFunctionCall";
240    case SpvOpVariable: return "SpvOpVariable";
241    case SpvOpImageTexelPointer: return "SpvOpImageTexelPointer";
242    case SpvOpLoad: return "SpvOpLoad";
243    case SpvOpStore: return "SpvOpStore";
244    case SpvOpCopyMemory: return "SpvOpCopyMemory";
245    case SpvOpCopyMemorySized: return "SpvOpCopyMemorySized";
246    case SpvOpAccessChain: return "SpvOpAccessChain";
247    case SpvOpInBoundsAccessChain: return "SpvOpInBoundsAccessChain";
248    case SpvOpPtrAccessChain: return "SpvOpPtrAccessChain";
249    case SpvOpArrayLength: return "SpvOpArrayLength";
250    case SpvOpGenericPtrMemSemantics: return "SpvOpGenericPtrMemSemantics";
251    case SpvOpInBoundsPtrAccessChain: return "SpvOpInBoundsPtrAccessChain";
252    case SpvOpDecorate: return "SpvOpDecorate";
253    case SpvOpMemberDecorate: return "SpvOpMemberDecorate";
254    case SpvOpDecorationGroup: return "SpvOpDecorationGroup";
255    case SpvOpGroupDecorate: return "SpvOpGroupDecorate";
256    case SpvOpGroupMemberDecorate: return "SpvOpGroupMemberDecorate";
257    case SpvOpVectorExtractDynamic: return "SpvOpVectorExtractDynamic";
258    case SpvOpVectorInsertDynamic: return "SpvOpVectorInsertDynamic";
259    case SpvOpVectorShuffle: return "SpvOpVectorShuffle";
260    case SpvOpCompositeConstruct: return "SpvOpCompositeConstruct";
261    case SpvOpCompositeExtract: return "SpvOpCompositeExtract";
262    case SpvOpCompositeInsert: return "SpvOpCompositeInsert";
263    case SpvOpCopyObject: return "SpvOpCopyObject";
264    case SpvOpTranspose: return "SpvOpTranspose";
265    case SpvOpSampledImage: return "SpvOpSampledImage";
266    case SpvOpImageSampleImplicitLod: return "SpvOpImageSampleImplicitLod";
267    case SpvOpImageSampleExplicitLod: return "SpvOpImageSampleExplicitLod";
268    case SpvOpImageSampleDrefImplicitLod: return "SpvOpImageSampleDrefImplicitLod";
269    case SpvOpImageSampleDrefExplicitLod: return "SpvOpImageSampleDrefExplicitLod";
270    case SpvOpImageSampleProjImplicitLod: return "SpvOpImageSampleProjImplicitLod";
271    case SpvOpImageSampleProjExplicitLod: return "SpvOpImageSampleProjExplicitLod";
272    case SpvOpImageSampleProjDrefImplicitLod: return "SpvOpImageSampleProjDrefImplicitLod";
273    case SpvOpImageSampleProjDrefExplicitLod: return "SpvOpImageSampleProjDrefExplicitLod";
274    case SpvOpImageFetch: return "SpvOpImageFetch";
275    case SpvOpImageGather: return "SpvOpImageGather";
276    case SpvOpImageDrefGather: return "SpvOpImageDrefGather";
277    case SpvOpImageRead: return "SpvOpImageRead";
278    case SpvOpImageWrite: return "SpvOpImageWrite";
279    case SpvOpImage: return "SpvOpImage";
280    case SpvOpImageQueryFormat: return "SpvOpImageQueryFormat";
281    case SpvOpImageQueryOrder: return "SpvOpImageQueryOrder";
282    case SpvOpImageQuerySizeLod: return "SpvOpImageQuerySizeLod";
283    case SpvOpImageQuerySize: return "SpvOpImageQuerySize";
284    case SpvOpImageQueryLod: return "SpvOpImageQueryLod";
285    case SpvOpImageQueryLevels: return "SpvOpImageQueryLevels";
286    case SpvOpImageQuerySamples: return "SpvOpImageQuerySamples";
287    case SpvOpConvertFToU: return "SpvOpConvertFToU";
288    case SpvOpConvertFToS: return "SpvOpConvertFToS";
289    case SpvOpConvertSToF: return "SpvOpConvertSToF";
290    case SpvOpConvertUToF: return "SpvOpConvertUToF";
291    case SpvOpUConvert: return "SpvOpUConvert";
292    case SpvOpSConvert: return "SpvOpSConvert";
293    case SpvOpFConvert: return "SpvOpFConvert";
294    case SpvOpQuantizeToF16: return "SpvOpQuantizeToF16";
295    case SpvOpConvertPtrToU: return "SpvOpConvertPtrToU";
296    case SpvOpSatConvertSToU: return "SpvOpSatConvertSToU";
297    case SpvOpSatConvertUToS: return "SpvOpSatConvertUToS";
298    case SpvOpConvertUToPtr: return "SpvOpConvertUToPtr";
299    case SpvOpPtrCastToGeneric: return "SpvOpPtrCastToGeneric";
300    case SpvOpGenericCastToPtr: return "SpvOpGenericCastToPtr";
301    case SpvOpGenericCastToPtrExplicit: return "SpvOpGenericCastToPtrExplicit";
302    case SpvOpBitcast: return "SpvOpBitcast";
303    case SpvOpSNegate: return "SpvOpSNegate";
304    case SpvOpFNegate: return "SpvOpFNegate";
305    case SpvOpIAdd: return "SpvOpIAdd";
306    case SpvOpFAdd: return "SpvOpFAdd";
307    case SpvOpISub: return "SpvOpISub";
308    case SpvOpFSub: return "SpvOpFSub";
309    case SpvOpIMul: return "SpvOpIMul";
310    case SpvOpFMul: return "SpvOpFMul";
311    case SpvOpUDiv: return "SpvOpUDiv";
312    case SpvOpSDiv: return "SpvOpSDiv";
313    case SpvOpFDiv: return "SpvOpFDiv";
314    case SpvOpUMod: return "SpvOpUMod";
315    case SpvOpSRem: return "SpvOpSRem";
316    case SpvOpSMod: return "SpvOpSMod";
317    case SpvOpFRem: return "SpvOpFRem";
318    case SpvOpFMod: return "SpvOpFMod";
319    case SpvOpVectorTimesScalar: return "SpvOpVectorTimesScalar";
320    case SpvOpMatrixTimesScalar: return "SpvOpMatrixTimesScalar";
321    case SpvOpVectorTimesMatrix: return "SpvOpVectorTimesMatrix";
322    case SpvOpMatrixTimesVector: return "SpvOpMatrixTimesVector";
323    case SpvOpMatrixTimesMatrix: return "SpvOpMatrixTimesMatrix";
324    case SpvOpOuterProduct: return "SpvOpOuterProduct";
325    case SpvOpDot: return "SpvOpDot";
326    case SpvOpIAddCarry: return "SpvOpIAddCarry";
327    case SpvOpISubBorrow: return "SpvOpISubBorrow";
328    case SpvOpUMulExtended: return "SpvOpUMulExtended";
329    case SpvOpSMulExtended: return "SpvOpSMulExtended";
330    case SpvOpAny: return "SpvOpAny";
331    case SpvOpAll: return "SpvOpAll";
332    case SpvOpIsNan: return "SpvOpIsNan";
333    case SpvOpIsInf: return "SpvOpIsInf";
334    case SpvOpIsFinite: return "SpvOpIsFinite";
335    case SpvOpIsNormal: return "SpvOpIsNormal";
336    case SpvOpSignBitSet: return "SpvOpSignBitSet";
337    case SpvOpLessOrGreater: return "SpvOpLessOrGreater";
338    case SpvOpOrdered: return "SpvOpOrdered";
339    case SpvOpUnordered: return "SpvOpUnordered";
340    case SpvOpLogicalEqual: return "SpvOpLogicalEqual";
341    case SpvOpLogicalNotEqual: return "SpvOpLogicalNotEqual";
342    case SpvOpLogicalOr: return "SpvOpLogicalOr";
343    case SpvOpLogicalAnd: return "SpvOpLogicalAnd";
344    case SpvOpLogicalNot: return "SpvOpLogicalNot";
345    case SpvOpSelect: return "SpvOpSelect";
346    case SpvOpIEqual: return "SpvOpIEqual";
347    case SpvOpINotEqual: return "SpvOpINotEqual";
348    case SpvOpUGreaterThan: return "SpvOpUGreaterThan";
349    case SpvOpSGreaterThan: return "SpvOpSGreaterThan";
350    case SpvOpUGreaterThanEqual: return "SpvOpUGreaterThanEqual";
351    case SpvOpSGreaterThanEqual: return "SpvOpSGreaterThanEqual";
352    case SpvOpULessThan: return "SpvOpULessThan";
353    case SpvOpSLessThan: return "SpvOpSLessThan";
354    case SpvOpULessThanEqual: return "SpvOpULessThanEqual";
355    case SpvOpSLessThanEqual: return "SpvOpSLessThanEqual";
356    case SpvOpFOrdEqual: return "SpvOpFOrdEqual";
357    case SpvOpFUnordEqual: return "SpvOpFUnordEqual";
358    case SpvOpFOrdNotEqual: return "SpvOpFOrdNotEqual";
359    case SpvOpFUnordNotEqual: return "SpvOpFUnordNotEqual";
360    case SpvOpFOrdLessThan: return "SpvOpFOrdLessThan";
361    case SpvOpFUnordLessThan: return "SpvOpFUnordLessThan";
362    case SpvOpFOrdGreaterThan: return "SpvOpFOrdGreaterThan";
363    case SpvOpFUnordGreaterThan: return "SpvOpFUnordGreaterThan";
364    case SpvOpFOrdLessThanEqual: return "SpvOpFOrdLessThanEqual";
365    case SpvOpFUnordLessThanEqual: return "SpvOpFUnordLessThanEqual";
366    case SpvOpFOrdGreaterThanEqual: return "SpvOpFOrdGreaterThanEqual";
367    case SpvOpFUnordGreaterThanEqual: return "SpvOpFUnordGreaterThanEqual";
368    case SpvOpShiftRightLogical: return "SpvOpShiftRightLogical";
369    case SpvOpShiftRightArithmetic: return "SpvOpShiftRightArithmetic";
370    case SpvOpShiftLeftLogical: return "SpvOpShiftLeftLogical";
371    case SpvOpBitwiseOr: return "SpvOpBitwiseOr";
372    case SpvOpBitwiseXor: return "SpvOpBitwiseXor";
373    case SpvOpBitwiseAnd: return "SpvOpBitwiseAnd";
374    case SpvOpNot: return "SpvOpNot";
375    case SpvOpBitFieldInsert: return "SpvOpBitFieldInsert";
376    case SpvOpBitFieldSExtract: return "SpvOpBitFieldSExtract";
377    case SpvOpBitFieldUExtract: return "SpvOpBitFieldUExtract";
378    case SpvOpBitReverse: return "SpvOpBitReverse";
379    case SpvOpBitCount: return "SpvOpBitCount";
380    case SpvOpDPdx: return "SpvOpDPdx";
381    case SpvOpDPdy: return "SpvOpDPdy";
382    case SpvOpFwidth: return "SpvOpFwidth";
383    case SpvOpDPdxFine: return "SpvOpDPdxFine";
384    case SpvOpDPdyFine: return "SpvOpDPdyFine";
385    case SpvOpFwidthFine: return "SpvOpFwidthFine";
386    case SpvOpDPdxCoarse: return "SpvOpDPdxCoarse";
387    case SpvOpDPdyCoarse: return "SpvOpDPdyCoarse";
388    case SpvOpFwidthCoarse: return "SpvOpFwidthCoarse";
389    case SpvOpEmitVertex: return "SpvOpEmitVertex";
390    case SpvOpEndPrimitive: return "SpvOpEndPrimitive";
391    case SpvOpEmitStreamVertex: return "SpvOpEmitStreamVertex";
392    case SpvOpEndStreamPrimitive: return "SpvOpEndStreamPrimitive";
393    case SpvOpControlBarrier: return "SpvOpControlBarrier";
394    case SpvOpMemoryBarrier: return "SpvOpMemoryBarrier";
395    case SpvOpAtomicLoad: return "SpvOpAtomicLoad";
396    case SpvOpAtomicStore: return "SpvOpAtomicStore";
397    case SpvOpAtomicExchange: return "SpvOpAtomicExchange";
398    case SpvOpAtomicCompareExchange: return "SpvOpAtomicCompareExchange";
399    case SpvOpAtomicCompareExchangeWeak: return "SpvOpAtomicCompareExchangeWeak";
400    case SpvOpAtomicIIncrement: return "SpvOpAtomicIIncrement";
401    case SpvOpAtomicIDecrement: return "SpvOpAtomicIDecrement";
402    case SpvOpAtomicIAdd: return "SpvOpAtomicIAdd";
403    case SpvOpAtomicISub: return "SpvOpAtomicISub";
404    case SpvOpAtomicSMin: return "SpvOpAtomicSMin";
405    case SpvOpAtomicUMin: return "SpvOpAtomicUMin";
406    case SpvOpAtomicSMax: return "SpvOpAtomicSMax";
407    case SpvOpAtomicUMax: return "SpvOpAtomicUMax";
408    case SpvOpAtomicAnd: return "SpvOpAtomicAnd";
409    case SpvOpAtomicOr: return "SpvOpAtomicOr";
410    case SpvOpAtomicXor: return "SpvOpAtomicXor";
411    case SpvOpPhi: return "SpvOpPhi";
412    case SpvOpLoopMerge: return "SpvOpLoopMerge";
413    case SpvOpSelectionMerge: return "SpvOpSelectionMerge";
414    case SpvOpLabel: return "SpvOpLabel";
415    case SpvOpBranch: return "SpvOpBranch";
416    case SpvOpBranchConditional: return "SpvOpBranchConditional";
417    case SpvOpSwitch: return "SpvOpSwitch";
418    case SpvOpKill: return "SpvOpKill";
419    case SpvOpReturn: return "SpvOpReturn";
420    case SpvOpReturnValue: return "SpvOpReturnValue";
421    case SpvOpUnreachable: return "SpvOpUnreachable";
422    case SpvOpLifetimeStart: return "SpvOpLifetimeStart";
423    case SpvOpLifetimeStop: return "SpvOpLifetimeStop";
424    case SpvOpGroupAsyncCopy: return "SpvOpGroupAsyncCopy";
425    case SpvOpGroupWaitEvents: return "SpvOpGroupWaitEvents";
426    case SpvOpGroupAll: return "SpvOpGroupAll";
427    case SpvOpGroupAny: return "SpvOpGroupAny";
428    case SpvOpGroupBroadcast: return "SpvOpGroupBroadcast";
429    case SpvOpGroupIAdd: return "SpvOpGroupIAdd";
430    case SpvOpGroupFAdd: return "SpvOpGroupFAdd";
431    case SpvOpGroupFMin: return "SpvOpGroupFMin";
432    case SpvOpGroupUMin: return "SpvOpGroupUMin";
433    case SpvOpGroupSMin: return "SpvOpGroupSMin";
434    case SpvOpGroupFMax: return "SpvOpGroupFMax";
435    case SpvOpGroupUMax: return "SpvOpGroupUMax";
436    case SpvOpGroupSMax: return "SpvOpGroupSMax";
437    case SpvOpReadPipe: return "SpvOpReadPipe";
438    case SpvOpWritePipe: return "SpvOpWritePipe";
439    case SpvOpReservedReadPipe: return "SpvOpReservedReadPipe";
440    case SpvOpReservedWritePipe: return "SpvOpReservedWritePipe";
441    case SpvOpReserveReadPipePackets: return "SpvOpReserveReadPipePackets";
442    case SpvOpReserveWritePipePackets: return "SpvOpReserveWritePipePackets";
443    case SpvOpCommitReadPipe: return "SpvOpCommitReadPipe";
444    case SpvOpCommitWritePipe: return "SpvOpCommitWritePipe";
445    case SpvOpIsValidReserveId: return "SpvOpIsValidReserveId";
446    case SpvOpGetNumPipePackets: return "SpvOpGetNumPipePackets";
447    case SpvOpGetMaxPipePackets: return "SpvOpGetMaxPipePackets";
448    case SpvOpGroupReserveReadPipePackets: return "SpvOpGroupReserveReadPipePackets";
449    case SpvOpGroupReserveWritePipePackets: return "SpvOpGroupReserveWritePipePackets";
450    case SpvOpGroupCommitReadPipe: return "SpvOpGroupCommitReadPipe";
451    case SpvOpGroupCommitWritePipe: return "SpvOpGroupCommitWritePipe";
452    case SpvOpEnqueueMarker: return "SpvOpEnqueueMarker";
453    case SpvOpEnqueueKernel: return "SpvOpEnqueueKernel";
454    case SpvOpGetKernelNDrangeSubGroupCount: return "SpvOpGetKernelNDrangeSubGroupCount";
455    case SpvOpGetKernelNDrangeMaxSubGroupSize: return "SpvOpGetKernelNDrangeMaxSubGroupSize";
456    case SpvOpGetKernelWorkGroupSize: return "SpvOpGetKernelWorkGroupSize";
457    case SpvOpGetKernelPreferredWorkGroupSizeMultiple: return "SpvOpGetKernelPreferredWorkGroupSizeMultiple";
458    case SpvOpRetainEvent: return "SpvOpRetainEvent";
459    case SpvOpReleaseEvent: return "SpvOpReleaseEvent";
460    case SpvOpCreateUserEvent: return "SpvOpCreateUserEvent";
461    case SpvOpIsValidEvent: return "SpvOpIsValidEvent";
462    case SpvOpSetUserEventStatus: return "SpvOpSetUserEventStatus";
463    case SpvOpCaptureEventProfilingInfo: return "SpvOpCaptureEventProfilingInfo";
464    case SpvOpGetDefaultQueue: return "SpvOpGetDefaultQueue";
465    case SpvOpBuildNDRange: return "SpvOpBuildNDRange";
466    case SpvOpImageSparseSampleImplicitLod: return "SpvOpImageSparseSampleImplicitLod";
467    case SpvOpImageSparseSampleExplicitLod: return "SpvOpImageSparseSampleExplicitLod";
468    case SpvOpImageSparseSampleDrefImplicitLod: return "SpvOpImageSparseSampleDrefImplicitLod";
469    case SpvOpImageSparseSampleDrefExplicitLod: return "SpvOpImageSparseSampleDrefExplicitLod";
470    case SpvOpImageSparseSampleProjImplicitLod: return "SpvOpImageSparseSampleProjImplicitLod";
471    case SpvOpImageSparseSampleProjExplicitLod: return "SpvOpImageSparseSampleProjExplicitLod";
472    case SpvOpImageSparseSampleProjDrefImplicitLod: return "SpvOpImageSparseSampleProjDrefImplicitLod";
473    case SpvOpImageSparseSampleProjDrefExplicitLod: return "SpvOpImageSparseSampleProjDrefExplicitLod";
474    case SpvOpImageSparseFetch: return "SpvOpImageSparseFetch";
475    case SpvOpImageSparseGather: return "SpvOpImageSparseGather";
476    case SpvOpImageSparseDrefGather: return "SpvOpImageSparseDrefGather";
477    case SpvOpImageSparseTexelsResident: return "SpvOpImageSparseTexelsResident";
478    case SpvOpNoLine: return "SpvOpNoLine";
479    case SpvOpAtomicFlagTestAndSet: return "SpvOpAtomicFlagTestAndSet";
480    case SpvOpAtomicFlagClear: return "SpvOpAtomicFlagClear";
481    case SpvOpImageSparseRead: return "SpvOpImageSparseRead";
482    case SpvOpSizeOf: return "SpvOpSizeOf";
483    case SpvOpTypePipeStorage: return "SpvOpTypePipeStorage";
484    case SpvOpConstantPipeStorage: return "SpvOpConstantPipeStorage";
485    case SpvOpCreatePipeFromPipeStorage: return "SpvOpCreatePipeFromPipeStorage";
486    case SpvOpGetKernelLocalSizeForSubgroupCount: return "SpvOpGetKernelLocalSizeForSubgroupCount";
487    case SpvOpGetKernelMaxNumSubgroups: return "SpvOpGetKernelMaxNumSubgroups";
488    case SpvOpTypeNamedBarrier: return "SpvOpTypeNamedBarrier";
489    case SpvOpNamedBarrierInitialize: return "SpvOpNamedBarrierInitialize";
490    case SpvOpMemoryNamedBarrier: return "SpvOpMemoryNamedBarrier";
491    case SpvOpModuleProcessed: return "SpvOpModuleProcessed";
492    case SpvOpExecutionModeId: return "SpvOpExecutionModeId";
493    case SpvOpDecorateId: return "SpvOpDecorateId";
494    case SpvOpSubgroupBallotKHR: return "SpvOpSubgroupBallotKHR";
495    case SpvOpSubgroupFirstInvocationKHR: return "SpvOpSubgroupFirstInvocationKHR";
496    case SpvOpSubgroupAllKHR: return "SpvOpSubgroupAllKHR";
497    case SpvOpSubgroupAnyKHR: return "SpvOpSubgroupAnyKHR";
498    case SpvOpSubgroupAllEqualKHR: return "SpvOpSubgroupAllEqualKHR";
499    case SpvOpSubgroupReadInvocationKHR: return "SpvOpSubgroupReadInvocationKHR";
500    case SpvOpGroupIAddNonUniformAMD: return "SpvOpGroupIAddNonUniformAMD";
501    case SpvOpGroupFAddNonUniformAMD: return "SpvOpGroupFAddNonUniformAMD";
502    case SpvOpGroupFMinNonUniformAMD: return "SpvOpGroupFMinNonUniformAMD";
503    case SpvOpGroupUMinNonUniformAMD: return "SpvOpGroupUMinNonUniformAMD";
504    case SpvOpGroupSMinNonUniformAMD: return "SpvOpGroupSMinNonUniformAMD";
505    case SpvOpGroupFMaxNonUniformAMD: return "SpvOpGroupFMaxNonUniformAMD";
506    case SpvOpGroupUMaxNonUniformAMD: return "SpvOpGroupUMaxNonUniformAMD";
507    case SpvOpGroupSMaxNonUniformAMD: return "SpvOpGroupSMaxNonUniformAMD";
508    case SpvOpFragmentMaskFetchAMD: return "SpvOpFragmentMaskFetchAMD";
509    case SpvOpFragmentFetchAMD: return "SpvOpFragmentFetchAMD";
510    case SpvOpSubgroupShuffleINTEL: return "SpvOpSubgroupShuffleINTEL";
511    case SpvOpSubgroupShuffleDownINTEL: return "SpvOpSubgroupShuffleDownINTEL";
512    case SpvOpSubgroupShuffleUpINTEL: return "SpvOpSubgroupShuffleUpINTEL";
513    case SpvOpSubgroupShuffleXorINTEL: return "SpvOpSubgroupShuffleXorINTEL";
514    case SpvOpSubgroupBlockReadINTEL: return "SpvOpSubgroupBlockReadINTEL";
515    case SpvOpSubgroupBlockWriteINTEL: return "SpvOpSubgroupBlockWriteINTEL";
516    case SpvOpSubgroupImageBlockReadINTEL: return "SpvOpSubgroupImageBlockReadINTEL";
517    case SpvOpSubgroupImageBlockWriteINTEL: return "SpvOpSubgroupImageBlockWriteINTEL";
518    case SpvOpMax: break; /* silence warnings about unhandled enums. */
519    }
520 
521    return "unknown";
522 }
523