1 /* DO NOT EDIT - This file is generated automatically by spirv_info_c.py script */ 2 3 /* 4 * Copyright (C) 2017 Intel Corporation 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the "Software"), 8 * to deal in the Software without restriction, including without limitation 9 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 * and/or sell copies of the Software, and to permit persons to whom the 11 * Software is furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice and this permission notice (including the next 14 * paragraph) shall be included in all copies or substantial portions of the 15 * Software. 16 * 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 * DEALINGS IN THE SOFTWARE. 24 */ 25 #include "spirv_info.h" 26 27 const char * 28 spirv_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 * 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 * 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