spirv.h revision 01e04c3f
101e04c3fSmrg/*
201e04c3fSmrg** Copyright (c) 2014-2018 The Khronos Group Inc.
301e04c3fSmrg**
401e04c3fSmrg** Permission is hereby granted, free of charge, to any person obtaining a copy
501e04c3fSmrg** of this software and/or associated documentation files (the "Materials"),
601e04c3fSmrg** to deal in the Materials without restriction, including without limitation
701e04c3fSmrg** the rights to use, copy, modify, merge, publish, distribute, sublicense,
801e04c3fSmrg** and/or sell copies of the Materials, and to permit persons to whom the
901e04c3fSmrg** Materials are furnished to do so, subject to the following conditions:
1001e04c3fSmrg**
1101e04c3fSmrg** The above copyright notice and this permission notice shall be included in
1201e04c3fSmrg** all copies or substantial portions of the Materials.
1301e04c3fSmrg**
1401e04c3fSmrg** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
1501e04c3fSmrg** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
1601e04c3fSmrg** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
1701e04c3fSmrg**
1801e04c3fSmrg** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1901e04c3fSmrg** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2001e04c3fSmrg** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
2101e04c3fSmrg** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2201e04c3fSmrg** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2301e04c3fSmrg** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
2401e04c3fSmrg** IN THE MATERIALS.
2501e04c3fSmrg*/
2601e04c3fSmrg
2701e04c3fSmrg/*
2801e04c3fSmrg** This header is automatically generated by the same tool that creates
2901e04c3fSmrg** the Binary Section of the SPIR-V specification.
3001e04c3fSmrg*/
3101e04c3fSmrg
3201e04c3fSmrg/*
3301e04c3fSmrg** Enumeration tokens for SPIR-V, in various styles:
3401e04c3fSmrg**   C, C++, C++11, JSON, Lua, Python
3501e04c3fSmrg**
3601e04c3fSmrg** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
3701e04c3fSmrg** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
3801e04c3fSmrg** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
3901e04c3fSmrg** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
4001e04c3fSmrg** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
4101e04c3fSmrg**
4201e04c3fSmrg** Some tokens act like mask values, which can be OR'd together,
4301e04c3fSmrg** while others are mutually exclusive.  The mask-like ones have
4401e04c3fSmrg** "Mask" in their name, and a parallel enum that has the shift
4501e04c3fSmrg** amount (1 << x) for each corresponding enumerant.
4601e04c3fSmrg*/
4701e04c3fSmrg
4801e04c3fSmrg#ifndef spirv_H
4901e04c3fSmrg#define spirv_H
5001e04c3fSmrg
5101e04c3fSmrgtypedef unsigned int SpvId;
5201e04c3fSmrg
5301e04c3fSmrg#define SPV_VERSION 0x10300
5401e04c3fSmrg#define SPV_REVISION 1
5501e04c3fSmrg
5601e04c3fSmrgstatic const unsigned int SpvMagicNumber = 0x07230203;
5701e04c3fSmrgstatic const unsigned int SpvVersion = 0x00010300;
5801e04c3fSmrgstatic const unsigned int SpvRevision = 1;
5901e04c3fSmrgstatic const unsigned int SpvOpCodeMask = 0xffff;
6001e04c3fSmrgstatic const unsigned int SpvWordCountShift = 16;
6101e04c3fSmrg
6201e04c3fSmrgtypedef enum SpvSourceLanguage_ {
6301e04c3fSmrg    SpvSourceLanguageUnknown = 0,
6401e04c3fSmrg    SpvSourceLanguageESSL = 1,
6501e04c3fSmrg    SpvSourceLanguageGLSL = 2,
6601e04c3fSmrg    SpvSourceLanguageOpenCL_C = 3,
6701e04c3fSmrg    SpvSourceLanguageOpenCL_CPP = 4,
6801e04c3fSmrg    SpvSourceLanguageHLSL = 5,
6901e04c3fSmrg    SpvSourceLanguageMax = 0x7fffffff,
7001e04c3fSmrg} SpvSourceLanguage;
7101e04c3fSmrg
7201e04c3fSmrgtypedef enum SpvExecutionModel_ {
7301e04c3fSmrg    SpvExecutionModelVertex = 0,
7401e04c3fSmrg    SpvExecutionModelTessellationControl = 1,
7501e04c3fSmrg    SpvExecutionModelTessellationEvaluation = 2,
7601e04c3fSmrg    SpvExecutionModelGeometry = 3,
7701e04c3fSmrg    SpvExecutionModelFragment = 4,
7801e04c3fSmrg    SpvExecutionModelGLCompute = 5,
7901e04c3fSmrg    SpvExecutionModelKernel = 6,
8001e04c3fSmrg    SpvExecutionModelTaskNV = 5267,
8101e04c3fSmrg    SpvExecutionModelMeshNV = 5268,
8201e04c3fSmrg    SpvExecutionModelRayGenerationNVX = 5313,
8301e04c3fSmrg    SpvExecutionModelIntersectionNVX = 5314,
8401e04c3fSmrg    SpvExecutionModelAnyHitNVX = 5315,
8501e04c3fSmrg    SpvExecutionModelClosestHitNVX = 5316,
8601e04c3fSmrg    SpvExecutionModelMissNVX = 5317,
8701e04c3fSmrg    SpvExecutionModelCallableNVX = 5318,
8801e04c3fSmrg    SpvExecutionModelMax = 0x7fffffff,
8901e04c3fSmrg} SpvExecutionModel;
9001e04c3fSmrg
9101e04c3fSmrgtypedef enum SpvAddressingModel_ {
9201e04c3fSmrg    SpvAddressingModelLogical = 0,
9301e04c3fSmrg    SpvAddressingModelPhysical32 = 1,
9401e04c3fSmrg    SpvAddressingModelPhysical64 = 2,
9501e04c3fSmrg    SpvAddressingModelMax = 0x7fffffff,
9601e04c3fSmrg} SpvAddressingModel;
9701e04c3fSmrg
9801e04c3fSmrgtypedef enum SpvMemoryModel_ {
9901e04c3fSmrg    SpvMemoryModelSimple = 0,
10001e04c3fSmrg    SpvMemoryModelGLSL450 = 1,
10101e04c3fSmrg    SpvMemoryModelOpenCL = 2,
10201e04c3fSmrg    SpvMemoryModelVulkanKHR = 3,
10301e04c3fSmrg    SpvMemoryModelMax = 0x7fffffff,
10401e04c3fSmrg} SpvMemoryModel;
10501e04c3fSmrg
10601e04c3fSmrgtypedef enum SpvExecutionMode_ {
10701e04c3fSmrg    SpvExecutionModeInvocations = 0,
10801e04c3fSmrg    SpvExecutionModeSpacingEqual = 1,
10901e04c3fSmrg    SpvExecutionModeSpacingFractionalEven = 2,
11001e04c3fSmrg    SpvExecutionModeSpacingFractionalOdd = 3,
11101e04c3fSmrg    SpvExecutionModeVertexOrderCw = 4,
11201e04c3fSmrg    SpvExecutionModeVertexOrderCcw = 5,
11301e04c3fSmrg    SpvExecutionModePixelCenterInteger = 6,
11401e04c3fSmrg    SpvExecutionModeOriginUpperLeft = 7,
11501e04c3fSmrg    SpvExecutionModeOriginLowerLeft = 8,
11601e04c3fSmrg    SpvExecutionModeEarlyFragmentTests = 9,
11701e04c3fSmrg    SpvExecutionModePointMode = 10,
11801e04c3fSmrg    SpvExecutionModeXfb = 11,
11901e04c3fSmrg    SpvExecutionModeDepthReplacing = 12,
12001e04c3fSmrg    SpvExecutionModeDepthGreater = 14,
12101e04c3fSmrg    SpvExecutionModeDepthLess = 15,
12201e04c3fSmrg    SpvExecutionModeDepthUnchanged = 16,
12301e04c3fSmrg    SpvExecutionModeLocalSize = 17,
12401e04c3fSmrg    SpvExecutionModeLocalSizeHint = 18,
12501e04c3fSmrg    SpvExecutionModeInputPoints = 19,
12601e04c3fSmrg    SpvExecutionModeInputLines = 20,
12701e04c3fSmrg    SpvExecutionModeInputLinesAdjacency = 21,
12801e04c3fSmrg    SpvExecutionModeTriangles = 22,
12901e04c3fSmrg    SpvExecutionModeInputTrianglesAdjacency = 23,
13001e04c3fSmrg    SpvExecutionModeQuads = 24,
13101e04c3fSmrg    SpvExecutionModeIsolines = 25,
13201e04c3fSmrg    SpvExecutionModeOutputVertices = 26,
13301e04c3fSmrg    SpvExecutionModeOutputPoints = 27,
13401e04c3fSmrg    SpvExecutionModeOutputLineStrip = 28,
13501e04c3fSmrg    SpvExecutionModeOutputTriangleStrip = 29,
13601e04c3fSmrg    SpvExecutionModeVecTypeHint = 30,
13701e04c3fSmrg    SpvExecutionModeContractionOff = 31,
13801e04c3fSmrg    SpvExecutionModeInitializer = 33,
13901e04c3fSmrg    SpvExecutionModeFinalizer = 34,
14001e04c3fSmrg    SpvExecutionModeSubgroupSize = 35,
14101e04c3fSmrg    SpvExecutionModeSubgroupsPerWorkgroup = 36,
14201e04c3fSmrg    SpvExecutionModeSubgroupsPerWorkgroupId = 37,
14301e04c3fSmrg    SpvExecutionModeLocalSizeId = 38,
14401e04c3fSmrg    SpvExecutionModeLocalSizeHintId = 39,
14501e04c3fSmrg    SpvExecutionModePostDepthCoverage = 4446,
14601e04c3fSmrg    SpvExecutionModeStencilRefReplacingEXT = 5027,
14701e04c3fSmrg    SpvExecutionModeOutputLinesNV = 5269,
14801e04c3fSmrg    SpvExecutionModeOutputPrimitivesNV = 5270,
14901e04c3fSmrg    SpvExecutionModeDerivativeGroupQuadsNV = 5289,
15001e04c3fSmrg    SpvExecutionModeDerivativeGroupLinearNV = 5290,
15101e04c3fSmrg    SpvExecutionModeOutputTrianglesNV = 5298,
15201e04c3fSmrg    SpvExecutionModeMax = 0x7fffffff,
15301e04c3fSmrg} SpvExecutionMode;
15401e04c3fSmrg
15501e04c3fSmrgtypedef enum SpvStorageClass_ {
15601e04c3fSmrg    SpvStorageClassUniformConstant = 0,
15701e04c3fSmrg    SpvStorageClassInput = 1,
15801e04c3fSmrg    SpvStorageClassUniform = 2,
15901e04c3fSmrg    SpvStorageClassOutput = 3,
16001e04c3fSmrg    SpvStorageClassWorkgroup = 4,
16101e04c3fSmrg    SpvStorageClassCrossWorkgroup = 5,
16201e04c3fSmrg    SpvStorageClassPrivate = 6,
16301e04c3fSmrg    SpvStorageClassFunction = 7,
16401e04c3fSmrg    SpvStorageClassGeneric = 8,
16501e04c3fSmrg    SpvStorageClassPushConstant = 9,
16601e04c3fSmrg    SpvStorageClassAtomicCounter = 10,
16701e04c3fSmrg    SpvStorageClassImage = 11,
16801e04c3fSmrg    SpvStorageClassStorageBuffer = 12,
16901e04c3fSmrg    SpvStorageClassRayPayloadNVX = 5338,
17001e04c3fSmrg    SpvStorageClassHitAttributeNVX = 5339,
17101e04c3fSmrg    SpvStorageClassIncomingRayPayloadNVX = 5342,
17201e04c3fSmrg    SpvStorageClassShaderRecordBufferNVX = 5343,
17301e04c3fSmrg    SpvStorageClassMax = 0x7fffffff,
17401e04c3fSmrg} SpvStorageClass;
17501e04c3fSmrg
17601e04c3fSmrgtypedef enum SpvDim_ {
17701e04c3fSmrg    SpvDim1D = 0,
17801e04c3fSmrg    SpvDim2D = 1,
17901e04c3fSmrg    SpvDim3D = 2,
18001e04c3fSmrg    SpvDimCube = 3,
18101e04c3fSmrg    SpvDimRect = 4,
18201e04c3fSmrg    SpvDimBuffer = 5,
18301e04c3fSmrg    SpvDimSubpassData = 6,
18401e04c3fSmrg    SpvDimMax = 0x7fffffff,
18501e04c3fSmrg} SpvDim;
18601e04c3fSmrg
18701e04c3fSmrgtypedef enum SpvSamplerAddressingMode_ {
18801e04c3fSmrg    SpvSamplerAddressingModeNone = 0,
18901e04c3fSmrg    SpvSamplerAddressingModeClampToEdge = 1,
19001e04c3fSmrg    SpvSamplerAddressingModeClamp = 2,
19101e04c3fSmrg    SpvSamplerAddressingModeRepeat = 3,
19201e04c3fSmrg    SpvSamplerAddressingModeRepeatMirrored = 4,
19301e04c3fSmrg    SpvSamplerAddressingModeMax = 0x7fffffff,
19401e04c3fSmrg} SpvSamplerAddressingMode;
19501e04c3fSmrg
19601e04c3fSmrgtypedef enum SpvSamplerFilterMode_ {
19701e04c3fSmrg    SpvSamplerFilterModeNearest = 0,
19801e04c3fSmrg    SpvSamplerFilterModeLinear = 1,
19901e04c3fSmrg    SpvSamplerFilterModeMax = 0x7fffffff,
20001e04c3fSmrg} SpvSamplerFilterMode;
20101e04c3fSmrg
20201e04c3fSmrgtypedef enum SpvImageFormat_ {
20301e04c3fSmrg    SpvImageFormatUnknown = 0,
20401e04c3fSmrg    SpvImageFormatRgba32f = 1,
20501e04c3fSmrg    SpvImageFormatRgba16f = 2,
20601e04c3fSmrg    SpvImageFormatR32f = 3,
20701e04c3fSmrg    SpvImageFormatRgba8 = 4,
20801e04c3fSmrg    SpvImageFormatRgba8Snorm = 5,
20901e04c3fSmrg    SpvImageFormatRg32f = 6,
21001e04c3fSmrg    SpvImageFormatRg16f = 7,
21101e04c3fSmrg    SpvImageFormatR11fG11fB10f = 8,
21201e04c3fSmrg    SpvImageFormatR16f = 9,
21301e04c3fSmrg    SpvImageFormatRgba16 = 10,
21401e04c3fSmrg    SpvImageFormatRgb10A2 = 11,
21501e04c3fSmrg    SpvImageFormatRg16 = 12,
21601e04c3fSmrg    SpvImageFormatRg8 = 13,
21701e04c3fSmrg    SpvImageFormatR16 = 14,
21801e04c3fSmrg    SpvImageFormatR8 = 15,
21901e04c3fSmrg    SpvImageFormatRgba16Snorm = 16,
22001e04c3fSmrg    SpvImageFormatRg16Snorm = 17,
22101e04c3fSmrg    SpvImageFormatRg8Snorm = 18,
22201e04c3fSmrg    SpvImageFormatR16Snorm = 19,
22301e04c3fSmrg    SpvImageFormatR8Snorm = 20,
22401e04c3fSmrg    SpvImageFormatRgba32i = 21,
22501e04c3fSmrg    SpvImageFormatRgba16i = 22,
22601e04c3fSmrg    SpvImageFormatRgba8i = 23,
22701e04c3fSmrg    SpvImageFormatR32i = 24,
22801e04c3fSmrg    SpvImageFormatRg32i = 25,
22901e04c3fSmrg    SpvImageFormatRg16i = 26,
23001e04c3fSmrg    SpvImageFormatRg8i = 27,
23101e04c3fSmrg    SpvImageFormatR16i = 28,
23201e04c3fSmrg    SpvImageFormatR8i = 29,
23301e04c3fSmrg    SpvImageFormatRgba32ui = 30,
23401e04c3fSmrg    SpvImageFormatRgba16ui = 31,
23501e04c3fSmrg    SpvImageFormatRgba8ui = 32,
23601e04c3fSmrg    SpvImageFormatR32ui = 33,
23701e04c3fSmrg    SpvImageFormatRgb10a2ui = 34,
23801e04c3fSmrg    SpvImageFormatRg32ui = 35,
23901e04c3fSmrg    SpvImageFormatRg16ui = 36,
24001e04c3fSmrg    SpvImageFormatRg8ui = 37,
24101e04c3fSmrg    SpvImageFormatR16ui = 38,
24201e04c3fSmrg    SpvImageFormatR8ui = 39,
24301e04c3fSmrg    SpvImageFormatMax = 0x7fffffff,
24401e04c3fSmrg} SpvImageFormat;
24501e04c3fSmrg
24601e04c3fSmrgtypedef enum SpvImageChannelOrder_ {
24701e04c3fSmrg    SpvImageChannelOrderR = 0,
24801e04c3fSmrg    SpvImageChannelOrderA = 1,
24901e04c3fSmrg    SpvImageChannelOrderRG = 2,
25001e04c3fSmrg    SpvImageChannelOrderRA = 3,
25101e04c3fSmrg    SpvImageChannelOrderRGB = 4,
25201e04c3fSmrg    SpvImageChannelOrderRGBA = 5,
25301e04c3fSmrg    SpvImageChannelOrderBGRA = 6,
25401e04c3fSmrg    SpvImageChannelOrderARGB = 7,
25501e04c3fSmrg    SpvImageChannelOrderIntensity = 8,
25601e04c3fSmrg    SpvImageChannelOrderLuminance = 9,
25701e04c3fSmrg    SpvImageChannelOrderRx = 10,
25801e04c3fSmrg    SpvImageChannelOrderRGx = 11,
25901e04c3fSmrg    SpvImageChannelOrderRGBx = 12,
26001e04c3fSmrg    SpvImageChannelOrderDepth = 13,
26101e04c3fSmrg    SpvImageChannelOrderDepthStencil = 14,
26201e04c3fSmrg    SpvImageChannelOrdersRGB = 15,
26301e04c3fSmrg    SpvImageChannelOrdersRGBx = 16,
26401e04c3fSmrg    SpvImageChannelOrdersRGBA = 17,
26501e04c3fSmrg    SpvImageChannelOrdersBGRA = 18,
26601e04c3fSmrg    SpvImageChannelOrderABGR = 19,
26701e04c3fSmrg    SpvImageChannelOrderMax = 0x7fffffff,
26801e04c3fSmrg} SpvImageChannelOrder;
26901e04c3fSmrg
27001e04c3fSmrgtypedef enum SpvImageChannelDataType_ {
27101e04c3fSmrg    SpvImageChannelDataTypeSnormInt8 = 0,
27201e04c3fSmrg    SpvImageChannelDataTypeSnormInt16 = 1,
27301e04c3fSmrg    SpvImageChannelDataTypeUnormInt8 = 2,
27401e04c3fSmrg    SpvImageChannelDataTypeUnormInt16 = 3,
27501e04c3fSmrg    SpvImageChannelDataTypeUnormShort565 = 4,
27601e04c3fSmrg    SpvImageChannelDataTypeUnormShort555 = 5,
27701e04c3fSmrg    SpvImageChannelDataTypeUnormInt101010 = 6,
27801e04c3fSmrg    SpvImageChannelDataTypeSignedInt8 = 7,
27901e04c3fSmrg    SpvImageChannelDataTypeSignedInt16 = 8,
28001e04c3fSmrg    SpvImageChannelDataTypeSignedInt32 = 9,
28101e04c3fSmrg    SpvImageChannelDataTypeUnsignedInt8 = 10,
28201e04c3fSmrg    SpvImageChannelDataTypeUnsignedInt16 = 11,
28301e04c3fSmrg    SpvImageChannelDataTypeUnsignedInt32 = 12,
28401e04c3fSmrg    SpvImageChannelDataTypeHalfFloat = 13,
28501e04c3fSmrg    SpvImageChannelDataTypeFloat = 14,
28601e04c3fSmrg    SpvImageChannelDataTypeUnormInt24 = 15,
28701e04c3fSmrg    SpvImageChannelDataTypeUnormInt101010_2 = 16,
28801e04c3fSmrg    SpvImageChannelDataTypeMax = 0x7fffffff,
28901e04c3fSmrg} SpvImageChannelDataType;
29001e04c3fSmrg
29101e04c3fSmrgtypedef enum SpvImageOperandsShift_ {
29201e04c3fSmrg    SpvImageOperandsBiasShift = 0,
29301e04c3fSmrg    SpvImageOperandsLodShift = 1,
29401e04c3fSmrg    SpvImageOperandsGradShift = 2,
29501e04c3fSmrg    SpvImageOperandsConstOffsetShift = 3,
29601e04c3fSmrg    SpvImageOperandsOffsetShift = 4,
29701e04c3fSmrg    SpvImageOperandsConstOffsetsShift = 5,
29801e04c3fSmrg    SpvImageOperandsSampleShift = 6,
29901e04c3fSmrg    SpvImageOperandsMinLodShift = 7,
30001e04c3fSmrg    SpvImageOperandsMakeTexelAvailableKHRShift = 8,
30101e04c3fSmrg    SpvImageOperandsMakeTexelVisibleKHRShift = 9,
30201e04c3fSmrg    SpvImageOperandsNonPrivateTexelKHRShift = 10,
30301e04c3fSmrg    SpvImageOperandsVolatileTexelKHRShift = 11,
30401e04c3fSmrg    SpvImageOperandsMax = 0x7fffffff,
30501e04c3fSmrg} SpvImageOperandsShift;
30601e04c3fSmrg
30701e04c3fSmrgtypedef enum SpvImageOperandsMask_ {
30801e04c3fSmrg    SpvImageOperandsMaskNone = 0,
30901e04c3fSmrg    SpvImageOperandsBiasMask = 0x00000001,
31001e04c3fSmrg    SpvImageOperandsLodMask = 0x00000002,
31101e04c3fSmrg    SpvImageOperandsGradMask = 0x00000004,
31201e04c3fSmrg    SpvImageOperandsConstOffsetMask = 0x00000008,
31301e04c3fSmrg    SpvImageOperandsOffsetMask = 0x00000010,
31401e04c3fSmrg    SpvImageOperandsConstOffsetsMask = 0x00000020,
31501e04c3fSmrg    SpvImageOperandsSampleMask = 0x00000040,
31601e04c3fSmrg    SpvImageOperandsMinLodMask = 0x00000080,
31701e04c3fSmrg    SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
31801e04c3fSmrg    SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
31901e04c3fSmrg    SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
32001e04c3fSmrg    SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
32101e04c3fSmrg} SpvImageOperandsMask;
32201e04c3fSmrg
32301e04c3fSmrgtypedef enum SpvFPFastMathModeShift_ {
32401e04c3fSmrg    SpvFPFastMathModeNotNaNShift = 0,
32501e04c3fSmrg    SpvFPFastMathModeNotInfShift = 1,
32601e04c3fSmrg    SpvFPFastMathModeNSZShift = 2,
32701e04c3fSmrg    SpvFPFastMathModeAllowRecipShift = 3,
32801e04c3fSmrg    SpvFPFastMathModeFastShift = 4,
32901e04c3fSmrg    SpvFPFastMathModeMax = 0x7fffffff,
33001e04c3fSmrg} SpvFPFastMathModeShift;
33101e04c3fSmrg
33201e04c3fSmrgtypedef enum SpvFPFastMathModeMask_ {
33301e04c3fSmrg    SpvFPFastMathModeMaskNone = 0,
33401e04c3fSmrg    SpvFPFastMathModeNotNaNMask = 0x00000001,
33501e04c3fSmrg    SpvFPFastMathModeNotInfMask = 0x00000002,
33601e04c3fSmrg    SpvFPFastMathModeNSZMask = 0x00000004,
33701e04c3fSmrg    SpvFPFastMathModeAllowRecipMask = 0x00000008,
33801e04c3fSmrg    SpvFPFastMathModeFastMask = 0x00000010,
33901e04c3fSmrg} SpvFPFastMathModeMask;
34001e04c3fSmrg
34101e04c3fSmrgtypedef enum SpvFPRoundingMode_ {
34201e04c3fSmrg    SpvFPRoundingModeRTE = 0,
34301e04c3fSmrg    SpvFPRoundingModeRTZ = 1,
34401e04c3fSmrg    SpvFPRoundingModeRTP = 2,
34501e04c3fSmrg    SpvFPRoundingModeRTN = 3,
34601e04c3fSmrg    SpvFPRoundingModeMax = 0x7fffffff,
34701e04c3fSmrg} SpvFPRoundingMode;
34801e04c3fSmrg
34901e04c3fSmrgtypedef enum SpvLinkageType_ {
35001e04c3fSmrg    SpvLinkageTypeExport = 0,
35101e04c3fSmrg    SpvLinkageTypeImport = 1,
35201e04c3fSmrg    SpvLinkageTypeMax = 0x7fffffff,
35301e04c3fSmrg} SpvLinkageType;
35401e04c3fSmrg
35501e04c3fSmrgtypedef enum SpvAccessQualifier_ {
35601e04c3fSmrg    SpvAccessQualifierReadOnly = 0,
35701e04c3fSmrg    SpvAccessQualifierWriteOnly = 1,
35801e04c3fSmrg    SpvAccessQualifierReadWrite = 2,
35901e04c3fSmrg    SpvAccessQualifierMax = 0x7fffffff,
36001e04c3fSmrg} SpvAccessQualifier;
36101e04c3fSmrg
36201e04c3fSmrgtypedef enum SpvFunctionParameterAttribute_ {
36301e04c3fSmrg    SpvFunctionParameterAttributeZext = 0,
36401e04c3fSmrg    SpvFunctionParameterAttributeSext = 1,
36501e04c3fSmrg    SpvFunctionParameterAttributeByVal = 2,
36601e04c3fSmrg    SpvFunctionParameterAttributeSret = 3,
36701e04c3fSmrg    SpvFunctionParameterAttributeNoAlias = 4,
36801e04c3fSmrg    SpvFunctionParameterAttributeNoCapture = 5,
36901e04c3fSmrg    SpvFunctionParameterAttributeNoWrite = 6,
37001e04c3fSmrg    SpvFunctionParameterAttributeNoReadWrite = 7,
37101e04c3fSmrg    SpvFunctionParameterAttributeMax = 0x7fffffff,
37201e04c3fSmrg} SpvFunctionParameterAttribute;
37301e04c3fSmrg
37401e04c3fSmrgtypedef enum SpvDecoration_ {
37501e04c3fSmrg    SpvDecorationRelaxedPrecision = 0,
37601e04c3fSmrg    SpvDecorationSpecId = 1,
37701e04c3fSmrg    SpvDecorationBlock = 2,
37801e04c3fSmrg    SpvDecorationBufferBlock = 3,
37901e04c3fSmrg    SpvDecorationRowMajor = 4,
38001e04c3fSmrg    SpvDecorationColMajor = 5,
38101e04c3fSmrg    SpvDecorationArrayStride = 6,
38201e04c3fSmrg    SpvDecorationMatrixStride = 7,
38301e04c3fSmrg    SpvDecorationGLSLShared = 8,
38401e04c3fSmrg    SpvDecorationGLSLPacked = 9,
38501e04c3fSmrg    SpvDecorationCPacked = 10,
38601e04c3fSmrg    SpvDecorationBuiltIn = 11,
38701e04c3fSmrg    SpvDecorationNoPerspective = 13,
38801e04c3fSmrg    SpvDecorationFlat = 14,
38901e04c3fSmrg    SpvDecorationPatch = 15,
39001e04c3fSmrg    SpvDecorationCentroid = 16,
39101e04c3fSmrg    SpvDecorationSample = 17,
39201e04c3fSmrg    SpvDecorationInvariant = 18,
39301e04c3fSmrg    SpvDecorationRestrict = 19,
39401e04c3fSmrg    SpvDecorationAliased = 20,
39501e04c3fSmrg    SpvDecorationVolatile = 21,
39601e04c3fSmrg    SpvDecorationConstant = 22,
39701e04c3fSmrg    SpvDecorationCoherent = 23,
39801e04c3fSmrg    SpvDecorationNonWritable = 24,
39901e04c3fSmrg    SpvDecorationNonReadable = 25,
40001e04c3fSmrg    SpvDecorationUniform = 26,
40101e04c3fSmrg    SpvDecorationSaturatedConversion = 28,
40201e04c3fSmrg    SpvDecorationStream = 29,
40301e04c3fSmrg    SpvDecorationLocation = 30,
40401e04c3fSmrg    SpvDecorationComponent = 31,
40501e04c3fSmrg    SpvDecorationIndex = 32,
40601e04c3fSmrg    SpvDecorationBinding = 33,
40701e04c3fSmrg    SpvDecorationDescriptorSet = 34,
40801e04c3fSmrg    SpvDecorationOffset = 35,
40901e04c3fSmrg    SpvDecorationXfbBuffer = 36,
41001e04c3fSmrg    SpvDecorationXfbStride = 37,
41101e04c3fSmrg    SpvDecorationFuncParamAttr = 38,
41201e04c3fSmrg    SpvDecorationFPRoundingMode = 39,
41301e04c3fSmrg    SpvDecorationFPFastMathMode = 40,
41401e04c3fSmrg    SpvDecorationLinkageAttributes = 41,
41501e04c3fSmrg    SpvDecorationNoContraction = 42,
41601e04c3fSmrg    SpvDecorationInputAttachmentIndex = 43,
41701e04c3fSmrg    SpvDecorationAlignment = 44,
41801e04c3fSmrg    SpvDecorationMaxByteOffset = 45,
41901e04c3fSmrg    SpvDecorationAlignmentId = 46,
42001e04c3fSmrg    SpvDecorationMaxByteOffsetId = 47,
42101e04c3fSmrg    SpvDecorationExplicitInterpAMD = 4999,
42201e04c3fSmrg    SpvDecorationOverrideCoverageNV = 5248,
42301e04c3fSmrg    SpvDecorationPassthroughNV = 5250,
42401e04c3fSmrg    SpvDecorationViewportRelativeNV = 5252,
42501e04c3fSmrg    SpvDecorationSecondaryViewportRelativeNV = 5256,
42601e04c3fSmrg    SpvDecorationPerPrimitiveNV = 5271,
42701e04c3fSmrg    SpvDecorationPerViewNV = 5272,
42801e04c3fSmrg    SpvDecorationPerTaskNV = 5273,
42901e04c3fSmrg    SpvDecorationPerVertexNV = 5285,
43001e04c3fSmrg    SpvDecorationNonUniformEXT = 5300,
43101e04c3fSmrg    SpvDecorationHlslCounterBufferGOOGLE = 5634,
43201e04c3fSmrg    SpvDecorationHlslSemanticGOOGLE = 5635,
43301e04c3fSmrg    SpvDecorationMax = 0x7fffffff,
43401e04c3fSmrg} SpvDecoration;
43501e04c3fSmrg
43601e04c3fSmrgtypedef enum SpvBuiltIn_ {
43701e04c3fSmrg    SpvBuiltInPosition = 0,
43801e04c3fSmrg    SpvBuiltInPointSize = 1,
43901e04c3fSmrg    SpvBuiltInClipDistance = 3,
44001e04c3fSmrg    SpvBuiltInCullDistance = 4,
44101e04c3fSmrg    SpvBuiltInVertexId = 5,
44201e04c3fSmrg    SpvBuiltInInstanceId = 6,
44301e04c3fSmrg    SpvBuiltInPrimitiveId = 7,
44401e04c3fSmrg    SpvBuiltInInvocationId = 8,
44501e04c3fSmrg    SpvBuiltInLayer = 9,
44601e04c3fSmrg    SpvBuiltInViewportIndex = 10,
44701e04c3fSmrg    SpvBuiltInTessLevelOuter = 11,
44801e04c3fSmrg    SpvBuiltInTessLevelInner = 12,
44901e04c3fSmrg    SpvBuiltInTessCoord = 13,
45001e04c3fSmrg    SpvBuiltInPatchVertices = 14,
45101e04c3fSmrg    SpvBuiltInFragCoord = 15,
45201e04c3fSmrg    SpvBuiltInPointCoord = 16,
45301e04c3fSmrg    SpvBuiltInFrontFacing = 17,
45401e04c3fSmrg    SpvBuiltInSampleId = 18,
45501e04c3fSmrg    SpvBuiltInSamplePosition = 19,
45601e04c3fSmrg    SpvBuiltInSampleMask = 20,
45701e04c3fSmrg    SpvBuiltInFragDepth = 22,
45801e04c3fSmrg    SpvBuiltInHelperInvocation = 23,
45901e04c3fSmrg    SpvBuiltInNumWorkgroups = 24,
46001e04c3fSmrg    SpvBuiltInWorkgroupSize = 25,
46101e04c3fSmrg    SpvBuiltInWorkgroupId = 26,
46201e04c3fSmrg    SpvBuiltInLocalInvocationId = 27,
46301e04c3fSmrg    SpvBuiltInGlobalInvocationId = 28,
46401e04c3fSmrg    SpvBuiltInLocalInvocationIndex = 29,
46501e04c3fSmrg    SpvBuiltInWorkDim = 30,
46601e04c3fSmrg    SpvBuiltInGlobalSize = 31,
46701e04c3fSmrg    SpvBuiltInEnqueuedWorkgroupSize = 32,
46801e04c3fSmrg    SpvBuiltInGlobalOffset = 33,
46901e04c3fSmrg    SpvBuiltInGlobalLinearId = 34,
47001e04c3fSmrg    SpvBuiltInSubgroupSize = 36,
47101e04c3fSmrg    SpvBuiltInSubgroupMaxSize = 37,
47201e04c3fSmrg    SpvBuiltInNumSubgroups = 38,
47301e04c3fSmrg    SpvBuiltInNumEnqueuedSubgroups = 39,
47401e04c3fSmrg    SpvBuiltInSubgroupId = 40,
47501e04c3fSmrg    SpvBuiltInSubgroupLocalInvocationId = 41,
47601e04c3fSmrg    SpvBuiltInVertexIndex = 42,
47701e04c3fSmrg    SpvBuiltInInstanceIndex = 43,
47801e04c3fSmrg    SpvBuiltInSubgroupEqMask = 4416,
47901e04c3fSmrg    SpvBuiltInSubgroupEqMaskKHR = 4416,
48001e04c3fSmrg    SpvBuiltInSubgroupGeMask = 4417,
48101e04c3fSmrg    SpvBuiltInSubgroupGeMaskKHR = 4417,
48201e04c3fSmrg    SpvBuiltInSubgroupGtMask = 4418,
48301e04c3fSmrg    SpvBuiltInSubgroupGtMaskKHR = 4418,
48401e04c3fSmrg    SpvBuiltInSubgroupLeMask = 4419,
48501e04c3fSmrg    SpvBuiltInSubgroupLeMaskKHR = 4419,
48601e04c3fSmrg    SpvBuiltInSubgroupLtMask = 4420,
48701e04c3fSmrg    SpvBuiltInSubgroupLtMaskKHR = 4420,
48801e04c3fSmrg    SpvBuiltInBaseVertex = 4424,
48901e04c3fSmrg    SpvBuiltInBaseInstance = 4425,
49001e04c3fSmrg    SpvBuiltInDrawIndex = 4426,
49101e04c3fSmrg    SpvBuiltInDeviceIndex = 4438,
49201e04c3fSmrg    SpvBuiltInViewIndex = 4440,
49301e04c3fSmrg    SpvBuiltInBaryCoordNoPerspAMD = 4992,
49401e04c3fSmrg    SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
49501e04c3fSmrg    SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
49601e04c3fSmrg    SpvBuiltInBaryCoordSmoothAMD = 4995,
49701e04c3fSmrg    SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
49801e04c3fSmrg    SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
49901e04c3fSmrg    SpvBuiltInBaryCoordPullModelAMD = 4998,
50001e04c3fSmrg    SpvBuiltInFragStencilRefEXT = 5014,
50101e04c3fSmrg    SpvBuiltInViewportMaskNV = 5253,
50201e04c3fSmrg    SpvBuiltInSecondaryPositionNV = 5257,
50301e04c3fSmrg    SpvBuiltInSecondaryViewportMaskNV = 5258,
50401e04c3fSmrg    SpvBuiltInPositionPerViewNV = 5261,
50501e04c3fSmrg    SpvBuiltInViewportMaskPerViewNV = 5262,
50601e04c3fSmrg    SpvBuiltInFullyCoveredEXT = 5264,
50701e04c3fSmrg    SpvBuiltInTaskCountNV = 5274,
50801e04c3fSmrg    SpvBuiltInPrimitiveCountNV = 5275,
50901e04c3fSmrg    SpvBuiltInPrimitiveIndicesNV = 5276,
51001e04c3fSmrg    SpvBuiltInClipDistancePerViewNV = 5277,
51101e04c3fSmrg    SpvBuiltInCullDistancePerViewNV = 5278,
51201e04c3fSmrg    SpvBuiltInLayerPerViewNV = 5279,
51301e04c3fSmrg    SpvBuiltInMeshViewCountNV = 5280,
51401e04c3fSmrg    SpvBuiltInMeshViewIndicesNV = 5281,
51501e04c3fSmrg    SpvBuiltInBaryCoordNV = 5286,
51601e04c3fSmrg    SpvBuiltInBaryCoordNoPerspNV = 5287,
51701e04c3fSmrg    SpvBuiltInFragmentSizeNV = 5292,
51801e04c3fSmrg    SpvBuiltInInvocationsPerPixelNV = 5293,
51901e04c3fSmrg    SpvBuiltInLaunchIdNVX = 5319,
52001e04c3fSmrg    SpvBuiltInLaunchSizeNVX = 5320,
52101e04c3fSmrg    SpvBuiltInWorldRayOriginNVX = 5321,
52201e04c3fSmrg    SpvBuiltInWorldRayDirectionNVX = 5322,
52301e04c3fSmrg    SpvBuiltInObjectRayOriginNVX = 5323,
52401e04c3fSmrg    SpvBuiltInObjectRayDirectionNVX = 5324,
52501e04c3fSmrg    SpvBuiltInRayTminNVX = 5325,
52601e04c3fSmrg    SpvBuiltInRayTmaxNVX = 5326,
52701e04c3fSmrg    SpvBuiltInInstanceCustomIndexNVX = 5327,
52801e04c3fSmrg    SpvBuiltInObjectToWorldNVX = 5330,
52901e04c3fSmrg    SpvBuiltInWorldToObjectNVX = 5331,
53001e04c3fSmrg    SpvBuiltInHitTNVX = 5332,
53101e04c3fSmrg    SpvBuiltInHitKindNVX = 5333,
53201e04c3fSmrg    SpvBuiltInMax = 0x7fffffff,
53301e04c3fSmrg} SpvBuiltIn;
53401e04c3fSmrg
53501e04c3fSmrgtypedef enum SpvSelectionControlShift_ {
53601e04c3fSmrg    SpvSelectionControlFlattenShift = 0,
53701e04c3fSmrg    SpvSelectionControlDontFlattenShift = 1,
53801e04c3fSmrg    SpvSelectionControlMax = 0x7fffffff,
53901e04c3fSmrg} SpvSelectionControlShift;
54001e04c3fSmrg
54101e04c3fSmrgtypedef enum SpvSelectionControlMask_ {
54201e04c3fSmrg    SpvSelectionControlMaskNone = 0,
54301e04c3fSmrg    SpvSelectionControlFlattenMask = 0x00000001,
54401e04c3fSmrg    SpvSelectionControlDontFlattenMask = 0x00000002,
54501e04c3fSmrg} SpvSelectionControlMask;
54601e04c3fSmrg
54701e04c3fSmrgtypedef enum SpvLoopControlShift_ {
54801e04c3fSmrg    SpvLoopControlUnrollShift = 0,
54901e04c3fSmrg    SpvLoopControlDontUnrollShift = 1,
55001e04c3fSmrg    SpvLoopControlDependencyInfiniteShift = 2,
55101e04c3fSmrg    SpvLoopControlDependencyLengthShift = 3,
55201e04c3fSmrg    SpvLoopControlMax = 0x7fffffff,
55301e04c3fSmrg} SpvLoopControlShift;
55401e04c3fSmrg
55501e04c3fSmrgtypedef enum SpvLoopControlMask_ {
55601e04c3fSmrg    SpvLoopControlMaskNone = 0,
55701e04c3fSmrg    SpvLoopControlUnrollMask = 0x00000001,
55801e04c3fSmrg    SpvLoopControlDontUnrollMask = 0x00000002,
55901e04c3fSmrg    SpvLoopControlDependencyInfiniteMask = 0x00000004,
56001e04c3fSmrg    SpvLoopControlDependencyLengthMask = 0x00000008,
56101e04c3fSmrg} SpvLoopControlMask;
56201e04c3fSmrg
56301e04c3fSmrgtypedef enum SpvFunctionControlShift_ {
56401e04c3fSmrg    SpvFunctionControlInlineShift = 0,
56501e04c3fSmrg    SpvFunctionControlDontInlineShift = 1,
56601e04c3fSmrg    SpvFunctionControlPureShift = 2,
56701e04c3fSmrg    SpvFunctionControlConstShift = 3,
56801e04c3fSmrg    SpvFunctionControlMax = 0x7fffffff,
56901e04c3fSmrg} SpvFunctionControlShift;
57001e04c3fSmrg
57101e04c3fSmrgtypedef enum SpvFunctionControlMask_ {
57201e04c3fSmrg    SpvFunctionControlMaskNone = 0,
57301e04c3fSmrg    SpvFunctionControlInlineMask = 0x00000001,
57401e04c3fSmrg    SpvFunctionControlDontInlineMask = 0x00000002,
57501e04c3fSmrg    SpvFunctionControlPureMask = 0x00000004,
57601e04c3fSmrg    SpvFunctionControlConstMask = 0x00000008,
57701e04c3fSmrg} SpvFunctionControlMask;
57801e04c3fSmrg
57901e04c3fSmrgtypedef enum SpvMemorySemanticsShift_ {
58001e04c3fSmrg    SpvMemorySemanticsAcquireShift = 1,
58101e04c3fSmrg    SpvMemorySemanticsReleaseShift = 2,
58201e04c3fSmrg    SpvMemorySemanticsAcquireReleaseShift = 3,
58301e04c3fSmrg    SpvMemorySemanticsSequentiallyConsistentShift = 4,
58401e04c3fSmrg    SpvMemorySemanticsUniformMemoryShift = 6,
58501e04c3fSmrg    SpvMemorySemanticsSubgroupMemoryShift = 7,
58601e04c3fSmrg    SpvMemorySemanticsWorkgroupMemoryShift = 8,
58701e04c3fSmrg    SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
58801e04c3fSmrg    SpvMemorySemanticsAtomicCounterMemoryShift = 10,
58901e04c3fSmrg    SpvMemorySemanticsImageMemoryShift = 11,
59001e04c3fSmrg    SpvMemorySemanticsOutputMemoryKHRShift = 12,
59101e04c3fSmrg    SpvMemorySemanticsMakeAvailableKHRShift = 13,
59201e04c3fSmrg    SpvMemorySemanticsMakeVisibleKHRShift = 14,
59301e04c3fSmrg    SpvMemorySemanticsMax = 0x7fffffff,
59401e04c3fSmrg} SpvMemorySemanticsShift;
59501e04c3fSmrg
59601e04c3fSmrgtypedef enum SpvMemorySemanticsMask_ {
59701e04c3fSmrg    SpvMemorySemanticsMaskNone = 0,
59801e04c3fSmrg    SpvMemorySemanticsAcquireMask = 0x00000002,
59901e04c3fSmrg    SpvMemorySemanticsReleaseMask = 0x00000004,
60001e04c3fSmrg    SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
60101e04c3fSmrg    SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
60201e04c3fSmrg    SpvMemorySemanticsUniformMemoryMask = 0x00000040,
60301e04c3fSmrg    SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
60401e04c3fSmrg    SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
60501e04c3fSmrg    SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
60601e04c3fSmrg    SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
60701e04c3fSmrg    SpvMemorySemanticsImageMemoryMask = 0x00000800,
60801e04c3fSmrg    SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
60901e04c3fSmrg    SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
61001e04c3fSmrg    SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
61101e04c3fSmrg} SpvMemorySemanticsMask;
61201e04c3fSmrg
61301e04c3fSmrgtypedef enum SpvMemoryAccessShift_ {
61401e04c3fSmrg    SpvMemoryAccessVolatileShift = 0,
61501e04c3fSmrg    SpvMemoryAccessAlignedShift = 1,
61601e04c3fSmrg    SpvMemoryAccessNontemporalShift = 2,
61701e04c3fSmrg    SpvMemoryAccessMakePointerAvailableKHRShift = 3,
61801e04c3fSmrg    SpvMemoryAccessMakePointerVisibleKHRShift = 4,
61901e04c3fSmrg    SpvMemoryAccessNonPrivatePointerKHRShift = 5,
62001e04c3fSmrg    SpvMemoryAccessMax = 0x7fffffff,
62101e04c3fSmrg} SpvMemoryAccessShift;
62201e04c3fSmrg
62301e04c3fSmrgtypedef enum SpvMemoryAccessMask_ {
62401e04c3fSmrg    SpvMemoryAccessMaskNone = 0,
62501e04c3fSmrg    SpvMemoryAccessVolatileMask = 0x00000001,
62601e04c3fSmrg    SpvMemoryAccessAlignedMask = 0x00000002,
62701e04c3fSmrg    SpvMemoryAccessNontemporalMask = 0x00000004,
62801e04c3fSmrg    SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
62901e04c3fSmrg    SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
63001e04c3fSmrg    SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
63101e04c3fSmrg} SpvMemoryAccessMask;
63201e04c3fSmrg
63301e04c3fSmrgtypedef enum SpvScope_ {
63401e04c3fSmrg    SpvScopeCrossDevice = 0,
63501e04c3fSmrg    SpvScopeDevice = 1,
63601e04c3fSmrg    SpvScopeWorkgroup = 2,
63701e04c3fSmrg    SpvScopeSubgroup = 3,
63801e04c3fSmrg    SpvScopeInvocation = 4,
63901e04c3fSmrg    SpvScopeQueueFamilyKHR = 5,
64001e04c3fSmrg    SpvScopeMax = 0x7fffffff,
64101e04c3fSmrg} SpvScope;
64201e04c3fSmrg
64301e04c3fSmrgtypedef enum SpvGroupOperation_ {
64401e04c3fSmrg    SpvGroupOperationReduce = 0,
64501e04c3fSmrg    SpvGroupOperationInclusiveScan = 1,
64601e04c3fSmrg    SpvGroupOperationExclusiveScan = 2,
64701e04c3fSmrg    SpvGroupOperationClusteredReduce = 3,
64801e04c3fSmrg    SpvGroupOperationPartitionedReduceNV = 6,
64901e04c3fSmrg    SpvGroupOperationPartitionedInclusiveScanNV = 7,
65001e04c3fSmrg    SpvGroupOperationPartitionedExclusiveScanNV = 8,
65101e04c3fSmrg    SpvGroupOperationMax = 0x7fffffff,
65201e04c3fSmrg} SpvGroupOperation;
65301e04c3fSmrg
65401e04c3fSmrgtypedef enum SpvKernelEnqueueFlags_ {
65501e04c3fSmrg    SpvKernelEnqueueFlagsNoWait = 0,
65601e04c3fSmrg    SpvKernelEnqueueFlagsWaitKernel = 1,
65701e04c3fSmrg    SpvKernelEnqueueFlagsWaitWorkGroup = 2,
65801e04c3fSmrg    SpvKernelEnqueueFlagsMax = 0x7fffffff,
65901e04c3fSmrg} SpvKernelEnqueueFlags;
66001e04c3fSmrg
66101e04c3fSmrgtypedef enum SpvKernelProfilingInfoShift_ {
66201e04c3fSmrg    SpvKernelProfilingInfoCmdExecTimeShift = 0,
66301e04c3fSmrg    SpvKernelProfilingInfoMax = 0x7fffffff,
66401e04c3fSmrg} SpvKernelProfilingInfoShift;
66501e04c3fSmrg
66601e04c3fSmrgtypedef enum SpvKernelProfilingInfoMask_ {
66701e04c3fSmrg    SpvKernelProfilingInfoMaskNone = 0,
66801e04c3fSmrg    SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
66901e04c3fSmrg} SpvKernelProfilingInfoMask;
67001e04c3fSmrg
67101e04c3fSmrgtypedef enum SpvCapability_ {
67201e04c3fSmrg    SpvCapabilityMatrix = 0,
67301e04c3fSmrg    SpvCapabilityShader = 1,
67401e04c3fSmrg    SpvCapabilityGeometry = 2,
67501e04c3fSmrg    SpvCapabilityTessellation = 3,
67601e04c3fSmrg    SpvCapabilityAddresses = 4,
67701e04c3fSmrg    SpvCapabilityLinkage = 5,
67801e04c3fSmrg    SpvCapabilityKernel = 6,
67901e04c3fSmrg    SpvCapabilityVector16 = 7,
68001e04c3fSmrg    SpvCapabilityFloat16Buffer = 8,
68101e04c3fSmrg    SpvCapabilityFloat16 = 9,
68201e04c3fSmrg    SpvCapabilityFloat64 = 10,
68301e04c3fSmrg    SpvCapabilityInt64 = 11,
68401e04c3fSmrg    SpvCapabilityInt64Atomics = 12,
68501e04c3fSmrg    SpvCapabilityImageBasic = 13,
68601e04c3fSmrg    SpvCapabilityImageReadWrite = 14,
68701e04c3fSmrg    SpvCapabilityImageMipmap = 15,
68801e04c3fSmrg    SpvCapabilityPipes = 17,
68901e04c3fSmrg    SpvCapabilityGroups = 18,
69001e04c3fSmrg    SpvCapabilityDeviceEnqueue = 19,
69101e04c3fSmrg    SpvCapabilityLiteralSampler = 20,
69201e04c3fSmrg    SpvCapabilityAtomicStorage = 21,
69301e04c3fSmrg    SpvCapabilityInt16 = 22,
69401e04c3fSmrg    SpvCapabilityTessellationPointSize = 23,
69501e04c3fSmrg    SpvCapabilityGeometryPointSize = 24,
69601e04c3fSmrg    SpvCapabilityImageGatherExtended = 25,
69701e04c3fSmrg    SpvCapabilityStorageImageMultisample = 27,
69801e04c3fSmrg    SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
69901e04c3fSmrg    SpvCapabilitySampledImageArrayDynamicIndexing = 29,
70001e04c3fSmrg    SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
70101e04c3fSmrg    SpvCapabilityStorageImageArrayDynamicIndexing = 31,
70201e04c3fSmrg    SpvCapabilityClipDistance = 32,
70301e04c3fSmrg    SpvCapabilityCullDistance = 33,
70401e04c3fSmrg    SpvCapabilityImageCubeArray = 34,
70501e04c3fSmrg    SpvCapabilitySampleRateShading = 35,
70601e04c3fSmrg    SpvCapabilityImageRect = 36,
70701e04c3fSmrg    SpvCapabilitySampledRect = 37,
70801e04c3fSmrg    SpvCapabilityGenericPointer = 38,
70901e04c3fSmrg    SpvCapabilityInt8 = 39,
71001e04c3fSmrg    SpvCapabilityInputAttachment = 40,
71101e04c3fSmrg    SpvCapabilitySparseResidency = 41,
71201e04c3fSmrg    SpvCapabilityMinLod = 42,
71301e04c3fSmrg    SpvCapabilitySampled1D = 43,
71401e04c3fSmrg    SpvCapabilityImage1D = 44,
71501e04c3fSmrg    SpvCapabilitySampledCubeArray = 45,
71601e04c3fSmrg    SpvCapabilitySampledBuffer = 46,
71701e04c3fSmrg    SpvCapabilityImageBuffer = 47,
71801e04c3fSmrg    SpvCapabilityImageMSArray = 48,
71901e04c3fSmrg    SpvCapabilityStorageImageExtendedFormats = 49,
72001e04c3fSmrg    SpvCapabilityImageQuery = 50,
72101e04c3fSmrg    SpvCapabilityDerivativeControl = 51,
72201e04c3fSmrg    SpvCapabilityInterpolationFunction = 52,
72301e04c3fSmrg    SpvCapabilityTransformFeedback = 53,
72401e04c3fSmrg    SpvCapabilityGeometryStreams = 54,
72501e04c3fSmrg    SpvCapabilityStorageImageReadWithoutFormat = 55,
72601e04c3fSmrg    SpvCapabilityStorageImageWriteWithoutFormat = 56,
72701e04c3fSmrg    SpvCapabilityMultiViewport = 57,
72801e04c3fSmrg    SpvCapabilitySubgroupDispatch = 58,
72901e04c3fSmrg    SpvCapabilityNamedBarrier = 59,
73001e04c3fSmrg    SpvCapabilityPipeStorage = 60,
73101e04c3fSmrg    SpvCapabilityGroupNonUniform = 61,
73201e04c3fSmrg    SpvCapabilityGroupNonUniformVote = 62,
73301e04c3fSmrg    SpvCapabilityGroupNonUniformArithmetic = 63,
73401e04c3fSmrg    SpvCapabilityGroupNonUniformBallot = 64,
73501e04c3fSmrg    SpvCapabilityGroupNonUniformShuffle = 65,
73601e04c3fSmrg    SpvCapabilityGroupNonUniformShuffleRelative = 66,
73701e04c3fSmrg    SpvCapabilityGroupNonUniformClustered = 67,
73801e04c3fSmrg    SpvCapabilityGroupNonUniformQuad = 68,
73901e04c3fSmrg    SpvCapabilitySubgroupBallotKHR = 4423,
74001e04c3fSmrg    SpvCapabilityDrawParameters = 4427,
74101e04c3fSmrg    SpvCapabilitySubgroupVoteKHR = 4431,
74201e04c3fSmrg    SpvCapabilityStorageBuffer16BitAccess = 4433,
74301e04c3fSmrg    SpvCapabilityStorageUniformBufferBlock16 = 4433,
74401e04c3fSmrg    SpvCapabilityStorageUniform16 = 4434,
74501e04c3fSmrg    SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
74601e04c3fSmrg    SpvCapabilityStoragePushConstant16 = 4435,
74701e04c3fSmrg    SpvCapabilityStorageInputOutput16 = 4436,
74801e04c3fSmrg    SpvCapabilityDeviceGroup = 4437,
74901e04c3fSmrg    SpvCapabilityMultiView = 4439,
75001e04c3fSmrg    SpvCapabilityVariablePointersStorageBuffer = 4441,
75101e04c3fSmrg    SpvCapabilityVariablePointers = 4442,
75201e04c3fSmrg    SpvCapabilityAtomicStorageOps = 4445,
75301e04c3fSmrg    SpvCapabilitySampleMaskPostDepthCoverage = 4447,
75401e04c3fSmrg    SpvCapabilityStorageBuffer8BitAccess = 4448,
75501e04c3fSmrg    SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
75601e04c3fSmrg    SpvCapabilityStoragePushConstant8 = 4450,
75701e04c3fSmrg    SpvCapabilityFloat16ImageAMD = 5008,
75801e04c3fSmrg    SpvCapabilityImageGatherBiasLodAMD = 5009,
75901e04c3fSmrg    SpvCapabilityFragmentMaskAMD = 5010,
76001e04c3fSmrg    SpvCapabilityStencilExportEXT = 5013,
76101e04c3fSmrg    SpvCapabilityImageReadWriteLodAMD = 5015,
76201e04c3fSmrg    SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
76301e04c3fSmrg    SpvCapabilityGeometryShaderPassthroughNV = 5251,
76401e04c3fSmrg    SpvCapabilityShaderViewportIndexLayerEXT = 5254,
76501e04c3fSmrg    SpvCapabilityShaderViewportIndexLayerNV = 5254,
76601e04c3fSmrg    SpvCapabilityShaderViewportMaskNV = 5255,
76701e04c3fSmrg    SpvCapabilityShaderStereoViewNV = 5259,
76801e04c3fSmrg    SpvCapabilityPerViewAttributesNV = 5260,
76901e04c3fSmrg    SpvCapabilityFragmentFullyCoveredEXT = 5265,
77001e04c3fSmrg    SpvCapabilityMeshShadingNV = 5266,
77101e04c3fSmrg    SpvCapabilityImageFootprintNV = 5282,
77201e04c3fSmrg    SpvCapabilityFragmentBarycentricNV = 5284,
77301e04c3fSmrg    SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
77401e04c3fSmrg    SpvCapabilityShadingRateNV = 5291,
77501e04c3fSmrg    SpvCapabilityGroupNonUniformPartitionedNV = 5297,
77601e04c3fSmrg    SpvCapabilityShaderNonUniformEXT = 5301,
77701e04c3fSmrg    SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
77801e04c3fSmrg    SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
77901e04c3fSmrg    SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
78001e04c3fSmrg    SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
78101e04c3fSmrg    SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
78201e04c3fSmrg    SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
78301e04c3fSmrg    SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
78401e04c3fSmrg    SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
78501e04c3fSmrg    SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
78601e04c3fSmrg    SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
78701e04c3fSmrg    SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
78801e04c3fSmrg    SpvCapabilityRaytracingNVX = 5340,
78901e04c3fSmrg    SpvCapabilityVulkanMemoryModelKHR = 5345,
79001e04c3fSmrg    SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
79101e04c3fSmrg    SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
79201e04c3fSmrg    SpvCapabilitySubgroupShuffleINTEL = 5568,
79301e04c3fSmrg    SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
79401e04c3fSmrg    SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
79501e04c3fSmrg    SpvCapabilityMax = 0x7fffffff,
79601e04c3fSmrg} SpvCapability;
79701e04c3fSmrg
79801e04c3fSmrgtypedef enum SpvOp_ {
79901e04c3fSmrg    SpvOpNop = 0,
80001e04c3fSmrg    SpvOpUndef = 1,
80101e04c3fSmrg    SpvOpSourceContinued = 2,
80201e04c3fSmrg    SpvOpSource = 3,
80301e04c3fSmrg    SpvOpSourceExtension = 4,
80401e04c3fSmrg    SpvOpName = 5,
80501e04c3fSmrg    SpvOpMemberName = 6,
80601e04c3fSmrg    SpvOpString = 7,
80701e04c3fSmrg    SpvOpLine = 8,
80801e04c3fSmrg    SpvOpExtension = 10,
80901e04c3fSmrg    SpvOpExtInstImport = 11,
81001e04c3fSmrg    SpvOpExtInst = 12,
81101e04c3fSmrg    SpvOpMemoryModel = 14,
81201e04c3fSmrg    SpvOpEntryPoint = 15,
81301e04c3fSmrg    SpvOpExecutionMode = 16,
81401e04c3fSmrg    SpvOpCapability = 17,
81501e04c3fSmrg    SpvOpTypeVoid = 19,
81601e04c3fSmrg    SpvOpTypeBool = 20,
81701e04c3fSmrg    SpvOpTypeInt = 21,
81801e04c3fSmrg    SpvOpTypeFloat = 22,
81901e04c3fSmrg    SpvOpTypeVector = 23,
82001e04c3fSmrg    SpvOpTypeMatrix = 24,
82101e04c3fSmrg    SpvOpTypeImage = 25,
82201e04c3fSmrg    SpvOpTypeSampler = 26,
82301e04c3fSmrg    SpvOpTypeSampledImage = 27,
82401e04c3fSmrg    SpvOpTypeArray = 28,
82501e04c3fSmrg    SpvOpTypeRuntimeArray = 29,
82601e04c3fSmrg    SpvOpTypeStruct = 30,
82701e04c3fSmrg    SpvOpTypeOpaque = 31,
82801e04c3fSmrg    SpvOpTypePointer = 32,
82901e04c3fSmrg    SpvOpTypeFunction = 33,
83001e04c3fSmrg    SpvOpTypeEvent = 34,
83101e04c3fSmrg    SpvOpTypeDeviceEvent = 35,
83201e04c3fSmrg    SpvOpTypeReserveId = 36,
83301e04c3fSmrg    SpvOpTypeQueue = 37,
83401e04c3fSmrg    SpvOpTypePipe = 38,
83501e04c3fSmrg    SpvOpTypeForwardPointer = 39,
83601e04c3fSmrg    SpvOpConstantTrue = 41,
83701e04c3fSmrg    SpvOpConstantFalse = 42,
83801e04c3fSmrg    SpvOpConstant = 43,
83901e04c3fSmrg    SpvOpConstantComposite = 44,
84001e04c3fSmrg    SpvOpConstantSampler = 45,
84101e04c3fSmrg    SpvOpConstantNull = 46,
84201e04c3fSmrg    SpvOpSpecConstantTrue = 48,
84301e04c3fSmrg    SpvOpSpecConstantFalse = 49,
84401e04c3fSmrg    SpvOpSpecConstant = 50,
84501e04c3fSmrg    SpvOpSpecConstantComposite = 51,
84601e04c3fSmrg    SpvOpSpecConstantOp = 52,
84701e04c3fSmrg    SpvOpFunction = 54,
84801e04c3fSmrg    SpvOpFunctionParameter = 55,
84901e04c3fSmrg    SpvOpFunctionEnd = 56,
85001e04c3fSmrg    SpvOpFunctionCall = 57,
85101e04c3fSmrg    SpvOpVariable = 59,
85201e04c3fSmrg    SpvOpImageTexelPointer = 60,
85301e04c3fSmrg    SpvOpLoad = 61,
85401e04c3fSmrg    SpvOpStore = 62,
85501e04c3fSmrg    SpvOpCopyMemory = 63,
85601e04c3fSmrg    SpvOpCopyMemorySized = 64,
85701e04c3fSmrg    SpvOpAccessChain = 65,
85801e04c3fSmrg    SpvOpInBoundsAccessChain = 66,
85901e04c3fSmrg    SpvOpPtrAccessChain = 67,
86001e04c3fSmrg    SpvOpArrayLength = 68,
86101e04c3fSmrg    SpvOpGenericPtrMemSemantics = 69,
86201e04c3fSmrg    SpvOpInBoundsPtrAccessChain = 70,
86301e04c3fSmrg    SpvOpDecorate = 71,
86401e04c3fSmrg    SpvOpMemberDecorate = 72,
86501e04c3fSmrg    SpvOpDecorationGroup = 73,
86601e04c3fSmrg    SpvOpGroupDecorate = 74,
86701e04c3fSmrg    SpvOpGroupMemberDecorate = 75,
86801e04c3fSmrg    SpvOpVectorExtractDynamic = 77,
86901e04c3fSmrg    SpvOpVectorInsertDynamic = 78,
87001e04c3fSmrg    SpvOpVectorShuffle = 79,
87101e04c3fSmrg    SpvOpCompositeConstruct = 80,
87201e04c3fSmrg    SpvOpCompositeExtract = 81,
87301e04c3fSmrg    SpvOpCompositeInsert = 82,
87401e04c3fSmrg    SpvOpCopyObject = 83,
87501e04c3fSmrg    SpvOpTranspose = 84,
87601e04c3fSmrg    SpvOpSampledImage = 86,
87701e04c3fSmrg    SpvOpImageSampleImplicitLod = 87,
87801e04c3fSmrg    SpvOpImageSampleExplicitLod = 88,
87901e04c3fSmrg    SpvOpImageSampleDrefImplicitLod = 89,
88001e04c3fSmrg    SpvOpImageSampleDrefExplicitLod = 90,
88101e04c3fSmrg    SpvOpImageSampleProjImplicitLod = 91,
88201e04c3fSmrg    SpvOpImageSampleProjExplicitLod = 92,
88301e04c3fSmrg    SpvOpImageSampleProjDrefImplicitLod = 93,
88401e04c3fSmrg    SpvOpImageSampleProjDrefExplicitLod = 94,
88501e04c3fSmrg    SpvOpImageFetch = 95,
88601e04c3fSmrg    SpvOpImageGather = 96,
88701e04c3fSmrg    SpvOpImageDrefGather = 97,
88801e04c3fSmrg    SpvOpImageRead = 98,
88901e04c3fSmrg    SpvOpImageWrite = 99,
89001e04c3fSmrg    SpvOpImage = 100,
89101e04c3fSmrg    SpvOpImageQueryFormat = 101,
89201e04c3fSmrg    SpvOpImageQueryOrder = 102,
89301e04c3fSmrg    SpvOpImageQuerySizeLod = 103,
89401e04c3fSmrg    SpvOpImageQuerySize = 104,
89501e04c3fSmrg    SpvOpImageQueryLod = 105,
89601e04c3fSmrg    SpvOpImageQueryLevels = 106,
89701e04c3fSmrg    SpvOpImageQuerySamples = 107,
89801e04c3fSmrg    SpvOpConvertFToU = 109,
89901e04c3fSmrg    SpvOpConvertFToS = 110,
90001e04c3fSmrg    SpvOpConvertSToF = 111,
90101e04c3fSmrg    SpvOpConvertUToF = 112,
90201e04c3fSmrg    SpvOpUConvert = 113,
90301e04c3fSmrg    SpvOpSConvert = 114,
90401e04c3fSmrg    SpvOpFConvert = 115,
90501e04c3fSmrg    SpvOpQuantizeToF16 = 116,
90601e04c3fSmrg    SpvOpConvertPtrToU = 117,
90701e04c3fSmrg    SpvOpSatConvertSToU = 118,
90801e04c3fSmrg    SpvOpSatConvertUToS = 119,
90901e04c3fSmrg    SpvOpConvertUToPtr = 120,
91001e04c3fSmrg    SpvOpPtrCastToGeneric = 121,
91101e04c3fSmrg    SpvOpGenericCastToPtr = 122,
91201e04c3fSmrg    SpvOpGenericCastToPtrExplicit = 123,
91301e04c3fSmrg    SpvOpBitcast = 124,
91401e04c3fSmrg    SpvOpSNegate = 126,
91501e04c3fSmrg    SpvOpFNegate = 127,
91601e04c3fSmrg    SpvOpIAdd = 128,
91701e04c3fSmrg    SpvOpFAdd = 129,
91801e04c3fSmrg    SpvOpISub = 130,
91901e04c3fSmrg    SpvOpFSub = 131,
92001e04c3fSmrg    SpvOpIMul = 132,
92101e04c3fSmrg    SpvOpFMul = 133,
92201e04c3fSmrg    SpvOpUDiv = 134,
92301e04c3fSmrg    SpvOpSDiv = 135,
92401e04c3fSmrg    SpvOpFDiv = 136,
92501e04c3fSmrg    SpvOpUMod = 137,
92601e04c3fSmrg    SpvOpSRem = 138,
92701e04c3fSmrg    SpvOpSMod = 139,
92801e04c3fSmrg    SpvOpFRem = 140,
92901e04c3fSmrg    SpvOpFMod = 141,
93001e04c3fSmrg    SpvOpVectorTimesScalar = 142,
93101e04c3fSmrg    SpvOpMatrixTimesScalar = 143,
93201e04c3fSmrg    SpvOpVectorTimesMatrix = 144,
93301e04c3fSmrg    SpvOpMatrixTimesVector = 145,
93401e04c3fSmrg    SpvOpMatrixTimesMatrix = 146,
93501e04c3fSmrg    SpvOpOuterProduct = 147,
93601e04c3fSmrg    SpvOpDot = 148,
93701e04c3fSmrg    SpvOpIAddCarry = 149,
93801e04c3fSmrg    SpvOpISubBorrow = 150,
93901e04c3fSmrg    SpvOpUMulExtended = 151,
94001e04c3fSmrg    SpvOpSMulExtended = 152,
94101e04c3fSmrg    SpvOpAny = 154,
94201e04c3fSmrg    SpvOpAll = 155,
94301e04c3fSmrg    SpvOpIsNan = 156,
94401e04c3fSmrg    SpvOpIsInf = 157,
94501e04c3fSmrg    SpvOpIsFinite = 158,
94601e04c3fSmrg    SpvOpIsNormal = 159,
94701e04c3fSmrg    SpvOpSignBitSet = 160,
94801e04c3fSmrg    SpvOpLessOrGreater = 161,
94901e04c3fSmrg    SpvOpOrdered = 162,
95001e04c3fSmrg    SpvOpUnordered = 163,
95101e04c3fSmrg    SpvOpLogicalEqual = 164,
95201e04c3fSmrg    SpvOpLogicalNotEqual = 165,
95301e04c3fSmrg    SpvOpLogicalOr = 166,
95401e04c3fSmrg    SpvOpLogicalAnd = 167,
95501e04c3fSmrg    SpvOpLogicalNot = 168,
95601e04c3fSmrg    SpvOpSelect = 169,
95701e04c3fSmrg    SpvOpIEqual = 170,
95801e04c3fSmrg    SpvOpINotEqual = 171,
95901e04c3fSmrg    SpvOpUGreaterThan = 172,
96001e04c3fSmrg    SpvOpSGreaterThan = 173,
96101e04c3fSmrg    SpvOpUGreaterThanEqual = 174,
96201e04c3fSmrg    SpvOpSGreaterThanEqual = 175,
96301e04c3fSmrg    SpvOpULessThan = 176,
96401e04c3fSmrg    SpvOpSLessThan = 177,
96501e04c3fSmrg    SpvOpULessThanEqual = 178,
96601e04c3fSmrg    SpvOpSLessThanEqual = 179,
96701e04c3fSmrg    SpvOpFOrdEqual = 180,
96801e04c3fSmrg    SpvOpFUnordEqual = 181,
96901e04c3fSmrg    SpvOpFOrdNotEqual = 182,
97001e04c3fSmrg    SpvOpFUnordNotEqual = 183,
97101e04c3fSmrg    SpvOpFOrdLessThan = 184,
97201e04c3fSmrg    SpvOpFUnordLessThan = 185,
97301e04c3fSmrg    SpvOpFOrdGreaterThan = 186,
97401e04c3fSmrg    SpvOpFUnordGreaterThan = 187,
97501e04c3fSmrg    SpvOpFOrdLessThanEqual = 188,
97601e04c3fSmrg    SpvOpFUnordLessThanEqual = 189,
97701e04c3fSmrg    SpvOpFOrdGreaterThanEqual = 190,
97801e04c3fSmrg    SpvOpFUnordGreaterThanEqual = 191,
97901e04c3fSmrg    SpvOpShiftRightLogical = 194,
98001e04c3fSmrg    SpvOpShiftRightArithmetic = 195,
98101e04c3fSmrg    SpvOpShiftLeftLogical = 196,
98201e04c3fSmrg    SpvOpBitwiseOr = 197,
98301e04c3fSmrg    SpvOpBitwiseXor = 198,
98401e04c3fSmrg    SpvOpBitwiseAnd = 199,
98501e04c3fSmrg    SpvOpNot = 200,
98601e04c3fSmrg    SpvOpBitFieldInsert = 201,
98701e04c3fSmrg    SpvOpBitFieldSExtract = 202,
98801e04c3fSmrg    SpvOpBitFieldUExtract = 203,
98901e04c3fSmrg    SpvOpBitReverse = 204,
99001e04c3fSmrg    SpvOpBitCount = 205,
99101e04c3fSmrg    SpvOpDPdx = 207,
99201e04c3fSmrg    SpvOpDPdy = 208,
99301e04c3fSmrg    SpvOpFwidth = 209,
99401e04c3fSmrg    SpvOpDPdxFine = 210,
99501e04c3fSmrg    SpvOpDPdyFine = 211,
99601e04c3fSmrg    SpvOpFwidthFine = 212,
99701e04c3fSmrg    SpvOpDPdxCoarse = 213,
99801e04c3fSmrg    SpvOpDPdyCoarse = 214,
99901e04c3fSmrg    SpvOpFwidthCoarse = 215,
100001e04c3fSmrg    SpvOpEmitVertex = 218,
100101e04c3fSmrg    SpvOpEndPrimitive = 219,
100201e04c3fSmrg    SpvOpEmitStreamVertex = 220,
100301e04c3fSmrg    SpvOpEndStreamPrimitive = 221,
100401e04c3fSmrg    SpvOpControlBarrier = 224,
100501e04c3fSmrg    SpvOpMemoryBarrier = 225,
100601e04c3fSmrg    SpvOpAtomicLoad = 227,
100701e04c3fSmrg    SpvOpAtomicStore = 228,
100801e04c3fSmrg    SpvOpAtomicExchange = 229,
100901e04c3fSmrg    SpvOpAtomicCompareExchange = 230,
101001e04c3fSmrg    SpvOpAtomicCompareExchangeWeak = 231,
101101e04c3fSmrg    SpvOpAtomicIIncrement = 232,
101201e04c3fSmrg    SpvOpAtomicIDecrement = 233,
101301e04c3fSmrg    SpvOpAtomicIAdd = 234,
101401e04c3fSmrg    SpvOpAtomicISub = 235,
101501e04c3fSmrg    SpvOpAtomicSMin = 236,
101601e04c3fSmrg    SpvOpAtomicUMin = 237,
101701e04c3fSmrg    SpvOpAtomicSMax = 238,
101801e04c3fSmrg    SpvOpAtomicUMax = 239,
101901e04c3fSmrg    SpvOpAtomicAnd = 240,
102001e04c3fSmrg    SpvOpAtomicOr = 241,
102101e04c3fSmrg    SpvOpAtomicXor = 242,
102201e04c3fSmrg    SpvOpPhi = 245,
102301e04c3fSmrg    SpvOpLoopMerge = 246,
102401e04c3fSmrg    SpvOpSelectionMerge = 247,
102501e04c3fSmrg    SpvOpLabel = 248,
102601e04c3fSmrg    SpvOpBranch = 249,
102701e04c3fSmrg    SpvOpBranchConditional = 250,
102801e04c3fSmrg    SpvOpSwitch = 251,
102901e04c3fSmrg    SpvOpKill = 252,
103001e04c3fSmrg    SpvOpReturn = 253,
103101e04c3fSmrg    SpvOpReturnValue = 254,
103201e04c3fSmrg    SpvOpUnreachable = 255,
103301e04c3fSmrg    SpvOpLifetimeStart = 256,
103401e04c3fSmrg    SpvOpLifetimeStop = 257,
103501e04c3fSmrg    SpvOpGroupAsyncCopy = 259,
103601e04c3fSmrg    SpvOpGroupWaitEvents = 260,
103701e04c3fSmrg    SpvOpGroupAll = 261,
103801e04c3fSmrg    SpvOpGroupAny = 262,
103901e04c3fSmrg    SpvOpGroupBroadcast = 263,
104001e04c3fSmrg    SpvOpGroupIAdd = 264,
104101e04c3fSmrg    SpvOpGroupFAdd = 265,
104201e04c3fSmrg    SpvOpGroupFMin = 266,
104301e04c3fSmrg    SpvOpGroupUMin = 267,
104401e04c3fSmrg    SpvOpGroupSMin = 268,
104501e04c3fSmrg    SpvOpGroupFMax = 269,
104601e04c3fSmrg    SpvOpGroupUMax = 270,
104701e04c3fSmrg    SpvOpGroupSMax = 271,
104801e04c3fSmrg    SpvOpReadPipe = 274,
104901e04c3fSmrg    SpvOpWritePipe = 275,
105001e04c3fSmrg    SpvOpReservedReadPipe = 276,
105101e04c3fSmrg    SpvOpReservedWritePipe = 277,
105201e04c3fSmrg    SpvOpReserveReadPipePackets = 278,
105301e04c3fSmrg    SpvOpReserveWritePipePackets = 279,
105401e04c3fSmrg    SpvOpCommitReadPipe = 280,
105501e04c3fSmrg    SpvOpCommitWritePipe = 281,
105601e04c3fSmrg    SpvOpIsValidReserveId = 282,
105701e04c3fSmrg    SpvOpGetNumPipePackets = 283,
105801e04c3fSmrg    SpvOpGetMaxPipePackets = 284,
105901e04c3fSmrg    SpvOpGroupReserveReadPipePackets = 285,
106001e04c3fSmrg    SpvOpGroupReserveWritePipePackets = 286,
106101e04c3fSmrg    SpvOpGroupCommitReadPipe = 287,
106201e04c3fSmrg    SpvOpGroupCommitWritePipe = 288,
106301e04c3fSmrg    SpvOpEnqueueMarker = 291,
106401e04c3fSmrg    SpvOpEnqueueKernel = 292,
106501e04c3fSmrg    SpvOpGetKernelNDrangeSubGroupCount = 293,
106601e04c3fSmrg    SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
106701e04c3fSmrg    SpvOpGetKernelWorkGroupSize = 295,
106801e04c3fSmrg    SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
106901e04c3fSmrg    SpvOpRetainEvent = 297,
107001e04c3fSmrg    SpvOpReleaseEvent = 298,
107101e04c3fSmrg    SpvOpCreateUserEvent = 299,
107201e04c3fSmrg    SpvOpIsValidEvent = 300,
107301e04c3fSmrg    SpvOpSetUserEventStatus = 301,
107401e04c3fSmrg    SpvOpCaptureEventProfilingInfo = 302,
107501e04c3fSmrg    SpvOpGetDefaultQueue = 303,
107601e04c3fSmrg    SpvOpBuildNDRange = 304,
107701e04c3fSmrg    SpvOpImageSparseSampleImplicitLod = 305,
107801e04c3fSmrg    SpvOpImageSparseSampleExplicitLod = 306,
107901e04c3fSmrg    SpvOpImageSparseSampleDrefImplicitLod = 307,
108001e04c3fSmrg    SpvOpImageSparseSampleDrefExplicitLod = 308,
108101e04c3fSmrg    SpvOpImageSparseSampleProjImplicitLod = 309,
108201e04c3fSmrg    SpvOpImageSparseSampleProjExplicitLod = 310,
108301e04c3fSmrg    SpvOpImageSparseSampleProjDrefImplicitLod = 311,
108401e04c3fSmrg    SpvOpImageSparseSampleProjDrefExplicitLod = 312,
108501e04c3fSmrg    SpvOpImageSparseFetch = 313,
108601e04c3fSmrg    SpvOpImageSparseGather = 314,
108701e04c3fSmrg    SpvOpImageSparseDrefGather = 315,
108801e04c3fSmrg    SpvOpImageSparseTexelsResident = 316,
108901e04c3fSmrg    SpvOpNoLine = 317,
109001e04c3fSmrg    SpvOpAtomicFlagTestAndSet = 318,
109101e04c3fSmrg    SpvOpAtomicFlagClear = 319,
109201e04c3fSmrg    SpvOpImageSparseRead = 320,
109301e04c3fSmrg    SpvOpSizeOf = 321,
109401e04c3fSmrg    SpvOpTypePipeStorage = 322,
109501e04c3fSmrg    SpvOpConstantPipeStorage = 323,
109601e04c3fSmrg    SpvOpCreatePipeFromPipeStorage = 324,
109701e04c3fSmrg    SpvOpGetKernelLocalSizeForSubgroupCount = 325,
109801e04c3fSmrg    SpvOpGetKernelMaxNumSubgroups = 326,
109901e04c3fSmrg    SpvOpTypeNamedBarrier = 327,
110001e04c3fSmrg    SpvOpNamedBarrierInitialize = 328,
110101e04c3fSmrg    SpvOpMemoryNamedBarrier = 329,
110201e04c3fSmrg    SpvOpModuleProcessed = 330,
110301e04c3fSmrg    SpvOpExecutionModeId = 331,
110401e04c3fSmrg    SpvOpDecorateId = 332,
110501e04c3fSmrg    SpvOpGroupNonUniformElect = 333,
110601e04c3fSmrg    SpvOpGroupNonUniformAll = 334,
110701e04c3fSmrg    SpvOpGroupNonUniformAny = 335,
110801e04c3fSmrg    SpvOpGroupNonUniformAllEqual = 336,
110901e04c3fSmrg    SpvOpGroupNonUniformBroadcast = 337,
111001e04c3fSmrg    SpvOpGroupNonUniformBroadcastFirst = 338,
111101e04c3fSmrg    SpvOpGroupNonUniformBallot = 339,
111201e04c3fSmrg    SpvOpGroupNonUniformInverseBallot = 340,
111301e04c3fSmrg    SpvOpGroupNonUniformBallotBitExtract = 341,
111401e04c3fSmrg    SpvOpGroupNonUniformBallotBitCount = 342,
111501e04c3fSmrg    SpvOpGroupNonUniformBallotFindLSB = 343,
111601e04c3fSmrg    SpvOpGroupNonUniformBallotFindMSB = 344,
111701e04c3fSmrg    SpvOpGroupNonUniformShuffle = 345,
111801e04c3fSmrg    SpvOpGroupNonUniformShuffleXor = 346,
111901e04c3fSmrg    SpvOpGroupNonUniformShuffleUp = 347,
112001e04c3fSmrg    SpvOpGroupNonUniformShuffleDown = 348,
112101e04c3fSmrg    SpvOpGroupNonUniformIAdd = 349,
112201e04c3fSmrg    SpvOpGroupNonUniformFAdd = 350,
112301e04c3fSmrg    SpvOpGroupNonUniformIMul = 351,
112401e04c3fSmrg    SpvOpGroupNonUniformFMul = 352,
112501e04c3fSmrg    SpvOpGroupNonUniformSMin = 353,
112601e04c3fSmrg    SpvOpGroupNonUniformUMin = 354,
112701e04c3fSmrg    SpvOpGroupNonUniformFMin = 355,
112801e04c3fSmrg    SpvOpGroupNonUniformSMax = 356,
112901e04c3fSmrg    SpvOpGroupNonUniformUMax = 357,
113001e04c3fSmrg    SpvOpGroupNonUniformFMax = 358,
113101e04c3fSmrg    SpvOpGroupNonUniformBitwiseAnd = 359,
113201e04c3fSmrg    SpvOpGroupNonUniformBitwiseOr = 360,
113301e04c3fSmrg    SpvOpGroupNonUniformBitwiseXor = 361,
113401e04c3fSmrg    SpvOpGroupNonUniformLogicalAnd = 362,
113501e04c3fSmrg    SpvOpGroupNonUniformLogicalOr = 363,
113601e04c3fSmrg    SpvOpGroupNonUniformLogicalXor = 364,
113701e04c3fSmrg    SpvOpGroupNonUniformQuadBroadcast = 365,
113801e04c3fSmrg    SpvOpGroupNonUniformQuadSwap = 366,
113901e04c3fSmrg    SpvOpSubgroupBallotKHR = 4421,
114001e04c3fSmrg    SpvOpSubgroupFirstInvocationKHR = 4422,
114101e04c3fSmrg    SpvOpSubgroupAllKHR = 4428,
114201e04c3fSmrg    SpvOpSubgroupAnyKHR = 4429,
114301e04c3fSmrg    SpvOpSubgroupAllEqualKHR = 4430,
114401e04c3fSmrg    SpvOpSubgroupReadInvocationKHR = 4432,
114501e04c3fSmrg    SpvOpGroupIAddNonUniformAMD = 5000,
114601e04c3fSmrg    SpvOpGroupFAddNonUniformAMD = 5001,
114701e04c3fSmrg    SpvOpGroupFMinNonUniformAMD = 5002,
114801e04c3fSmrg    SpvOpGroupUMinNonUniformAMD = 5003,
114901e04c3fSmrg    SpvOpGroupSMinNonUniformAMD = 5004,
115001e04c3fSmrg    SpvOpGroupFMaxNonUniformAMD = 5005,
115101e04c3fSmrg    SpvOpGroupUMaxNonUniformAMD = 5006,
115201e04c3fSmrg    SpvOpGroupSMaxNonUniformAMD = 5007,
115301e04c3fSmrg    SpvOpFragmentMaskFetchAMD = 5011,
115401e04c3fSmrg    SpvOpFragmentFetchAMD = 5012,
115501e04c3fSmrg    SpvOpImageSampleFootprintNV = 5283,
115601e04c3fSmrg    SpvOpGroupNonUniformPartitionNV = 5296,
115701e04c3fSmrg    SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
115801e04c3fSmrg    SpvOpReportIntersectionNVX = 5334,
115901e04c3fSmrg    SpvOpIgnoreIntersectionNVX = 5335,
116001e04c3fSmrg    SpvOpTerminateRayNVX = 5336,
116101e04c3fSmrg    SpvOpTraceNVX = 5337,
116201e04c3fSmrg    SpvOpTypeAccelerationStructureNVX = 5341,
116301e04c3fSmrg    SpvOpSubgroupShuffleINTEL = 5571,
116401e04c3fSmrg    SpvOpSubgroupShuffleDownINTEL = 5572,
116501e04c3fSmrg    SpvOpSubgroupShuffleUpINTEL = 5573,
116601e04c3fSmrg    SpvOpSubgroupShuffleXorINTEL = 5574,
116701e04c3fSmrg    SpvOpSubgroupBlockReadINTEL = 5575,
116801e04c3fSmrg    SpvOpSubgroupBlockWriteINTEL = 5576,
116901e04c3fSmrg    SpvOpSubgroupImageBlockReadINTEL = 5577,
117001e04c3fSmrg    SpvOpSubgroupImageBlockWriteINTEL = 5578,
117101e04c3fSmrg    SpvOpDecorateStringGOOGLE = 5632,
117201e04c3fSmrg    SpvOpMemberDecorateStringGOOGLE = 5633,
117301e04c3fSmrg    SpvOpMax = 0x7fffffff,
117401e04c3fSmrg} SpvOp;
117501e04c3fSmrg
117601e04c3fSmrg#endif  // #ifndef spirv_H
117701e04c3fSmrg
1178