nir: Import the revision 30 SPIR-V header from Khronos
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 28 Apr 2015 04:13:44 +0000 (21:13 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Sat, 16 May 2015 18:16:31 +0000 (11:16 -0700)
src/glsl/nir/spirv.h [new file with mode: 0644]

diff --git a/src/glsl/nir/spirv.h b/src/glsl/nir/spirv.h
new file mode 100644 (file)
index 0000000..93135c0
--- /dev/null
@@ -0,0 +1,1304 @@
+/*
+** Copyright (c) 2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+/*
+** This header is automatically generated by the same tool that creates
+** the Binary Section of the SPIR-V specification.
+*/
+
+/*
+** Specification revision 30.
+** Enumeration tokens for SPIR-V, in three styles: C, C++, generic.
+** - C++ will have the tokens in the "spv" name space, with no prefix.
+** - C will have tokens with as "Spv" prefix.
+**
+** Some tokens act like mask values, which can be OR'd together,
+** while others are mutually exclusive.  The mask-like ones have
+** "Mask" in their name, and a parallel enum that has the shift
+** amount (1 << x) for each corresponding enumerant.
+*/
+
+#ifndef spirv_H
+#define spirv_H
+
+#ifdef __cplusplus
+
+namespace spv {
+
+const int MagicNumber = 0x07230203;
+const int Version = 99;
+
+typedef unsigned int Id;
+
+const unsigned int OpCodeMask = 0xFFFF;
+const unsigned int WordCountShift = 16;
+
+enum SourceLanguage {
+    SourceLanguageUnknown = 0,
+    SourceLanguageESSL = 1,
+    SourceLanguageGLSL = 2,
+    SourceLanguageOpenCL = 3,
+};
+
+enum ExecutionModel {
+    ExecutionModelVertex = 0,
+    ExecutionModelTessellationControl = 1,
+    ExecutionModelTessellationEvaluation = 2,
+    ExecutionModelGeometry = 3,
+    ExecutionModelFragment = 4,
+    ExecutionModelGLCompute = 5,
+    ExecutionModelKernel = 6,
+};
+
+enum AddressingModel {
+    AddressingModelLogical = 0,
+    AddressingModelPhysical32 = 1,
+    AddressingModelPhysical64 = 2,
+};
+
+enum MemoryModel {
+    MemoryModelSimple = 0,
+    MemoryModelGLSL450 = 1,
+    MemoryModelOpenCL12 = 2,
+    MemoryModelOpenCL20 = 3,
+    MemoryModelOpenCL21 = 4,
+};
+
+enum ExecutionMode {
+    ExecutionModeInvocations = 0,
+    ExecutionModeSpacingEqual = 1,
+    ExecutionModeSpacingFractionalEven = 2,
+    ExecutionModeSpacingFractionalOdd = 3,
+    ExecutionModeVertexOrderCw = 4,
+    ExecutionModeVertexOrderCcw = 5,
+    ExecutionModePixelCenterInteger = 6,
+    ExecutionModeOriginUpperLeft = 7,
+    ExecutionModeEarlyFragmentTests = 8,
+    ExecutionModePointMode = 9,
+    ExecutionModeXfb = 10,
+    ExecutionModeDepthReplacing = 11,
+    ExecutionModeDepthAny = 12,
+    ExecutionModeDepthGreater = 13,
+    ExecutionModeDepthLess = 14,
+    ExecutionModeDepthUnchanged = 15,
+    ExecutionModeLocalSize = 16,
+    ExecutionModeLocalSizeHint = 17,
+    ExecutionModeInputPoints = 18,
+    ExecutionModeInputLines = 19,
+    ExecutionModeInputLinesAdjacency = 20,
+    ExecutionModeInputTriangles = 21,
+    ExecutionModeInputTrianglesAdjacency = 22,
+    ExecutionModeInputQuads = 23,
+    ExecutionModeInputIsolines = 24,
+    ExecutionModeOutputVertices = 25,
+    ExecutionModeOutputPoints = 26,
+    ExecutionModeOutputLineStrip = 27,
+    ExecutionModeOutputTriangleStrip = 28,
+    ExecutionModeVecTypeHint = 29,
+    ExecutionModeContractionOff = 30,
+};
+
+enum StorageClass {
+    StorageClassUniformConstant = 0,
+    StorageClassInput = 1,
+    StorageClassUniform = 2,
+    StorageClassOutput = 3,
+    StorageClassWorkgroupLocal = 4,
+    StorageClassWorkgroupGlobal = 5,
+    StorageClassPrivateGlobal = 6,
+    StorageClassFunction = 7,
+    StorageClassGeneric = 8,
+    StorageClassPrivate = 9,
+    StorageClassAtomicCounter = 10,
+};
+
+enum Dim {
+    Dim1D = 0,
+    Dim2D = 1,
+    Dim3D = 2,
+    DimCube = 3,
+    DimRect = 4,
+    DimBuffer = 5,
+};
+
+enum SamplerAddressingMode {
+    SamplerAddressingModeNone = 0,
+    SamplerAddressingModeClampToEdge = 1,
+    SamplerAddressingModeClamp = 2,
+    SamplerAddressingModeRepeat = 3,
+    SamplerAddressingModeRepeatMirrored = 4,
+};
+
+enum SamplerFilterMode {
+    SamplerFilterModeNearest = 0,
+    SamplerFilterModeLinear = 1,
+};
+
+enum FPFastMathModeShift {
+    FPFastMathModeNotNaNShift = 0,
+    FPFastMathModeNotInfShift = 1,
+    FPFastMathModeNSZShift = 2,
+    FPFastMathModeAllowRecipShift = 3,
+    FPFastMathModeFastShift = 4,
+};
+
+enum FPFastMathModeMask {
+    FPFastMathModeMaskNone = 0,
+    FPFastMathModeNotNaNMask = 0x00000001,
+    FPFastMathModeNotInfMask = 0x00000002,
+    FPFastMathModeNSZMask = 0x00000004,
+    FPFastMathModeAllowRecipMask = 0x00000008,
+    FPFastMathModeFastMask = 0x00000010,
+};
+
+enum FPRoundingMode {
+    FPRoundingModeRTE = 0,
+    FPRoundingModeRTZ = 1,
+    FPRoundingModeRTP = 2,
+    FPRoundingModeRTN = 3,
+};
+
+enum LinkageType {
+    LinkageTypeExport = 0,
+    LinkageTypeImport = 1,
+};
+
+enum AccessQualifier {
+    AccessQualifierReadOnly = 0,
+    AccessQualifierWriteOnly = 1,
+    AccessQualifierReadWrite = 2,
+};
+
+enum FunctionParameterAttribute {
+    FunctionParameterAttributeZext = 0,
+    FunctionParameterAttributeSext = 1,
+    FunctionParameterAttributeByVal = 2,
+    FunctionParameterAttributeSret = 3,
+    FunctionParameterAttributeNoAlias = 4,
+    FunctionParameterAttributeNoCapture = 5,
+    FunctionParameterAttributeSVM = 6,
+    FunctionParameterAttributeNoWrite = 7,
+    FunctionParameterAttributeNoReadWrite = 8,
+};
+
+enum Decoration {
+    DecorationPrecisionLow = 0,
+    DecorationPrecisionMedium = 1,
+    DecorationPrecisionHigh = 2,
+    DecorationBlock = 3,
+    DecorationBufferBlock = 4,
+    DecorationRowMajor = 5,
+    DecorationColMajor = 6,
+    DecorationGLSLShared = 7,
+    DecorationGLSLStd140 = 8,
+    DecorationGLSLStd430 = 9,
+    DecorationGLSLPacked = 10,
+    DecorationSmooth = 11,
+    DecorationNoperspective = 12,
+    DecorationFlat = 13,
+    DecorationPatch = 14,
+    DecorationCentroid = 15,
+    DecorationSample = 16,
+    DecorationInvariant = 17,
+    DecorationRestrict = 18,
+    DecorationAliased = 19,
+    DecorationVolatile = 20,
+    DecorationConstant = 21,
+    DecorationCoherent = 22,
+    DecorationNonwritable = 23,
+    DecorationNonreadable = 24,
+    DecorationUniform = 25,
+    DecorationNoStaticUse = 26,
+    DecorationCPacked = 27,
+    DecorationSaturatedConversion = 28,
+    DecorationStream = 29,
+    DecorationLocation = 30,
+    DecorationComponent = 31,
+    DecorationIndex = 32,
+    DecorationBinding = 33,
+    DecorationDescriptorSet = 34,
+    DecorationOffset = 35,
+    DecorationAlignment = 36,
+    DecorationXfbBuffer = 37,
+    DecorationStride = 38,
+    DecorationBuiltIn = 39,
+    DecorationFuncParamAttr = 40,
+    DecorationFPRoundingMode = 41,
+    DecorationFPFastMathMode = 42,
+    DecorationLinkageAttributes = 43,
+    DecorationSpecId = 44,
+};
+
+enum BuiltIn {
+    BuiltInPosition = 0,
+    BuiltInPointSize = 1,
+    BuiltInClipVertex = 2,
+    BuiltInClipDistance = 3,
+    BuiltInCullDistance = 4,
+    BuiltInVertexId = 5,
+    BuiltInInstanceId = 6,
+    BuiltInPrimitiveId = 7,
+    BuiltInInvocationId = 8,
+    BuiltInLayer = 9,
+    BuiltInViewportIndex = 10,
+    BuiltInTessLevelOuter = 11,
+    BuiltInTessLevelInner = 12,
+    BuiltInTessCoord = 13,
+    BuiltInPatchVertices = 14,
+    BuiltInFragCoord = 15,
+    BuiltInPointCoord = 16,
+    BuiltInFrontFacing = 17,
+    BuiltInSampleId = 18,
+    BuiltInSamplePosition = 19,
+    BuiltInSampleMask = 20,
+    BuiltInFragColor = 21,
+    BuiltInFragDepth = 22,
+    BuiltInHelperInvocation = 23,
+    BuiltInNumWorkgroups = 24,
+    BuiltInWorkgroupSize = 25,
+    BuiltInWorkgroupId = 26,
+    BuiltInLocalInvocationId = 27,
+    BuiltInGlobalInvocationId = 28,
+    BuiltInLocalInvocationIndex = 29,
+    BuiltInWorkDim = 30,
+    BuiltInGlobalSize = 31,
+    BuiltInEnqueuedWorkgroupSize = 32,
+    BuiltInGlobalOffset = 33,
+    BuiltInGlobalLinearId = 34,
+    BuiltInWorkgroupLinearId = 35,
+    BuiltInSubgroupSize = 36,
+    BuiltInSubgroupMaxSize = 37,
+    BuiltInNumSubgroups = 38,
+    BuiltInNumEnqueuedSubgroups = 39,
+    BuiltInSubgroupId = 40,
+    BuiltInSubgroupLocalInvocationId = 41,
+};
+
+enum SelectionControlShift {
+    SelectionControlFlattenShift = 0,
+    SelectionControlDontFlattenShift = 1,
+};
+
+enum SelectionControlMask {
+    SelectionControlMaskNone = 0,
+    SelectionControlFlattenMask = 0x00000001,
+    SelectionControlDontFlattenMask = 0x00000002,
+};
+
+enum LoopControlShift {
+    LoopControlUnrollShift = 0,
+    LoopControlDontUnrollShift = 1,
+};
+
+enum LoopControlMask {
+    LoopControlMaskNone = 0,
+    LoopControlUnrollMask = 0x00000001,
+    LoopControlDontUnrollMask = 0x00000002,
+};
+
+enum FunctionControlShift {
+    FunctionControlInlineShift = 0,
+    FunctionControlDontInlineShift = 1,
+    FunctionControlPureShift = 2,
+    FunctionControlConstShift = 3,
+};
+
+enum FunctionControlMask {
+    FunctionControlMaskNone = 0,
+    FunctionControlInlineMask = 0x00000001,
+    FunctionControlDontInlineMask = 0x00000002,
+    FunctionControlPureMask = 0x00000004,
+    FunctionControlConstMask = 0x00000008,
+};
+
+enum MemorySemanticsShift {
+    MemorySemanticsRelaxedShift = 0,
+    MemorySemanticsSequentiallyConsistentShift = 1,
+    MemorySemanticsAcquireShift = 2,
+    MemorySemanticsReleaseShift = 3,
+    MemorySemanticsUniformMemoryShift = 4,
+    MemorySemanticsSubgroupMemoryShift = 5,
+    MemorySemanticsWorkgroupLocalMemoryShift = 6,
+    MemorySemanticsWorkgroupGlobalMemoryShift = 7,
+    MemorySemanticsAtomicCounterMemoryShift = 8,
+    MemorySemanticsImageMemoryShift = 9,
+};
+
+enum MemorySemanticsMask {
+    MemorySemanticsMaskNone = 0,
+    MemorySemanticsRelaxedMask = 0x00000001,
+    MemorySemanticsSequentiallyConsistentMask = 0x00000002,
+    MemorySemanticsAcquireMask = 0x00000004,
+    MemorySemanticsReleaseMask = 0x00000008,
+    MemorySemanticsUniformMemoryMask = 0x00000010,
+    MemorySemanticsSubgroupMemoryMask = 0x00000020,
+    MemorySemanticsWorkgroupLocalMemoryMask = 0x00000040,
+    MemorySemanticsWorkgroupGlobalMemoryMask = 0x00000080,
+    MemorySemanticsAtomicCounterMemoryMask = 0x00000100,
+    MemorySemanticsImageMemoryMask = 0x00000200,
+};
+
+enum MemoryAccessShift {
+    MemoryAccessVolatileShift = 0,
+    MemoryAccessAlignedShift = 1,
+};
+
+enum MemoryAccessMask {
+    MemoryAccessMaskNone = 0,
+    MemoryAccessVolatileMask = 0x00000001,
+    MemoryAccessAlignedMask = 0x00000002,
+};
+
+enum ExecutionScope {
+    ExecutionScopeCrossDevice = 0,
+    ExecutionScopeDevice = 1,
+    ExecutionScopeWorkgroup = 2,
+    ExecutionScopeSubgroup = 3,
+};
+
+enum GroupOperation {
+    GroupOperationReduce = 0,
+    GroupOperationInclusiveScan = 1,
+    GroupOperationExclusiveScan = 2,
+};
+
+enum KernelEnqueueFlags {
+    KernelEnqueueFlagsNoWait = 0,
+    KernelEnqueueFlagsWaitKernel = 1,
+    KernelEnqueueFlagsWaitWorkGroup = 2,
+};
+
+enum KernelProfilingInfoShift {
+    KernelProfilingInfoCmdExecTimeShift = 0,
+};
+
+enum KernelProfilingInfoMask {
+    KernelProfilingInfoMaskNone = 0,
+    KernelProfilingInfoCmdExecTimeMask = 0x00000001,
+};
+
+enum Op {
+    OpNop = 0,
+    OpSource = 1,
+    OpSourceExtension = 2,
+    OpExtension = 3,
+    OpExtInstImport = 4,
+    OpMemoryModel = 5,
+    OpEntryPoint = 6,
+    OpExecutionMode = 7,
+    OpTypeVoid = 8,
+    OpTypeBool = 9,
+    OpTypeInt = 10,
+    OpTypeFloat = 11,
+    OpTypeVector = 12,
+    OpTypeMatrix = 13,
+    OpTypeSampler = 14,
+    OpTypeFilter = 15,
+    OpTypeArray = 16,
+    OpTypeRuntimeArray = 17,
+    OpTypeStruct = 18,
+    OpTypeOpaque = 19,
+    OpTypePointer = 20,
+    OpTypeFunction = 21,
+    OpTypeEvent = 22,
+    OpTypeDeviceEvent = 23,
+    OpTypeReserveId = 24,
+    OpTypeQueue = 25,
+    OpTypePipe = 26,
+    OpConstantTrue = 27,
+    OpConstantFalse = 28,
+    OpConstant = 29,
+    OpConstantComposite = 30,
+    OpConstantSampler = 31,
+    OpConstantNullPointer = 32,
+    OpConstantNullObject = 33,
+    OpSpecConstantTrue = 34,
+    OpSpecConstantFalse = 35,
+    OpSpecConstant = 36,
+    OpSpecConstantComposite = 37,
+    OpVariable = 38,
+    OpVariableArray = 39,
+    OpFunction = 40,
+    OpFunctionParameter = 41,
+    OpFunctionEnd = 42,
+    OpFunctionCall = 43,
+    OpExtInst = 44,
+    OpUndef = 45,
+    OpLoad = 46,
+    OpStore = 47,
+    OpPhi = 48,
+    OpDecorationGroup = 49,
+    OpDecorate = 50,
+    OpMemberDecorate = 51,
+    OpGroupDecorate = 52,
+    OpGroupMemberDecorate = 53,
+    OpName = 54,
+    OpMemberName = 55,
+    OpString = 56,
+    OpLine = 57,
+    OpVectorExtractDynamic = 58,
+    OpVectorInsertDynamic = 59,
+    OpVectorShuffle = 60,
+    OpCompositeConstruct = 61,
+    OpCompositeExtract = 62,
+    OpCompositeInsert = 63,
+    OpCopyObject = 64,
+    OpCopyMemory = 65,
+    OpCopyMemorySized = 66,
+    OpSampler = 67,
+    OpTextureSample = 68,
+    OpTextureSampleDref = 69,
+    OpTextureSampleLod = 70,
+    OpTextureSampleProj = 71,
+    OpTextureSampleGrad = 72,
+    OpTextureSampleOffset = 73,
+    OpTextureSampleProjLod = 74,
+    OpTextureSampleProjGrad = 75,
+    OpTextureSampleLodOffset = 76,
+    OpTextureSampleProjOffset = 77,
+    OpTextureSampleGradOffset = 78,
+    OpTextureSampleProjLodOffset = 79,
+    OpTextureSampleProjGradOffset = 80,
+    OpTextureFetchTexelLod = 81,
+    OpTextureFetchTexelOffset = 82,
+    OpTextureFetchSample = 83,
+    OpTextureFetchTexel = 84,
+    OpTextureGather = 85,
+    OpTextureGatherOffset = 86,
+    OpTextureGatherOffsets = 87,
+    OpTextureQuerySizeLod = 88,
+    OpTextureQuerySize = 89,
+    OpTextureQueryLod = 90,
+    OpTextureQueryLevels = 91,
+    OpTextureQuerySamples = 92,
+    OpAccessChain = 93,
+    OpInBoundsAccessChain = 94,
+    OpSNegate = 95,
+    OpFNegate = 96,
+    OpNot = 97,
+    OpAny = 98,
+    OpAll = 99,
+    OpConvertFToU = 100,
+    OpConvertFToS = 101,
+    OpConvertSToF = 102,
+    OpConvertUToF = 103,
+    OpUConvert = 104,
+    OpSConvert = 105,
+    OpFConvert = 106,
+    OpConvertPtrToU = 107,
+    OpConvertUToPtr = 108,
+    OpPtrCastToGeneric = 109,
+    OpGenericCastToPtr = 110,
+    OpBitcast = 111,
+    OpTranspose = 112,
+    OpIsNan = 113,
+    OpIsInf = 114,
+    OpIsFinite = 115,
+    OpIsNormal = 116,
+    OpSignBitSet = 117,
+    OpLessOrGreater = 118,
+    OpOrdered = 119,
+    OpUnordered = 120,
+    OpArrayLength = 121,
+    OpIAdd = 122,
+    OpFAdd = 123,
+    OpISub = 124,
+    OpFSub = 125,
+    OpIMul = 126,
+    OpFMul = 127,
+    OpUDiv = 128,
+    OpSDiv = 129,
+    OpFDiv = 130,
+    OpUMod = 131,
+    OpSRem = 132,
+    OpSMod = 133,
+    OpFRem = 134,
+    OpFMod = 135,
+    OpVectorTimesScalar = 136,
+    OpMatrixTimesScalar = 137,
+    OpVectorTimesMatrix = 138,
+    OpMatrixTimesVector = 139,
+    OpMatrixTimesMatrix = 140,
+    OpOuterProduct = 141,
+    OpDot = 142,
+    OpShiftRightLogical = 143,
+    OpShiftRightArithmetic = 144,
+    OpShiftLeftLogical = 145,
+    OpLogicalOr = 146,
+    OpLogicalXor = 147,
+    OpLogicalAnd = 148,
+    OpBitwiseOr = 149,
+    OpBitwiseXor = 150,
+    OpBitwiseAnd = 151,
+    OpSelect = 152,
+    OpIEqual = 153,
+    OpFOrdEqual = 154,
+    OpFUnordEqual = 155,
+    OpINotEqual = 156,
+    OpFOrdNotEqual = 157,
+    OpFUnordNotEqual = 158,
+    OpULessThan = 159,
+    OpSLessThan = 160,
+    OpFOrdLessThan = 161,
+    OpFUnordLessThan = 162,
+    OpUGreaterThan = 163,
+    OpSGreaterThan = 164,
+    OpFOrdGreaterThan = 165,
+    OpFUnordGreaterThan = 166,
+    OpULessThanEqual = 167,
+    OpSLessThanEqual = 168,
+    OpFOrdLessThanEqual = 169,
+    OpFUnordLessThanEqual = 170,
+    OpUGreaterThanEqual = 171,
+    OpSGreaterThanEqual = 172,
+    OpFOrdGreaterThanEqual = 173,
+    OpFUnordGreaterThanEqual = 174,
+    OpDPdx = 175,
+    OpDPdy = 176,
+    OpFwidth = 177,
+    OpDPdxFine = 178,
+    OpDPdyFine = 179,
+    OpFwidthFine = 180,
+    OpDPdxCoarse = 181,
+    OpDPdyCoarse = 182,
+    OpFwidthCoarse = 183,
+    OpEmitVertex = 184,
+    OpEndPrimitive = 185,
+    OpEmitStreamVertex = 186,
+    OpEndStreamPrimitive = 187,
+    OpControlBarrier = 188,
+    OpMemoryBarrier = 189,
+    OpImagePointer = 190,
+    OpAtomicInit = 191,
+    OpAtomicLoad = 192,
+    OpAtomicStore = 193,
+    OpAtomicExchange = 194,
+    OpAtomicCompareExchange = 195,
+    OpAtomicCompareExchangeWeak = 196,
+    OpAtomicIIncrement = 197,
+    OpAtomicIDecrement = 198,
+    OpAtomicIAdd = 199,
+    OpAtomicISub = 200,
+    OpAtomicUMin = 201,
+    OpAtomicUMax = 202,
+    OpAtomicAnd = 203,
+    OpAtomicOr = 204,
+    OpAtomicXor = 205,
+    OpLoopMerge = 206,
+    OpSelectionMerge = 207,
+    OpLabel = 208,
+    OpBranch = 209,
+    OpBranchConditional = 210,
+    OpSwitch = 211,
+    OpKill = 212,
+    OpReturn = 213,
+    OpReturnValue = 214,
+    OpUnreachable = 215,
+    OpLifetimeStart = 216,
+    OpLifetimeStop = 217,
+    OpCompileFlag = 218,
+    OpAsyncGroupCopy = 219,
+    OpWaitGroupEvents = 220,
+    OpGroupAll = 221,
+    OpGroupAny = 222,
+    OpGroupBroadcast = 223,
+    OpGroupIAdd = 224,
+    OpGroupFAdd = 225,
+    OpGroupFMin = 226,
+    OpGroupUMin = 227,
+    OpGroupSMin = 228,
+    OpGroupFMax = 229,
+    OpGroupUMax = 230,
+    OpGroupSMax = 231,
+    OpGenericCastToPtrExplicit = 232,
+    OpGenericPtrMemSemantics = 233,
+    OpReadPipe = 234,
+    OpWritePipe = 235,
+    OpReservedReadPipe = 236,
+    OpReservedWritePipe = 237,
+    OpReserveReadPipePackets = 238,
+    OpReserveWritePipePackets = 239,
+    OpCommitReadPipe = 240,
+    OpCommitWritePipe = 241,
+    OpIsValidReserveId = 242,
+    OpGetNumPipePackets = 243,
+    OpGetMaxPipePackets = 244,
+    OpGroupReserveReadPipePackets = 245,
+    OpGroupReserveWritePipePackets = 246,
+    OpGroupCommitReadPipe = 247,
+    OpGroupCommitWritePipe = 248,
+    OpEnqueueMarker = 249,
+    OpEnqueueKernel = 250,
+    OpGetKernelNDrangeSubGroupCount = 251,
+    OpGetKernelNDrangeMaxSubGroupSize = 252,
+    OpGetKernelWorkGroupSize = 253,
+    OpGetKernelPreferredWorkGroupSizeMultiple = 254,
+    OpRetainEvent = 255,
+    OpReleaseEvent = 256,
+    OpCreateUserEvent = 257,
+    OpIsValidEvent = 258,
+    OpSetUserEventStatus = 259,
+    OpCaptureEventProfilingInfo = 260,
+    OpGetDefaultQueue = 261,
+    OpBuildNDRange = 262,
+    OpSatConvertSToU = 263,
+    OpSatConvertUToS = 264,
+    OpAtomicIMin = 265,
+    OpAtomicIMax = 266,
+};
+
+};  // end namespace spv
+
+#endif  // #ifdef __cplusplus
+
+
+#ifndef __cplusplus
+
+const int SpvMagicNumber = 0x07230203;
+const int SpvVersion = 99;
+
+typedef unsigned int SpvId;
+
+const unsigned int SpvOpCodeMask = 0xFFFF;
+const unsigned int SpvWordCountShift = 16;
+
+typedef enum SpvSourceLanguage_ {
+    SpvSourceLanguageUnknown = 0,
+    SpvSourceLanguageESSL = 1,
+    SpvSourceLanguageGLSL = 2,
+    SpvSourceLanguageOpenCL = 3,
+} SpvSourceLanguage;
+
+typedef enum SpvExecutionModel_ {
+    SpvExecutionModelVertex = 0,
+    SpvExecutionModelTessellationControl = 1,
+    SpvExecutionModelTessellationEvaluation = 2,
+    SpvExecutionModelGeometry = 3,
+    SpvExecutionModelFragment = 4,
+    SpvExecutionModelGLCompute = 5,
+    SpvExecutionModelKernel = 6,
+} SpvExecutionModel;
+
+typedef enum SpvAddressingModel_ {
+    SpvAddressingModelLogical = 0,
+    SpvAddressingModelPhysical32 = 1,
+    SpvAddressingModelPhysical64 = 2,
+} SpvAddressingModel;
+
+typedef enum SpvMemoryModel_ {
+    SpvMemoryModelSimple = 0,
+    SpvMemoryModelGLSL450 = 1,
+    SpvMemoryModelOpenCL12 = 2,
+    SpvMemoryModelOpenCL20 = 3,
+    SpvMemoryModelOpenCL21 = 4,
+} SpvMemoryModel;
+
+typedef enum SpvExecutionMode_ {
+    SpvExecutionModeInvocations = 0,
+    SpvExecutionModeSpacingEqual = 1,
+    SpvExecutionModeSpacingFractionalEven = 2,
+    SpvExecutionModeSpacingFractionalOdd = 3,
+    SpvExecutionModeVertexOrderCw = 4,
+    SpvExecutionModeVertexOrderCcw = 5,
+    SpvExecutionModePixelCenterInteger = 6,
+    SpvExecutionModeOriginUpperLeft = 7,
+    SpvExecutionModeEarlyFragmentTests = 8,
+    SpvExecutionModePointMode = 9,
+    SpvExecutionModeXfb = 10,
+    SpvExecutionModeDepthReplacing = 11,
+    SpvExecutionModeDepthAny = 12,
+    SpvExecutionModeDepthGreater = 13,
+    SpvExecutionModeDepthLess = 14,
+    SpvExecutionModeDepthUnchanged = 15,
+    SpvExecutionModeLocalSize = 16,
+    SpvExecutionModeLocalSizeHint = 17,
+    SpvExecutionModeInputPoints = 18,
+    SpvExecutionModeInputLines = 19,
+    SpvExecutionModeInputLinesAdjacency = 20,
+    SpvExecutionModeInputTriangles = 21,
+    SpvExecutionModeInputTrianglesAdjacency = 22,
+    SpvExecutionModeInputQuads = 23,
+    SpvExecutionModeInputIsolines = 24,
+    SpvExecutionModeOutputVertices = 25,
+    SpvExecutionModeOutputPoints = 26,
+    SpvExecutionModeOutputLineStrip = 27,
+    SpvExecutionModeOutputTriangleStrip = 28,
+    SpvExecutionModeVecTypeHint = 29,
+    SpvExecutionModeContractionOff = 30,
+} SpvExecutionMode;
+
+typedef enum SpvStorageClass_ {
+    SpvStorageClassUniformConstant = 0,
+    SpvStorageClassInput = 1,
+    SpvStorageClassUniform = 2,
+    SpvStorageClassOutput = 3,
+    SpvStorageClassWorkgroupLocal = 4,
+    SpvStorageClassWorkgroupGlobal = 5,
+    SpvStorageClassPrivateGlobal = 6,
+    SpvStorageClassFunction = 7,
+    SpvStorageClassGeneric = 8,
+    SpvStorageClassPrivate = 9,
+    SpvStorageClassAtomicCounter = 10,
+} SpvStorageClass;
+
+typedef enum SpvDim_ {
+    SpvDim1D = 0,
+    SpvDim2D = 1,
+    SpvDim3D = 2,
+    SpvDimCube = 3,
+    SpvDimRect = 4,
+    SpvDimBuffer = 5,
+} SpvDim;
+
+typedef enum SpvSamplerAddressingMode_ {
+    SpvSamplerAddressingModeNone = 0,
+    SpvSamplerAddressingModeClampToEdge = 1,
+    SpvSamplerAddressingModeClamp = 2,
+    SpvSamplerAddressingModeRepeat = 3,
+    SpvSamplerAddressingModeRepeatMirrored = 4,
+} SpvSamplerAddressingMode;
+
+typedef enum SpvSamplerFilterMode_ {
+    SpvSamplerFilterModeNearest = 0,
+    SpvSamplerFilterModeLinear = 1,
+} SpvSamplerFilterMode;
+
+typedef enum SpvFPFastMathModeShift_ {
+    SpvFPFastMathModeNotNaNShift = 0,
+    SpvFPFastMathModeNotInfShift = 1,
+    SpvFPFastMathModeNSZShift = 2,
+    SpvFPFastMathModeAllowRecipShift = 3,
+    SpvFPFastMathModeFastShift = 4,
+} SpvFPFastMathModeShift;
+
+typedef enum SpvFPFastMathModeMask_ {
+    SpvFPFastMathModeMaskNone = 0,
+    SpvFPFastMathModeNotNaNMask = 0x00000001,
+    SpvFPFastMathModeNotInfMask = 0x00000002,
+    SpvFPFastMathModeNSZMask = 0x00000004,
+    SpvFPFastMathModeAllowRecipMask = 0x00000008,
+    SpvFPFastMathModeFastMask = 0x00000010,
+} SpvFPFastMathModeMask;
+
+typedef enum SpvFPRoundingMode_ {
+    SpvFPRoundingModeRTE = 0,
+    SpvFPRoundingModeRTZ = 1,
+    SpvFPRoundingModeRTP = 2,
+    SpvFPRoundingModeRTN = 3,
+} SpvFPRoundingMode;
+
+typedef enum SpvLinkageType_ {
+    SpvLinkageTypeExport = 0,
+    SpvLinkageTypeImport = 1,
+} SpvLinkageType;
+
+typedef enum SpvAccessQualifier_ {
+    SpvAccessQualifierReadOnly = 0,
+    SpvAccessQualifierWriteOnly = 1,
+    SpvAccessQualifierReadWrite = 2,
+} SpvAccessQualifier;
+
+typedef enum SpvFunctionParameterAttribute_ {
+    SpvFunctionParameterAttributeZext = 0,
+    SpvFunctionParameterAttributeSext = 1,
+    SpvFunctionParameterAttributeByVal = 2,
+    SpvFunctionParameterAttributeSret = 3,
+    SpvFunctionParameterAttributeNoAlias = 4,
+    SpvFunctionParameterAttributeNoCapture = 5,
+    SpvFunctionParameterAttributeSVM = 6,
+    SpvFunctionParameterAttributeNoWrite = 7,
+    SpvFunctionParameterAttributeNoReadWrite = 8,
+} SpvFunctionParameterAttribute;
+
+typedef enum SpvDecoration_ {
+    SpvDecorationPrecisionLow = 0,
+    SpvDecorationPrecisionMedium = 1,
+    SpvDecorationPrecisionHigh = 2,
+    SpvDecorationBlock = 3,
+    SpvDecorationBufferBlock = 4,
+    SpvDecorationRowMajor = 5,
+    SpvDecorationColMajor = 6,
+    SpvDecorationGLSLShared = 7,
+    SpvDecorationGLSLStd140 = 8,
+    SpvDecorationGLSLStd430 = 9,
+    SpvDecorationGLSLPacked = 10,
+    SpvDecorationSmooth = 11,
+    SpvDecorationNoperspective = 12,
+    SpvDecorationFlat = 13,
+    SpvDecorationPatch = 14,
+    SpvDecorationCentroid = 15,
+    SpvDecorationSample = 16,
+    SpvDecorationInvariant = 17,
+    SpvDecorationRestrict = 18,
+    SpvDecorationAliased = 19,
+    SpvDecorationVolatile = 20,
+    SpvDecorationConstant = 21,
+    SpvDecorationCoherent = 22,
+    SpvDecorationNonwritable = 23,
+    SpvDecorationNonreadable = 24,
+    SpvDecorationUniform = 25,
+    SpvDecorationNoStaticUse = 26,
+    SpvDecorationCPacked = 27,
+    SpvDecorationSaturatedConversion = 28,
+    SpvDecorationStream = 29,
+    SpvDecorationLocation = 30,
+    SpvDecorationComponent = 31,
+    SpvDecorationIndex = 32,
+    SpvDecorationBinding = 33,
+    SpvDecorationDescriptorSet = 34,
+    SpvDecorationOffset = 35,
+    SpvDecorationAlignment = 36,
+    SpvDecorationXfbBuffer = 37,
+    SpvDecorationStride = 38,
+    SpvDecorationBuiltIn = 39,
+    SpvDecorationFuncParamAttr = 40,
+    SpvDecorationFPRoundingMode = 41,
+    SpvDecorationFPFastMathMode = 42,
+    SpvDecorationLinkageAttributes = 43,
+    SpvDecorationSpecId = 44,
+} SpvDecoration;
+
+typedef enum SpvBuiltIn_ {
+    SpvBuiltInPosition = 0,
+    SpvBuiltInPointSize = 1,
+    SpvBuiltInClipVertex = 2,
+    SpvBuiltInClipDistance = 3,
+    SpvBuiltInCullDistance = 4,
+    SpvBuiltInVertexId = 5,
+    SpvBuiltInInstanceId = 6,
+    SpvBuiltInPrimitiveId = 7,
+    SpvBuiltInInvocationId = 8,
+    SpvBuiltInLayer = 9,
+    SpvBuiltInViewportIndex = 10,
+    SpvBuiltInTessLevelOuter = 11,
+    SpvBuiltInTessLevelInner = 12,
+    SpvBuiltInTessCoord = 13,
+    SpvBuiltInPatchVertices = 14,
+    SpvBuiltInFragCoord = 15,
+    SpvBuiltInPointCoord = 16,
+    SpvBuiltInFrontFacing = 17,
+    SpvBuiltInSampleId = 18,
+    SpvBuiltInSamplePosition = 19,
+    SpvBuiltInSampleMask = 20,
+    SpvBuiltInFragColor = 21,
+    SpvBuiltInFragDepth = 22,
+    SpvBuiltInHelperInvocation = 23,
+    SpvBuiltInNumWorkgroups = 24,
+    SpvBuiltInWorkgroupSize = 25,
+    SpvBuiltInWorkgroupId = 26,
+    SpvBuiltInLocalInvocationId = 27,
+    SpvBuiltInGlobalInvocationId = 28,
+    SpvBuiltInLocalInvocationIndex = 29,
+    SpvBuiltInWorkDim = 30,
+    SpvBuiltInGlobalSize = 31,
+    SpvBuiltInEnqueuedWorkgroupSize = 32,
+    SpvBuiltInGlobalOffset = 33,
+    SpvBuiltInGlobalLinearId = 34,
+    SpvBuiltInWorkgroupLinearId = 35,
+    SpvBuiltInSubgroupSize = 36,
+    SpvBuiltInSubgroupMaxSize = 37,
+    SpvBuiltInNumSubgroups = 38,
+    SpvBuiltInNumEnqueuedSubgroups = 39,
+    SpvBuiltInSubgroupId = 40,
+    SpvBuiltInSubgroupLocalInvocationId = 41,
+} SpvBuiltIn;
+
+typedef enum SpvSelectionControlShift_ {
+    SpvSelectionControlFlattenShift = 0,
+    SpvSelectionControlDontFlattenShift = 1,
+} SpvSelectionControlShift;
+
+typedef enum SpvSelectionControlMask_ {
+    SpvSelectionControlMaskNone = 0,
+    SpvSelectionControlFlattenMask = 0x00000001,
+    SpvSelectionControlDontFlattenMask = 0x00000002,
+} SpvSelectionControlMask;
+
+typedef enum SpvLoopControlShift_ {
+    SpvLoopControlUnrollShift = 0,
+    SpvLoopControlDontUnrollShift = 1,
+} SpvLoopControlShift;
+
+typedef enum SpvLoopControlMask_ {
+    SpvLoopControlMaskNone = 0,
+    SpvLoopControlUnrollMask = 0x00000001,
+    SpvLoopControlDontUnrollMask = 0x00000002,
+} SpvLoopControlMask;
+
+typedef enum SpvFunctionControlShift_ {
+    SpvFunctionControlInlineShift = 0,
+    SpvFunctionControlDontInlineShift = 1,
+    SpvFunctionControlPureShift = 2,
+    SpvFunctionControlConstShift = 3,
+} SpvFunctionControlShift;
+
+typedef enum SpvFunctionControlMask_ {
+    SpvFunctionControlMaskNone = 0,
+    SpvFunctionControlInlineMask = 0x00000001,
+    SpvFunctionControlDontInlineMask = 0x00000002,
+    SpvFunctionControlPureMask = 0x00000004,
+    SpvFunctionControlConstMask = 0x00000008,
+} SpvFunctionControlMask;
+
+typedef enum SpvMemorySemanticsShift_ {
+    SpvMemorySemanticsRelaxedShift = 0,
+    SpvMemorySemanticsSequentiallyConsistentShift = 1,
+    SpvMemorySemanticsAcquireShift = 2,
+    SpvMemorySemanticsReleaseShift = 3,
+    SpvMemorySemanticsUniformMemoryShift = 4,
+    SpvMemorySemanticsSubgroupMemoryShift = 5,
+    SpvMemorySemanticsWorkgroupLocalMemoryShift = 6,
+    SpvMemorySemanticsWorkgroupGlobalMemoryShift = 7,
+    SpvMemorySemanticsAtomicCounterMemoryShift = 8,
+    SpvMemorySemanticsImageMemoryShift = 9,
+} SpvMemorySemanticsShift;
+
+typedef enum SpvMemorySemanticsMask_ {
+    SpvMemorySemanticsMaskNone = 0,
+    SpvMemorySemanticsRelaxedMask = 0x00000001,
+    SpvMemorySemanticsSequentiallyConsistentMask = 0x00000002,
+    SpvMemorySemanticsAcquireMask = 0x00000004,
+    SpvMemorySemanticsReleaseMask = 0x00000008,
+    SpvMemorySemanticsUniformMemoryMask = 0x00000010,
+    SpvMemorySemanticsSubgroupMemoryMask = 0x00000020,
+    SpvMemorySemanticsWorkgroupLocalMemoryMask = 0x00000040,
+    SpvMemorySemanticsWorkgroupGlobalMemoryMask = 0x00000080,
+    SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000100,
+    SpvMemorySemanticsImageMemoryMask = 0x00000200,
+} SpvMemorySemanticsMask;
+
+typedef enum SpvMemoryAccessShift_ {
+    SpvMemoryAccessVolatileShift = 0,
+    SpvMemoryAccessAlignedShift = 1,
+} SpvMemoryAccessShift;
+
+typedef enum SpvMemoryAccessMask_ {
+    SpvMemoryAccessMaskNone = 0,
+    SpvMemoryAccessVolatileMask = 0x00000001,
+    SpvMemoryAccessAlignedMask = 0x00000002,
+} SpvMemoryAccessMask;
+
+typedef enum SpvExecutionScope_ {
+    SpvExecutionScopeCrossDevice = 0,
+    SpvExecutionScopeDevice = 1,
+    SpvExecutionScopeWorkgroup = 2,
+    SpvExecutionScopeSubgroup = 3,
+} SpvExecutionScope;
+
+typedef enum SpvGroupOperation_ {
+    SpvGroupOperationReduce = 0,
+    SpvGroupOperationInclusiveScan = 1,
+    SpvGroupOperationExclusiveScan = 2,
+} SpvGroupOperation;
+
+typedef enum SpvKernelEnqueueFlags_ {
+    SpvKernelEnqueueFlagsNoWait = 0,
+    SpvKernelEnqueueFlagsWaitKernel = 1,
+    SpvKernelEnqueueFlagsWaitWorkGroup = 2,
+} SpvKernelEnqueueFlags;
+
+typedef enum SpvKernelProfilingInfoShift_ {
+    SpvKernelProfilingInfoCmdExecTimeShift = 0,
+} SpvKernelProfilingInfoShift;
+
+typedef enum SpvKernelProfilingInfoMask_ {
+    SpvKernelProfilingInfoMaskNone = 0,
+    SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
+} SpvKernelProfilingInfoMask;
+
+typedef enum SpvOp_ {
+    SpvOpNop = 0,
+    SpvOpSource = 1,
+    SpvOpSourceExtension = 2,
+    SpvOpExtension = 3,
+    SpvOpExtInstImport = 4,
+    SpvOpMemoryModel = 5,
+    SpvOpEntryPoint = 6,
+    SpvOpExecutionMode = 7,
+    SpvOpTypeVoid = 8,
+    SpvOpTypeBool = 9,
+    SpvOpTypeInt = 10,
+    SpvOpTypeFloat = 11,
+    SpvOpTypeVector = 12,
+    SpvOpTypeMatrix = 13,
+    SpvOpTypeSampler = 14,
+    SpvOpTypeFilter = 15,
+    SpvOpTypeArray = 16,
+    SpvOpTypeRuntimeArray = 17,
+    SpvOpTypeStruct = 18,
+    SpvOpTypeOpaque = 19,
+    SpvOpTypePointer = 20,
+    SpvOpTypeFunction = 21,
+    SpvOpTypeEvent = 22,
+    SpvOpTypeDeviceEvent = 23,
+    SpvOpTypeReserveId = 24,
+    SpvOpTypeQueue = 25,
+    SpvOpTypePipe = 26,
+    SpvOpConstantTrue = 27,
+    SpvOpConstantFalse = 28,
+    SpvOpConstant = 29,
+    SpvOpConstantComposite = 30,
+    SpvOpConstantSampler = 31,
+    SpvOpConstantNullPointer = 32,
+    SpvOpConstantNullObject = 33,
+    SpvOpSpecConstantTrue = 34,
+    SpvOpSpecConstantFalse = 35,
+    SpvOpSpecConstant = 36,
+    SpvOpSpecConstantComposite = 37,
+    SpvOpVariable = 38,
+    SpvOpVariableArray = 39,
+    SpvOpFunction = 40,
+    SpvOpFunctionParameter = 41,
+    SpvOpFunctionEnd = 42,
+    SpvOpFunctionCall = 43,
+    SpvOpExtInst = 44,
+    SpvOpUndef = 45,
+    SpvOpLoad = 46,
+    SpvOpStore = 47,
+    SpvOpPhi = 48,
+    SpvOpDecorationGroup = 49,
+    SpvOpDecorate = 50,
+    SpvOpMemberDecorate = 51,
+    SpvOpGroupDecorate = 52,
+    SpvOpGroupMemberDecorate = 53,
+    SpvOpName = 54,
+    SpvOpMemberName = 55,
+    SpvOpString = 56,
+    SpvOpLine = 57,
+    SpvOpVectorExtractDynamic = 58,
+    SpvOpVectorInsertDynamic = 59,
+    SpvOpVectorShuffle = 60,
+    SpvOpCompositeConstruct = 61,
+    SpvOpCompositeExtract = 62,
+    SpvOpCompositeInsert = 63,
+    SpvOpCopyObject = 64,
+    SpvOpCopyMemory = 65,
+    SpvOpCopyMemorySized = 66,
+    SpvOpSampler = 67,
+    SpvOpTextureSample = 68,
+    SpvOpTextureSampleDref = 69,
+    SpvOpTextureSampleLod = 70,
+    SpvOpTextureSampleProj = 71,
+    SpvOpTextureSampleGrad = 72,
+    SpvOpTextureSampleOffset = 73,
+    SpvOpTextureSampleProjLod = 74,
+    SpvOpTextureSampleProjGrad = 75,
+    SpvOpTextureSampleLodOffset = 76,
+    SpvOpTextureSampleProjOffset = 77,
+    SpvOpTextureSampleGradOffset = 78,
+    SpvOpTextureSampleProjLodOffset = 79,
+    SpvOpTextureSampleProjGradOffset = 80,
+    SpvOpTextureFetchTexelLod = 81,
+    SpvOpTextureFetchTexelOffset = 82,
+    SpvOpTextureFetchSample = 83,
+    SpvOpTextureFetchTexel = 84,
+    SpvOpTextureGather = 85,
+    SpvOpTextureGatherOffset = 86,
+    SpvOpTextureGatherOffsets = 87,
+    SpvOpTextureQuerySizeLod = 88,
+    SpvOpTextureQuerySize = 89,
+    SpvOpTextureQueryLod = 90,
+    SpvOpTextureQueryLevels = 91,
+    SpvOpTextureQuerySamples = 92,
+    SpvOpAccessChain = 93,
+    SpvOpInBoundsAccessChain = 94,
+    SpvOpSNegate = 95,
+    SpvOpFNegate = 96,
+    SpvOpNot = 97,
+    SpvOpAny = 98,
+    SpvOpAll = 99,
+    SpvOpConvertFToU = 100,
+    SpvOpConvertFToS = 101,
+    SpvOpConvertSToF = 102,
+    SpvOpConvertUToF = 103,
+    SpvOpUConvert = 104,
+    SpvOpSConvert = 105,
+    SpvOpFConvert = 106,
+    SpvOpConvertPtrToU = 107,
+    SpvOpConvertUToPtr = 108,
+    SpvOpPtrCastToGeneric = 109,
+    SpvOpGenericCastToPtr = 110,
+    SpvOpBitcast = 111,
+    SpvOpTranspose = 112,
+    SpvOpIsNan = 113,
+    SpvOpIsInf = 114,
+    SpvOpIsFinite = 115,
+    SpvOpIsNormal = 116,
+    SpvOpSignBitSet = 117,
+    SpvOpLessOrGreater = 118,
+    SpvOpOrdered = 119,
+    SpvOpUnordered = 120,
+    SpvOpArrayLength = 121,
+    SpvOpIAdd = 122,
+    SpvOpFAdd = 123,
+    SpvOpISub = 124,
+    SpvOpFSub = 125,
+    SpvOpIMul = 126,
+    SpvOpFMul = 127,
+    SpvOpUDiv = 128,
+    SpvOpSDiv = 129,
+    SpvOpFDiv = 130,
+    SpvOpUMod = 131,
+    SpvOpSRem = 132,
+    SpvOpSMod = 133,
+    SpvOpFRem = 134,
+    SpvOpFMod = 135,
+    SpvOpVectorTimesScalar = 136,
+    SpvOpMatrixTimesScalar = 137,
+    SpvOpVectorTimesMatrix = 138,
+    SpvOpMatrixTimesVector = 139,
+    SpvOpMatrixTimesMatrix = 140,
+    SpvOpOuterProduct = 141,
+    SpvOpDot = 142,
+    SpvOpShiftRightLogical = 143,
+    SpvOpShiftRightArithmetic = 144,
+    SpvOpShiftLeftLogical = 145,
+    SpvOpLogicalOr = 146,
+    SpvOpLogicalXor = 147,
+    SpvOpLogicalAnd = 148,
+    SpvOpBitwiseOr = 149,
+    SpvOpBitwiseXor = 150,
+    SpvOpBitwiseAnd = 151,
+    SpvOpSelect = 152,
+    SpvOpIEqual = 153,
+    SpvOpFOrdEqual = 154,
+    SpvOpFUnordEqual = 155,
+    SpvOpINotEqual = 156,
+    SpvOpFOrdNotEqual = 157,
+    SpvOpFUnordNotEqual = 158,
+    SpvOpULessThan = 159,
+    SpvOpSLessThan = 160,
+    SpvOpFOrdLessThan = 161,
+    SpvOpFUnordLessThan = 162,
+    SpvOpUGreaterThan = 163,
+    SpvOpSGreaterThan = 164,
+    SpvOpFOrdGreaterThan = 165,
+    SpvOpFUnordGreaterThan = 166,
+    SpvOpULessThanEqual = 167,
+    SpvOpSLessThanEqual = 168,
+    SpvOpFOrdLessThanEqual = 169,
+    SpvOpFUnordLessThanEqual = 170,
+    SpvOpUGreaterThanEqual = 171,
+    SpvOpSGreaterThanEqual = 172,
+    SpvOpFOrdGreaterThanEqual = 173,
+    SpvOpFUnordGreaterThanEqual = 174,
+    SpvOpDPdx = 175,
+    SpvOpDPdy = 176,
+    SpvOpFwidth = 177,
+    SpvOpDPdxFine = 178,
+    SpvOpDPdyFine = 179,
+    SpvOpFwidthFine = 180,
+    SpvOpDPdxCoarse = 181,
+    SpvOpDPdyCoarse = 182,
+    SpvOpFwidthCoarse = 183,
+    SpvOpEmitVertex = 184,
+    SpvOpEndPrimitive = 185,
+    SpvOpEmitStreamVertex = 186,
+    SpvOpEndStreamPrimitive = 187,
+    SpvOpControlBarrier = 188,
+    SpvOpMemoryBarrier = 189,
+    SpvOpImagePointer = 190,
+    SpvOpAtomicInit = 191,
+    SpvOpAtomicLoad = 192,
+    SpvOpAtomicStore = 193,
+    SpvOpAtomicExchange = 194,
+    SpvOpAtomicCompareExchange = 195,
+    SpvOpAtomicCompareExchangeWeak = 196,
+    SpvOpAtomicIIncrement = 197,
+    SpvOpAtomicIDecrement = 198,
+    SpvOpAtomicIAdd = 199,
+    SpvOpAtomicISub = 200,
+    SpvOpAtomicUMin = 201,
+    SpvOpAtomicUMax = 202,
+    SpvOpAtomicAnd = 203,
+    SpvOpAtomicOr = 204,
+    SpvOpAtomicXor = 205,
+    SpvOpLoopMerge = 206,
+    SpvOpSelectionMerge = 207,
+    SpvOpLabel = 208,
+    SpvOpBranch = 209,
+    SpvOpBranchConditional = 210,
+    SpvOpSwitch = 211,
+    SpvOpKill = 212,
+    SpvOpReturn = 213,
+    SpvOpReturnValue = 214,
+    SpvOpUnreachable = 215,
+    SpvOpLifetimeStart = 216,
+    SpvOpLifetimeStop = 217,
+    SpvOpCompileFlag = 218,
+    SpvOpAsyncGroupCopy = 219,
+    SpvOpWaitGroupEvents = 220,
+    SpvOpGroupAll = 221,
+    SpvOpGroupAny = 222,
+    SpvOpGroupBroadcast = 223,
+    SpvOpGroupIAdd = 224,
+    SpvOpGroupFAdd = 225,
+    SpvOpGroupFMin = 226,
+    SpvOpGroupUMin = 227,
+    SpvOpGroupSMin = 228,
+    SpvOpGroupFMax = 229,
+    SpvOpGroupUMax = 230,
+    SpvOpGroupSMax = 231,
+    SpvOpGenericCastToPtrExplicit = 232,
+    SpvOpGenericPtrMemSemantics = 233,
+    SpvOpReadPipe = 234,
+    SpvOpWritePipe = 235,
+    SpvOpReservedReadPipe = 236,
+    SpvOpReservedWritePipe = 237,
+    SpvOpReserveReadPipePackets = 238,
+    SpvOpReserveWritePipePackets = 239,
+    SpvOpCommitReadPipe = 240,
+    SpvOpCommitWritePipe = 241,
+    SpvOpIsValidReserveId = 242,
+    SpvOpGetNumPipePackets = 243,
+    SpvOpGetMaxPipePackets = 244,
+    SpvOpGroupReserveReadPipePackets = 245,
+    SpvOpGroupReserveWritePipePackets = 246,
+    SpvOpGroupCommitReadPipe = 247,
+    SpvOpGroupCommitWritePipe = 248,
+    SpvOpEnqueueMarker = 249,
+    SpvOpEnqueueKernel = 250,
+    SpvOpGetKernelNDrangeSubGroupCount = 251,
+    SpvOpGetKernelNDrangeMaxSubGroupSize = 252,
+    SpvOpGetKernelWorkGroupSize = 253,
+    SpvOpGetKernelPreferredWorkGroupSizeMultiple = 254,
+    SpvOpRetainEvent = 255,
+    SpvOpReleaseEvent = 256,
+    SpvOpCreateUserEvent = 257,
+    SpvOpIsValidEvent = 258,
+    SpvOpSetUserEventStatus = 259,
+    SpvOpCaptureEventProfilingInfo = 260,
+    SpvOpGetDefaultQueue = 261,
+    SpvOpBuildNDRange = 262,
+    SpvOpSatConvertSToU = 263,
+    SpvOpSatConvertUToS = 264,
+    SpvOpAtomicIMin = 265,
+    SpvOpAtomicIMax = 266,
+} SpvOp;
+
+#endif  // #ifndef __cplusplus
+
+#endif  // #ifndef spirv_H