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