1b8e80941Smrg/*
2b8e80941Smrg** Copyright (c) 2014-2019 The Khronos Group Inc.
3b8e80941Smrg**
4b8e80941Smrg** Permission is hereby granted, free of charge, to any person obtaining a copy
5b8e80941Smrg** of this software and/or associated documentation files (the "Materials"),
6b8e80941Smrg** to deal in the Materials without restriction, including without limitation
7b8e80941Smrg** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8b8e80941Smrg** and/or sell copies of the Materials, and to permit persons to whom the
9b8e80941Smrg** Materials are furnished to do so, subject to the following conditions:
10b8e80941Smrg**
11b8e80941Smrg** The above copyright notice and this permission notice shall be included in
12b8e80941Smrg** all copies or substantial portions of the Materials.
13b8e80941Smrg**
14b8e80941Smrg** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15b8e80941Smrg** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16b8e80941Smrg** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17b8e80941Smrg**
18b8e80941Smrg** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19b8e80941Smrg** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20b8e80941Smrg** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21b8e80941Smrg** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22b8e80941Smrg** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23b8e80941Smrg** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24b8e80941Smrg** IN THE MATERIALS.
25b8e80941Smrg*/
26b8e80941Smrg
27b8e80941Smrg/*
28b8e80941Smrg** This header is automatically generated by the same tool that creates
29b8e80941Smrg** the Binary Section of the SPIR-V specification.
30b8e80941Smrg*/
31b8e80941Smrg
32b8e80941Smrg/*
33b8e80941Smrg** Enumeration tokens for SPIR-V, in various styles:
34b8e80941Smrg**   C, C++, C++11, JSON, Lua, Python, C#, D
35b8e80941Smrg**
36b8e80941Smrg** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
37b8e80941Smrg** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
38b8e80941Smrg** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
39b8e80941Smrg** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
40b8e80941Smrg** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
41b8e80941Smrg** - C# will use enum classes in the Specification class located in the "Spv" namespace,
42b8e80941Smrg**     e.g.: Spv.Specification.SourceLanguage.GLSL
43b8e80941Smrg** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
44b8e80941Smrg**
45b8e80941Smrg** Some tokens act like mask values, which can be OR'd together,
46b8e80941Smrg** while others are mutually exclusive.  The mask-like ones have
47b8e80941Smrg** "Mask" in their name, and a parallel enum that has the shift
48b8e80941Smrg** amount (1 << x) for each corresponding enumerant.
49b8e80941Smrg*/
50b8e80941Smrg
51b8e80941Smrg#ifndef spirv_H
52b8e80941Smrg#define spirv_H
53b8e80941Smrg
54b8e80941Smrgtypedef unsigned int SpvId;
55b8e80941Smrg
56b8e80941Smrg#define SPV_VERSION 0x10300
57b8e80941Smrg#define SPV_REVISION 6
58b8e80941Smrg
59b8e80941Smrgstatic const unsigned int SpvMagicNumber = 0x07230203;
60b8e80941Smrgstatic const unsigned int SpvVersion = 0x00010300;
61b8e80941Smrgstatic const unsigned int SpvRevision = 6;
62b8e80941Smrgstatic const unsigned int SpvOpCodeMask = 0xffff;
63b8e80941Smrgstatic const unsigned int SpvWordCountShift = 16;
64b8e80941Smrg
65b8e80941Smrgtypedef enum SpvSourceLanguage_ {
66b8e80941Smrg    SpvSourceLanguageUnknown = 0,
67b8e80941Smrg    SpvSourceLanguageESSL = 1,
68b8e80941Smrg    SpvSourceLanguageGLSL = 2,
69b8e80941Smrg    SpvSourceLanguageOpenCL_C = 3,
70b8e80941Smrg    SpvSourceLanguageOpenCL_CPP = 4,
71b8e80941Smrg    SpvSourceLanguageHLSL = 5,
72b8e80941Smrg    SpvSourceLanguageMax = 0x7fffffff,
73b8e80941Smrg} SpvSourceLanguage;
74b8e80941Smrg
75b8e80941Smrgtypedef enum SpvExecutionModel_ {
76b8e80941Smrg    SpvExecutionModelVertex = 0,
77b8e80941Smrg    SpvExecutionModelTessellationControl = 1,
78b8e80941Smrg    SpvExecutionModelTessellationEvaluation = 2,
79b8e80941Smrg    SpvExecutionModelGeometry = 3,
80b8e80941Smrg    SpvExecutionModelFragment = 4,
81b8e80941Smrg    SpvExecutionModelGLCompute = 5,
82b8e80941Smrg    SpvExecutionModelKernel = 6,
83b8e80941Smrg    SpvExecutionModelTaskNV = 5267,
84b8e80941Smrg    SpvExecutionModelMeshNV = 5268,
85b8e80941Smrg    SpvExecutionModelRayGenerationNV = 5313,
86b8e80941Smrg    SpvExecutionModelIntersectionNV = 5314,
87b8e80941Smrg    SpvExecutionModelAnyHitNV = 5315,
88b8e80941Smrg    SpvExecutionModelClosestHitNV = 5316,
89b8e80941Smrg    SpvExecutionModelMissNV = 5317,
90b8e80941Smrg    SpvExecutionModelCallableNV = 5318,
91b8e80941Smrg    SpvExecutionModelMax = 0x7fffffff,
92b8e80941Smrg} SpvExecutionModel;
93b8e80941Smrg
94b8e80941Smrgtypedef enum SpvAddressingModel_ {
95b8e80941Smrg    SpvAddressingModelLogical = 0,
96b8e80941Smrg    SpvAddressingModelPhysical32 = 1,
97b8e80941Smrg    SpvAddressingModelPhysical64 = 2,
98b8e80941Smrg    SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
99b8e80941Smrg    SpvAddressingModelMax = 0x7fffffff,
100b8e80941Smrg} SpvAddressingModel;
101b8e80941Smrg
102b8e80941Smrgtypedef enum SpvMemoryModel_ {
103b8e80941Smrg    SpvMemoryModelSimple = 0,
104b8e80941Smrg    SpvMemoryModelGLSL450 = 1,
105b8e80941Smrg    SpvMemoryModelOpenCL = 2,
106b8e80941Smrg    SpvMemoryModelVulkanKHR = 3,
107b8e80941Smrg    SpvMemoryModelMax = 0x7fffffff,
108b8e80941Smrg} SpvMemoryModel;
109b8e80941Smrg
110b8e80941Smrgtypedef enum SpvExecutionMode_ {
111b8e80941Smrg    SpvExecutionModeInvocations = 0,
112b8e80941Smrg    SpvExecutionModeSpacingEqual = 1,
113b8e80941Smrg    SpvExecutionModeSpacingFractionalEven = 2,
114b8e80941Smrg    SpvExecutionModeSpacingFractionalOdd = 3,
115b8e80941Smrg    SpvExecutionModeVertexOrderCw = 4,
116b8e80941Smrg    SpvExecutionModeVertexOrderCcw = 5,
117b8e80941Smrg    SpvExecutionModePixelCenterInteger = 6,
118b8e80941Smrg    SpvExecutionModeOriginUpperLeft = 7,
119b8e80941Smrg    SpvExecutionModeOriginLowerLeft = 8,
120b8e80941Smrg    SpvExecutionModeEarlyFragmentTests = 9,
121b8e80941Smrg    SpvExecutionModePointMode = 10,
122b8e80941Smrg    SpvExecutionModeXfb = 11,
123b8e80941Smrg    SpvExecutionModeDepthReplacing = 12,
124b8e80941Smrg    SpvExecutionModeDepthGreater = 14,
125b8e80941Smrg    SpvExecutionModeDepthLess = 15,
126b8e80941Smrg    SpvExecutionModeDepthUnchanged = 16,
127b8e80941Smrg    SpvExecutionModeLocalSize = 17,
128b8e80941Smrg    SpvExecutionModeLocalSizeHint = 18,
129b8e80941Smrg    SpvExecutionModeInputPoints = 19,
130b8e80941Smrg    SpvExecutionModeInputLines = 20,
131b8e80941Smrg    SpvExecutionModeInputLinesAdjacency = 21,
132b8e80941Smrg    SpvExecutionModeTriangles = 22,
133b8e80941Smrg    SpvExecutionModeInputTrianglesAdjacency = 23,
134b8e80941Smrg    SpvExecutionModeQuads = 24,
135b8e80941Smrg    SpvExecutionModeIsolines = 25,
136b8e80941Smrg    SpvExecutionModeOutputVertices = 26,
137b8e80941Smrg    SpvExecutionModeOutputPoints = 27,
138b8e80941Smrg    SpvExecutionModeOutputLineStrip = 28,
139b8e80941Smrg    SpvExecutionModeOutputTriangleStrip = 29,
140b8e80941Smrg    SpvExecutionModeVecTypeHint = 30,
141b8e80941Smrg    SpvExecutionModeContractionOff = 31,
142b8e80941Smrg    SpvExecutionModeInitializer = 33,
143b8e80941Smrg    SpvExecutionModeFinalizer = 34,
144b8e80941Smrg    SpvExecutionModeSubgroupSize = 35,
145b8e80941Smrg    SpvExecutionModeSubgroupsPerWorkgroup = 36,
146b8e80941Smrg    SpvExecutionModeSubgroupsPerWorkgroupId = 37,
147b8e80941Smrg    SpvExecutionModeLocalSizeId = 38,
148b8e80941Smrg    SpvExecutionModeLocalSizeHintId = 39,
149b8e80941Smrg    SpvExecutionModePostDepthCoverage = 4446,
150b8e80941Smrg    SpvExecutionModeDenormPreserve = 4459,
151b8e80941Smrg    SpvExecutionModeDenormFlushToZero = 4460,
152b8e80941Smrg    SpvExecutionModeSignedZeroInfNanPreserve = 4461,
153b8e80941Smrg    SpvExecutionModeRoundingModeRTE = 4462,
154b8e80941Smrg    SpvExecutionModeRoundingModeRTZ = 4463,
155b8e80941Smrg    SpvExecutionModeStencilRefReplacingEXT = 5027,
156b8e80941Smrg    SpvExecutionModeOutputLinesNV = 5269,
157b8e80941Smrg    SpvExecutionModeOutputPrimitivesNV = 5270,
158b8e80941Smrg    SpvExecutionModeDerivativeGroupQuadsNV = 5289,
159b8e80941Smrg    SpvExecutionModeDerivativeGroupLinearNV = 5290,
160b8e80941Smrg    SpvExecutionModeOutputTrianglesNV = 5298,
161b8e80941Smrg    SpvExecutionModeMax = 0x7fffffff,
162b8e80941Smrg} SpvExecutionMode;
163b8e80941Smrg
164b8e80941Smrgtypedef enum SpvStorageClass_ {
165b8e80941Smrg    SpvStorageClassUniformConstant = 0,
166b8e80941Smrg    SpvStorageClassInput = 1,
167b8e80941Smrg    SpvStorageClassUniform = 2,
168b8e80941Smrg    SpvStorageClassOutput = 3,
169b8e80941Smrg    SpvStorageClassWorkgroup = 4,
170b8e80941Smrg    SpvStorageClassCrossWorkgroup = 5,
171b8e80941Smrg    SpvStorageClassPrivate = 6,
172b8e80941Smrg    SpvStorageClassFunction = 7,
173b8e80941Smrg    SpvStorageClassGeneric = 8,
174b8e80941Smrg    SpvStorageClassPushConstant = 9,
175b8e80941Smrg    SpvStorageClassAtomicCounter = 10,
176b8e80941Smrg    SpvStorageClassImage = 11,
177b8e80941Smrg    SpvStorageClassStorageBuffer = 12,
178b8e80941Smrg    SpvStorageClassCallableDataNV = 5328,
179b8e80941Smrg    SpvStorageClassIncomingCallableDataNV = 5329,
180b8e80941Smrg    SpvStorageClassRayPayloadNV = 5338,
181b8e80941Smrg    SpvStorageClassHitAttributeNV = 5339,
182b8e80941Smrg    SpvStorageClassIncomingRayPayloadNV = 5342,
183b8e80941Smrg    SpvStorageClassShaderRecordBufferNV = 5343,
184b8e80941Smrg    SpvStorageClassPhysicalStorageBufferEXT = 5349,
185b8e80941Smrg    SpvStorageClassMax = 0x7fffffff,
186b8e80941Smrg} SpvStorageClass;
187b8e80941Smrg
188b8e80941Smrgtypedef enum SpvDim_ {
189b8e80941Smrg    SpvDim1D = 0,
190b8e80941Smrg    SpvDim2D = 1,
191b8e80941Smrg    SpvDim3D = 2,
192b8e80941Smrg    SpvDimCube = 3,
193b8e80941Smrg    SpvDimRect = 4,
194b8e80941Smrg    SpvDimBuffer = 5,
195b8e80941Smrg    SpvDimSubpassData = 6,
196b8e80941Smrg    SpvDimMax = 0x7fffffff,
197b8e80941Smrg} SpvDim;
198b8e80941Smrg
199b8e80941Smrgtypedef enum SpvSamplerAddressingMode_ {
200b8e80941Smrg    SpvSamplerAddressingModeNone = 0,
201b8e80941Smrg    SpvSamplerAddressingModeClampToEdge = 1,
202b8e80941Smrg    SpvSamplerAddressingModeClamp = 2,
203b8e80941Smrg    SpvSamplerAddressingModeRepeat = 3,
204b8e80941Smrg    SpvSamplerAddressingModeRepeatMirrored = 4,
205b8e80941Smrg    SpvSamplerAddressingModeMax = 0x7fffffff,
206b8e80941Smrg} SpvSamplerAddressingMode;
207b8e80941Smrg
208b8e80941Smrgtypedef enum SpvSamplerFilterMode_ {
209b8e80941Smrg    SpvSamplerFilterModeNearest = 0,
210b8e80941Smrg    SpvSamplerFilterModeLinear = 1,
211b8e80941Smrg    SpvSamplerFilterModeMax = 0x7fffffff,
212b8e80941Smrg} SpvSamplerFilterMode;
213b8e80941Smrg
214b8e80941Smrgtypedef enum SpvImageFormat_ {
215b8e80941Smrg    SpvImageFormatUnknown = 0,
216b8e80941Smrg    SpvImageFormatRgba32f = 1,
217b8e80941Smrg    SpvImageFormatRgba16f = 2,
218b8e80941Smrg    SpvImageFormatR32f = 3,
219b8e80941Smrg    SpvImageFormatRgba8 = 4,
220b8e80941Smrg    SpvImageFormatRgba8Snorm = 5,
221b8e80941Smrg    SpvImageFormatRg32f = 6,
222b8e80941Smrg    SpvImageFormatRg16f = 7,
223b8e80941Smrg    SpvImageFormatR11fG11fB10f = 8,
224b8e80941Smrg    SpvImageFormatR16f = 9,
225b8e80941Smrg    SpvImageFormatRgba16 = 10,
226b8e80941Smrg    SpvImageFormatRgb10A2 = 11,
227b8e80941Smrg    SpvImageFormatRg16 = 12,
228b8e80941Smrg    SpvImageFormatRg8 = 13,
229b8e80941Smrg    SpvImageFormatR16 = 14,
230b8e80941Smrg    SpvImageFormatR8 = 15,
231b8e80941Smrg    SpvImageFormatRgba16Snorm = 16,
232b8e80941Smrg    SpvImageFormatRg16Snorm = 17,
233b8e80941Smrg    SpvImageFormatRg8Snorm = 18,
234b8e80941Smrg    SpvImageFormatR16Snorm = 19,
235b8e80941Smrg    SpvImageFormatR8Snorm = 20,
236b8e80941Smrg    SpvImageFormatRgba32i = 21,
237b8e80941Smrg    SpvImageFormatRgba16i = 22,
238b8e80941Smrg    SpvImageFormatRgba8i = 23,
239b8e80941Smrg    SpvImageFormatR32i = 24,
240b8e80941Smrg    SpvImageFormatRg32i = 25,
241b8e80941Smrg    SpvImageFormatRg16i = 26,
242b8e80941Smrg    SpvImageFormatRg8i = 27,
243b8e80941Smrg    SpvImageFormatR16i = 28,
244b8e80941Smrg    SpvImageFormatR8i = 29,
245b8e80941Smrg    SpvImageFormatRgba32ui = 30,
246b8e80941Smrg    SpvImageFormatRgba16ui = 31,
247b8e80941Smrg    SpvImageFormatRgba8ui = 32,
248b8e80941Smrg    SpvImageFormatR32ui = 33,
249b8e80941Smrg    SpvImageFormatRgb10a2ui = 34,
250b8e80941Smrg    SpvImageFormatRg32ui = 35,
251b8e80941Smrg    SpvImageFormatRg16ui = 36,
252b8e80941Smrg    SpvImageFormatRg8ui = 37,
253b8e80941Smrg    SpvImageFormatR16ui = 38,
254b8e80941Smrg    SpvImageFormatR8ui = 39,
255b8e80941Smrg    SpvImageFormatMax = 0x7fffffff,
256b8e80941Smrg} SpvImageFormat;
257b8e80941Smrg
258b8e80941Smrgtypedef enum SpvImageChannelOrder_ {
259b8e80941Smrg    SpvImageChannelOrderR = 0,
260b8e80941Smrg    SpvImageChannelOrderA = 1,
261b8e80941Smrg    SpvImageChannelOrderRG = 2,
262b8e80941Smrg    SpvImageChannelOrderRA = 3,
263b8e80941Smrg    SpvImageChannelOrderRGB = 4,
264b8e80941Smrg    SpvImageChannelOrderRGBA = 5,
265b8e80941Smrg    SpvImageChannelOrderBGRA = 6,
266b8e80941Smrg    SpvImageChannelOrderARGB = 7,
267b8e80941Smrg    SpvImageChannelOrderIntensity = 8,
268b8e80941Smrg    SpvImageChannelOrderLuminance = 9,
269b8e80941Smrg    SpvImageChannelOrderRx = 10,
270b8e80941Smrg    SpvImageChannelOrderRGx = 11,
271b8e80941Smrg    SpvImageChannelOrderRGBx = 12,
272b8e80941Smrg    SpvImageChannelOrderDepth = 13,
273b8e80941Smrg    SpvImageChannelOrderDepthStencil = 14,
274b8e80941Smrg    SpvImageChannelOrdersRGB = 15,
275b8e80941Smrg    SpvImageChannelOrdersRGBx = 16,
276b8e80941Smrg    SpvImageChannelOrdersRGBA = 17,
277b8e80941Smrg    SpvImageChannelOrdersBGRA = 18,
278b8e80941Smrg    SpvImageChannelOrderABGR = 19,
279b8e80941Smrg    SpvImageChannelOrderMax = 0x7fffffff,
280b8e80941Smrg} SpvImageChannelOrder;
281b8e80941Smrg
282b8e80941Smrgtypedef enum SpvImageChannelDataType_ {
283b8e80941Smrg    SpvImageChannelDataTypeSnormInt8 = 0,
284b8e80941Smrg    SpvImageChannelDataTypeSnormInt16 = 1,
285b8e80941Smrg    SpvImageChannelDataTypeUnormInt8 = 2,
286b8e80941Smrg    SpvImageChannelDataTypeUnormInt16 = 3,
287b8e80941Smrg    SpvImageChannelDataTypeUnormShort565 = 4,
288b8e80941Smrg    SpvImageChannelDataTypeUnormShort555 = 5,
289b8e80941Smrg    SpvImageChannelDataTypeUnormInt101010 = 6,
290b8e80941Smrg    SpvImageChannelDataTypeSignedInt8 = 7,
291b8e80941Smrg    SpvImageChannelDataTypeSignedInt16 = 8,
292b8e80941Smrg    SpvImageChannelDataTypeSignedInt32 = 9,
293b8e80941Smrg    SpvImageChannelDataTypeUnsignedInt8 = 10,
294b8e80941Smrg    SpvImageChannelDataTypeUnsignedInt16 = 11,
295b8e80941Smrg    SpvImageChannelDataTypeUnsignedInt32 = 12,
296b8e80941Smrg    SpvImageChannelDataTypeHalfFloat = 13,
297b8e80941Smrg    SpvImageChannelDataTypeFloat = 14,
298b8e80941Smrg    SpvImageChannelDataTypeUnormInt24 = 15,
299b8e80941Smrg    SpvImageChannelDataTypeUnormInt101010_2 = 16,
300b8e80941Smrg    SpvImageChannelDataTypeMax = 0x7fffffff,
301b8e80941Smrg} SpvImageChannelDataType;
302b8e80941Smrg
303b8e80941Smrgtypedef enum SpvImageOperandsShift_ {
304b8e80941Smrg    SpvImageOperandsBiasShift = 0,
305b8e80941Smrg    SpvImageOperandsLodShift = 1,
306b8e80941Smrg    SpvImageOperandsGradShift = 2,
307b8e80941Smrg    SpvImageOperandsConstOffsetShift = 3,
308b8e80941Smrg    SpvImageOperandsOffsetShift = 4,
309b8e80941Smrg    SpvImageOperandsConstOffsetsShift = 5,
310b8e80941Smrg    SpvImageOperandsSampleShift = 6,
311b8e80941Smrg    SpvImageOperandsMinLodShift = 7,
312b8e80941Smrg    SpvImageOperandsMakeTexelAvailableKHRShift = 8,
313b8e80941Smrg    SpvImageOperandsMakeTexelVisibleKHRShift = 9,
314b8e80941Smrg    SpvImageOperandsNonPrivateTexelKHRShift = 10,
315b8e80941Smrg    SpvImageOperandsVolatileTexelKHRShift = 11,
316b8e80941Smrg    SpvImageOperandsMax = 0x7fffffff,
317b8e80941Smrg} SpvImageOperandsShift;
318b8e80941Smrg
319b8e80941Smrgtypedef enum SpvImageOperandsMask_ {
320b8e80941Smrg    SpvImageOperandsMaskNone = 0,
321b8e80941Smrg    SpvImageOperandsBiasMask = 0x00000001,
322b8e80941Smrg    SpvImageOperandsLodMask = 0x00000002,
323b8e80941Smrg    SpvImageOperandsGradMask = 0x00000004,
324b8e80941Smrg    SpvImageOperandsConstOffsetMask = 0x00000008,
325b8e80941Smrg    SpvImageOperandsOffsetMask = 0x00000010,
326b8e80941Smrg    SpvImageOperandsConstOffsetsMask = 0x00000020,
327b8e80941Smrg    SpvImageOperandsSampleMask = 0x00000040,
328b8e80941Smrg    SpvImageOperandsMinLodMask = 0x00000080,
329b8e80941Smrg    SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
330b8e80941Smrg    SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
331b8e80941Smrg    SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
332b8e80941Smrg    SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
333b8e80941Smrg} SpvImageOperandsMask;
334b8e80941Smrg
335b8e80941Smrgtypedef enum SpvFPFastMathModeShift_ {
336b8e80941Smrg    SpvFPFastMathModeNotNaNShift = 0,
337b8e80941Smrg    SpvFPFastMathModeNotInfShift = 1,
338b8e80941Smrg    SpvFPFastMathModeNSZShift = 2,
339b8e80941Smrg    SpvFPFastMathModeAllowRecipShift = 3,
340b8e80941Smrg    SpvFPFastMathModeFastShift = 4,
341b8e80941Smrg    SpvFPFastMathModeMax = 0x7fffffff,
342b8e80941Smrg} SpvFPFastMathModeShift;
343b8e80941Smrg
344b8e80941Smrgtypedef enum SpvFPFastMathModeMask_ {
345b8e80941Smrg    SpvFPFastMathModeMaskNone = 0,
346b8e80941Smrg    SpvFPFastMathModeNotNaNMask = 0x00000001,
347b8e80941Smrg    SpvFPFastMathModeNotInfMask = 0x00000002,
348b8e80941Smrg    SpvFPFastMathModeNSZMask = 0x00000004,
349b8e80941Smrg    SpvFPFastMathModeAllowRecipMask = 0x00000008,
350b8e80941Smrg    SpvFPFastMathModeFastMask = 0x00000010,
351b8e80941Smrg} SpvFPFastMathModeMask;
352b8e80941Smrg
353b8e80941Smrgtypedef enum SpvFPRoundingMode_ {
354b8e80941Smrg    SpvFPRoundingModeRTE = 0,
355b8e80941Smrg    SpvFPRoundingModeRTZ = 1,
356b8e80941Smrg    SpvFPRoundingModeRTP = 2,
357b8e80941Smrg    SpvFPRoundingModeRTN = 3,
358b8e80941Smrg    SpvFPRoundingModeMax = 0x7fffffff,
359b8e80941Smrg} SpvFPRoundingMode;
360b8e80941Smrg
361b8e80941Smrgtypedef enum SpvLinkageType_ {
362b8e80941Smrg    SpvLinkageTypeExport = 0,
363b8e80941Smrg    SpvLinkageTypeImport = 1,
364b8e80941Smrg    SpvLinkageTypeMax = 0x7fffffff,
365b8e80941Smrg} SpvLinkageType;
366b8e80941Smrg
367b8e80941Smrgtypedef enum SpvAccessQualifier_ {
368b8e80941Smrg    SpvAccessQualifierReadOnly = 0,
369b8e80941Smrg    SpvAccessQualifierWriteOnly = 1,
370b8e80941Smrg    SpvAccessQualifierReadWrite = 2,
371b8e80941Smrg    SpvAccessQualifierMax = 0x7fffffff,
372b8e80941Smrg} SpvAccessQualifier;
373b8e80941Smrg
374b8e80941Smrgtypedef enum SpvFunctionParameterAttribute_ {
375b8e80941Smrg    SpvFunctionParameterAttributeZext = 0,
376b8e80941Smrg    SpvFunctionParameterAttributeSext = 1,
377b8e80941Smrg    SpvFunctionParameterAttributeByVal = 2,
378b8e80941Smrg    SpvFunctionParameterAttributeSret = 3,
379b8e80941Smrg    SpvFunctionParameterAttributeNoAlias = 4,
380b8e80941Smrg    SpvFunctionParameterAttributeNoCapture = 5,
381b8e80941Smrg    SpvFunctionParameterAttributeNoWrite = 6,
382b8e80941Smrg    SpvFunctionParameterAttributeNoReadWrite = 7,
383b8e80941Smrg    SpvFunctionParameterAttributeMax = 0x7fffffff,
384b8e80941Smrg} SpvFunctionParameterAttribute;
385b8e80941Smrg
386b8e80941Smrgtypedef enum SpvDecoration_ {
387b8e80941Smrg    SpvDecorationRelaxedPrecision = 0,
388b8e80941Smrg    SpvDecorationSpecId = 1,
389b8e80941Smrg    SpvDecorationBlock = 2,
390b8e80941Smrg    SpvDecorationBufferBlock = 3,
391b8e80941Smrg    SpvDecorationRowMajor = 4,
392b8e80941Smrg    SpvDecorationColMajor = 5,
393b8e80941Smrg    SpvDecorationArrayStride = 6,
394b8e80941Smrg    SpvDecorationMatrixStride = 7,
395b8e80941Smrg    SpvDecorationGLSLShared = 8,
396b8e80941Smrg    SpvDecorationGLSLPacked = 9,
397b8e80941Smrg    SpvDecorationCPacked = 10,
398b8e80941Smrg    SpvDecorationBuiltIn = 11,
399b8e80941Smrg    SpvDecorationNoPerspective = 13,
400b8e80941Smrg    SpvDecorationFlat = 14,
401b8e80941Smrg    SpvDecorationPatch = 15,
402b8e80941Smrg    SpvDecorationCentroid = 16,
403b8e80941Smrg    SpvDecorationSample = 17,
404b8e80941Smrg    SpvDecorationInvariant = 18,
405b8e80941Smrg    SpvDecorationRestrict = 19,
406b8e80941Smrg    SpvDecorationAliased = 20,
407b8e80941Smrg    SpvDecorationVolatile = 21,
408b8e80941Smrg    SpvDecorationConstant = 22,
409b8e80941Smrg    SpvDecorationCoherent = 23,
410b8e80941Smrg    SpvDecorationNonWritable = 24,
411b8e80941Smrg    SpvDecorationNonReadable = 25,
412b8e80941Smrg    SpvDecorationUniform = 26,
413b8e80941Smrg    SpvDecorationSaturatedConversion = 28,
414b8e80941Smrg    SpvDecorationStream = 29,
415b8e80941Smrg    SpvDecorationLocation = 30,
416b8e80941Smrg    SpvDecorationComponent = 31,
417b8e80941Smrg    SpvDecorationIndex = 32,
418b8e80941Smrg    SpvDecorationBinding = 33,
419b8e80941Smrg    SpvDecorationDescriptorSet = 34,
420b8e80941Smrg    SpvDecorationOffset = 35,
421b8e80941Smrg    SpvDecorationXfbBuffer = 36,
422b8e80941Smrg    SpvDecorationXfbStride = 37,
423b8e80941Smrg    SpvDecorationFuncParamAttr = 38,
424b8e80941Smrg    SpvDecorationFPRoundingMode = 39,
425b8e80941Smrg    SpvDecorationFPFastMathMode = 40,
426b8e80941Smrg    SpvDecorationLinkageAttributes = 41,
427b8e80941Smrg    SpvDecorationNoContraction = 42,
428b8e80941Smrg    SpvDecorationInputAttachmentIndex = 43,
429b8e80941Smrg    SpvDecorationAlignment = 44,
430b8e80941Smrg    SpvDecorationMaxByteOffset = 45,
431b8e80941Smrg    SpvDecorationAlignmentId = 46,
432b8e80941Smrg    SpvDecorationMaxByteOffsetId = 47,
433b8e80941Smrg    SpvDecorationNoSignedWrap = 4469,
434b8e80941Smrg    SpvDecorationNoUnsignedWrap = 4470,
435b8e80941Smrg    SpvDecorationExplicitInterpAMD = 4999,
436b8e80941Smrg    SpvDecorationOverrideCoverageNV = 5248,
437b8e80941Smrg    SpvDecorationPassthroughNV = 5250,
438b8e80941Smrg    SpvDecorationViewportRelativeNV = 5252,
439b8e80941Smrg    SpvDecorationSecondaryViewportRelativeNV = 5256,
440b8e80941Smrg    SpvDecorationPerPrimitiveNV = 5271,
441b8e80941Smrg    SpvDecorationPerViewNV = 5272,
442b8e80941Smrg    SpvDecorationPerTaskNV = 5273,
443b8e80941Smrg    SpvDecorationPerVertexNV = 5285,
444b8e80941Smrg    SpvDecorationNonUniformEXT = 5300,
445b8e80941Smrg    SpvDecorationRestrictPointerEXT = 5355,
446b8e80941Smrg    SpvDecorationAliasedPointerEXT = 5356,
447b8e80941Smrg    SpvDecorationHlslCounterBufferGOOGLE = 5634,
448b8e80941Smrg    SpvDecorationHlslSemanticGOOGLE = 5635,
449b8e80941Smrg    SpvDecorationMax = 0x7fffffff,
450b8e80941Smrg} SpvDecoration;
451b8e80941Smrg
452b8e80941Smrgtypedef enum SpvBuiltIn_ {
453b8e80941Smrg    SpvBuiltInPosition = 0,
454b8e80941Smrg    SpvBuiltInPointSize = 1,
455b8e80941Smrg    SpvBuiltInClipDistance = 3,
456b8e80941Smrg    SpvBuiltInCullDistance = 4,
457b8e80941Smrg    SpvBuiltInVertexId = 5,
458b8e80941Smrg    SpvBuiltInInstanceId = 6,
459b8e80941Smrg    SpvBuiltInPrimitiveId = 7,
460b8e80941Smrg    SpvBuiltInInvocationId = 8,
461b8e80941Smrg    SpvBuiltInLayer = 9,
462b8e80941Smrg    SpvBuiltInViewportIndex = 10,
463b8e80941Smrg    SpvBuiltInTessLevelOuter = 11,
464b8e80941Smrg    SpvBuiltInTessLevelInner = 12,
465b8e80941Smrg    SpvBuiltInTessCoord = 13,
466b8e80941Smrg    SpvBuiltInPatchVertices = 14,
467b8e80941Smrg    SpvBuiltInFragCoord = 15,
468b8e80941Smrg    SpvBuiltInPointCoord = 16,
469b8e80941Smrg    SpvBuiltInFrontFacing = 17,
470b8e80941Smrg    SpvBuiltInSampleId = 18,
471b8e80941Smrg    SpvBuiltInSamplePosition = 19,
472b8e80941Smrg    SpvBuiltInSampleMask = 20,
473b8e80941Smrg    SpvBuiltInFragDepth = 22,
474b8e80941Smrg    SpvBuiltInHelperInvocation = 23,
475b8e80941Smrg    SpvBuiltInNumWorkgroups = 24,
476b8e80941Smrg    SpvBuiltInWorkgroupSize = 25,
477b8e80941Smrg    SpvBuiltInWorkgroupId = 26,
478b8e80941Smrg    SpvBuiltInLocalInvocationId = 27,
479b8e80941Smrg    SpvBuiltInGlobalInvocationId = 28,
480b8e80941Smrg    SpvBuiltInLocalInvocationIndex = 29,
481b8e80941Smrg    SpvBuiltInWorkDim = 30,
482b8e80941Smrg    SpvBuiltInGlobalSize = 31,
483b8e80941Smrg    SpvBuiltInEnqueuedWorkgroupSize = 32,
484b8e80941Smrg    SpvBuiltInGlobalOffset = 33,
485b8e80941Smrg    SpvBuiltInGlobalLinearId = 34,
486b8e80941Smrg    SpvBuiltInSubgroupSize = 36,
487b8e80941Smrg    SpvBuiltInSubgroupMaxSize = 37,
488b8e80941Smrg    SpvBuiltInNumSubgroups = 38,
489b8e80941Smrg    SpvBuiltInNumEnqueuedSubgroups = 39,
490b8e80941Smrg    SpvBuiltInSubgroupId = 40,
491b8e80941Smrg    SpvBuiltInSubgroupLocalInvocationId = 41,
492b8e80941Smrg    SpvBuiltInVertexIndex = 42,
493b8e80941Smrg    SpvBuiltInInstanceIndex = 43,
494b8e80941Smrg    SpvBuiltInSubgroupEqMask = 4416,
495b8e80941Smrg    SpvBuiltInSubgroupEqMaskKHR = 4416,
496b8e80941Smrg    SpvBuiltInSubgroupGeMask = 4417,
497b8e80941Smrg    SpvBuiltInSubgroupGeMaskKHR = 4417,
498b8e80941Smrg    SpvBuiltInSubgroupGtMask = 4418,
499b8e80941Smrg    SpvBuiltInSubgroupGtMaskKHR = 4418,
500b8e80941Smrg    SpvBuiltInSubgroupLeMask = 4419,
501b8e80941Smrg    SpvBuiltInSubgroupLeMaskKHR = 4419,
502b8e80941Smrg    SpvBuiltInSubgroupLtMask = 4420,
503b8e80941Smrg    SpvBuiltInSubgroupLtMaskKHR = 4420,
504b8e80941Smrg    SpvBuiltInBaseVertex = 4424,
505b8e80941Smrg    SpvBuiltInBaseInstance = 4425,
506b8e80941Smrg    SpvBuiltInDrawIndex = 4426,
507b8e80941Smrg    SpvBuiltInDeviceIndex = 4438,
508b8e80941Smrg    SpvBuiltInViewIndex = 4440,
509b8e80941Smrg    SpvBuiltInBaryCoordNoPerspAMD = 4992,
510b8e80941Smrg    SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
511b8e80941Smrg    SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
512b8e80941Smrg    SpvBuiltInBaryCoordSmoothAMD = 4995,
513b8e80941Smrg    SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
514b8e80941Smrg    SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
515b8e80941Smrg    SpvBuiltInBaryCoordPullModelAMD = 4998,
516b8e80941Smrg    SpvBuiltInFragStencilRefEXT = 5014,
517b8e80941Smrg    SpvBuiltInViewportMaskNV = 5253,
518b8e80941Smrg    SpvBuiltInSecondaryPositionNV = 5257,
519b8e80941Smrg    SpvBuiltInSecondaryViewportMaskNV = 5258,
520b8e80941Smrg    SpvBuiltInPositionPerViewNV = 5261,
521b8e80941Smrg    SpvBuiltInViewportMaskPerViewNV = 5262,
522b8e80941Smrg    SpvBuiltInFullyCoveredEXT = 5264,
523b8e80941Smrg    SpvBuiltInTaskCountNV = 5274,
524b8e80941Smrg    SpvBuiltInPrimitiveCountNV = 5275,
525b8e80941Smrg    SpvBuiltInPrimitiveIndicesNV = 5276,
526b8e80941Smrg    SpvBuiltInClipDistancePerViewNV = 5277,
527b8e80941Smrg    SpvBuiltInCullDistancePerViewNV = 5278,
528b8e80941Smrg    SpvBuiltInLayerPerViewNV = 5279,
529b8e80941Smrg    SpvBuiltInMeshViewCountNV = 5280,
530b8e80941Smrg    SpvBuiltInMeshViewIndicesNV = 5281,
531b8e80941Smrg    SpvBuiltInBaryCoordNV = 5286,
532b8e80941Smrg    SpvBuiltInBaryCoordNoPerspNV = 5287,
533b8e80941Smrg    SpvBuiltInFragSizeEXT = 5292,
534b8e80941Smrg    SpvBuiltInFragmentSizeNV = 5292,
535b8e80941Smrg    SpvBuiltInFragInvocationCountEXT = 5293,
536b8e80941Smrg    SpvBuiltInInvocationsPerPixelNV = 5293,
537b8e80941Smrg    SpvBuiltInLaunchIdNV = 5319,
538b8e80941Smrg    SpvBuiltInLaunchSizeNV = 5320,
539b8e80941Smrg    SpvBuiltInWorldRayOriginNV = 5321,
540b8e80941Smrg    SpvBuiltInWorldRayDirectionNV = 5322,
541b8e80941Smrg    SpvBuiltInObjectRayOriginNV = 5323,
542b8e80941Smrg    SpvBuiltInObjectRayDirectionNV = 5324,
543b8e80941Smrg    SpvBuiltInRayTminNV = 5325,
544b8e80941Smrg    SpvBuiltInRayTmaxNV = 5326,
545b8e80941Smrg    SpvBuiltInInstanceCustomIndexNV = 5327,
546b8e80941Smrg    SpvBuiltInObjectToWorldNV = 5330,
547b8e80941Smrg    SpvBuiltInWorldToObjectNV = 5331,
548b8e80941Smrg    SpvBuiltInHitTNV = 5332,
549b8e80941Smrg    SpvBuiltInHitKindNV = 5333,
550b8e80941Smrg    SpvBuiltInIncomingRayFlagsNV = 5351,
551b8e80941Smrg    SpvBuiltInMax = 0x7fffffff,
552b8e80941Smrg} SpvBuiltIn;
553b8e80941Smrg
554b8e80941Smrgtypedef enum SpvSelectionControlShift_ {
555b8e80941Smrg    SpvSelectionControlFlattenShift = 0,
556b8e80941Smrg    SpvSelectionControlDontFlattenShift = 1,
557b8e80941Smrg    SpvSelectionControlMax = 0x7fffffff,
558b8e80941Smrg} SpvSelectionControlShift;
559b8e80941Smrg
560b8e80941Smrgtypedef enum SpvSelectionControlMask_ {
561b8e80941Smrg    SpvSelectionControlMaskNone = 0,
562b8e80941Smrg    SpvSelectionControlFlattenMask = 0x00000001,
563b8e80941Smrg    SpvSelectionControlDontFlattenMask = 0x00000002,
564b8e80941Smrg} SpvSelectionControlMask;
565b8e80941Smrg
566b8e80941Smrgtypedef enum SpvLoopControlShift_ {
567b8e80941Smrg    SpvLoopControlUnrollShift = 0,
568b8e80941Smrg    SpvLoopControlDontUnrollShift = 1,
569b8e80941Smrg    SpvLoopControlDependencyInfiniteShift = 2,
570b8e80941Smrg    SpvLoopControlDependencyLengthShift = 3,
571b8e80941Smrg    SpvLoopControlMax = 0x7fffffff,
572b8e80941Smrg} SpvLoopControlShift;
573b8e80941Smrg
574b8e80941Smrgtypedef enum SpvLoopControlMask_ {
575b8e80941Smrg    SpvLoopControlMaskNone = 0,
576b8e80941Smrg    SpvLoopControlUnrollMask = 0x00000001,
577b8e80941Smrg    SpvLoopControlDontUnrollMask = 0x00000002,
578b8e80941Smrg    SpvLoopControlDependencyInfiniteMask = 0x00000004,
579b8e80941Smrg    SpvLoopControlDependencyLengthMask = 0x00000008,
580b8e80941Smrg} SpvLoopControlMask;
581b8e80941Smrg
582b8e80941Smrgtypedef enum SpvFunctionControlShift_ {
583b8e80941Smrg    SpvFunctionControlInlineShift = 0,
584b8e80941Smrg    SpvFunctionControlDontInlineShift = 1,
585b8e80941Smrg    SpvFunctionControlPureShift = 2,
586b8e80941Smrg    SpvFunctionControlConstShift = 3,
587b8e80941Smrg    SpvFunctionControlMax = 0x7fffffff,
588b8e80941Smrg} SpvFunctionControlShift;
589b8e80941Smrg
590b8e80941Smrgtypedef enum SpvFunctionControlMask_ {
591b8e80941Smrg    SpvFunctionControlMaskNone = 0,
592b8e80941Smrg    SpvFunctionControlInlineMask = 0x00000001,
593b8e80941Smrg    SpvFunctionControlDontInlineMask = 0x00000002,
594b8e80941Smrg    SpvFunctionControlPureMask = 0x00000004,
595b8e80941Smrg    SpvFunctionControlConstMask = 0x00000008,
596b8e80941Smrg} SpvFunctionControlMask;
597b8e80941Smrg
598b8e80941Smrgtypedef enum SpvMemorySemanticsShift_ {
599b8e80941Smrg    SpvMemorySemanticsAcquireShift = 1,
600b8e80941Smrg    SpvMemorySemanticsReleaseShift = 2,
601b8e80941Smrg    SpvMemorySemanticsAcquireReleaseShift = 3,
602b8e80941Smrg    SpvMemorySemanticsSequentiallyConsistentShift = 4,
603b8e80941Smrg    SpvMemorySemanticsUniformMemoryShift = 6,
604b8e80941Smrg    SpvMemorySemanticsSubgroupMemoryShift = 7,
605b8e80941Smrg    SpvMemorySemanticsWorkgroupMemoryShift = 8,
606b8e80941Smrg    SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
607b8e80941Smrg    SpvMemorySemanticsAtomicCounterMemoryShift = 10,
608b8e80941Smrg    SpvMemorySemanticsImageMemoryShift = 11,
609b8e80941Smrg    SpvMemorySemanticsOutputMemoryKHRShift = 12,
610b8e80941Smrg    SpvMemorySemanticsMakeAvailableKHRShift = 13,
611b8e80941Smrg    SpvMemorySemanticsMakeVisibleKHRShift = 14,
612b8e80941Smrg    SpvMemorySemanticsMax = 0x7fffffff,
613b8e80941Smrg} SpvMemorySemanticsShift;
614b8e80941Smrg
615b8e80941Smrgtypedef enum SpvMemorySemanticsMask_ {
616b8e80941Smrg    SpvMemorySemanticsMaskNone = 0,
617b8e80941Smrg    SpvMemorySemanticsAcquireMask = 0x00000002,
618b8e80941Smrg    SpvMemorySemanticsReleaseMask = 0x00000004,
619b8e80941Smrg    SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
620b8e80941Smrg    SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
621b8e80941Smrg    SpvMemorySemanticsUniformMemoryMask = 0x00000040,
622b8e80941Smrg    SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
623b8e80941Smrg    SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
624b8e80941Smrg    SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
625b8e80941Smrg    SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
626b8e80941Smrg    SpvMemorySemanticsImageMemoryMask = 0x00000800,
627b8e80941Smrg    SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
628b8e80941Smrg    SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
629b8e80941Smrg    SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
630b8e80941Smrg} SpvMemorySemanticsMask;
631b8e80941Smrg
632b8e80941Smrgtypedef enum SpvMemoryAccessShift_ {
633b8e80941Smrg    SpvMemoryAccessVolatileShift = 0,
634b8e80941Smrg    SpvMemoryAccessAlignedShift = 1,
635b8e80941Smrg    SpvMemoryAccessNontemporalShift = 2,
636b8e80941Smrg    SpvMemoryAccessMakePointerAvailableKHRShift = 3,
637b8e80941Smrg    SpvMemoryAccessMakePointerVisibleKHRShift = 4,
638b8e80941Smrg    SpvMemoryAccessNonPrivatePointerKHRShift = 5,
639b8e80941Smrg    SpvMemoryAccessMax = 0x7fffffff,
640b8e80941Smrg} SpvMemoryAccessShift;
641b8e80941Smrg
642b8e80941Smrgtypedef enum SpvMemoryAccessMask_ {
643b8e80941Smrg    SpvMemoryAccessMaskNone = 0,
644b8e80941Smrg    SpvMemoryAccessVolatileMask = 0x00000001,
645b8e80941Smrg    SpvMemoryAccessAlignedMask = 0x00000002,
646b8e80941Smrg    SpvMemoryAccessNontemporalMask = 0x00000004,
647b8e80941Smrg    SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
648b8e80941Smrg    SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
649b8e80941Smrg    SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
650b8e80941Smrg} SpvMemoryAccessMask;
651b8e80941Smrg
652b8e80941Smrgtypedef enum SpvScope_ {
653b8e80941Smrg    SpvScopeCrossDevice = 0,
654b8e80941Smrg    SpvScopeDevice = 1,
655b8e80941Smrg    SpvScopeWorkgroup = 2,
656b8e80941Smrg    SpvScopeSubgroup = 3,
657b8e80941Smrg    SpvScopeInvocation = 4,
658b8e80941Smrg    SpvScopeQueueFamilyKHR = 5,
659b8e80941Smrg    SpvScopeMax = 0x7fffffff,
660b8e80941Smrg} SpvScope;
661b8e80941Smrg
662b8e80941Smrgtypedef enum SpvGroupOperation_ {
663b8e80941Smrg    SpvGroupOperationReduce = 0,
664b8e80941Smrg    SpvGroupOperationInclusiveScan = 1,
665b8e80941Smrg    SpvGroupOperationExclusiveScan = 2,
666b8e80941Smrg    SpvGroupOperationClusteredReduce = 3,
667b8e80941Smrg    SpvGroupOperationPartitionedReduceNV = 6,
668b8e80941Smrg    SpvGroupOperationPartitionedInclusiveScanNV = 7,
669b8e80941Smrg    SpvGroupOperationPartitionedExclusiveScanNV = 8,
670b8e80941Smrg    SpvGroupOperationMax = 0x7fffffff,
671b8e80941Smrg} SpvGroupOperation;
672b8e80941Smrg
673b8e80941Smrgtypedef enum SpvKernelEnqueueFlags_ {
674b8e80941Smrg    SpvKernelEnqueueFlagsNoWait = 0,
675b8e80941Smrg    SpvKernelEnqueueFlagsWaitKernel = 1,
676b8e80941Smrg    SpvKernelEnqueueFlagsWaitWorkGroup = 2,
677b8e80941Smrg    SpvKernelEnqueueFlagsMax = 0x7fffffff,
678b8e80941Smrg} SpvKernelEnqueueFlags;
679b8e80941Smrg
680b8e80941Smrgtypedef enum SpvKernelProfilingInfoShift_ {
681b8e80941Smrg    SpvKernelProfilingInfoCmdExecTimeShift = 0,
682b8e80941Smrg    SpvKernelProfilingInfoMax = 0x7fffffff,
683b8e80941Smrg} SpvKernelProfilingInfoShift;
684b8e80941Smrg
685b8e80941Smrgtypedef enum SpvKernelProfilingInfoMask_ {
686b8e80941Smrg    SpvKernelProfilingInfoMaskNone = 0,
687b8e80941Smrg    SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
688b8e80941Smrg} SpvKernelProfilingInfoMask;
689b8e80941Smrg
690b8e80941Smrgtypedef enum SpvCapability_ {
691b8e80941Smrg    SpvCapabilityMatrix = 0,
692b8e80941Smrg    SpvCapabilityShader = 1,
693b8e80941Smrg    SpvCapabilityGeometry = 2,
694b8e80941Smrg    SpvCapabilityTessellation = 3,
695b8e80941Smrg    SpvCapabilityAddresses = 4,
696b8e80941Smrg    SpvCapabilityLinkage = 5,
697b8e80941Smrg    SpvCapabilityKernel = 6,
698b8e80941Smrg    SpvCapabilityVector16 = 7,
699b8e80941Smrg    SpvCapabilityFloat16Buffer = 8,
700b8e80941Smrg    SpvCapabilityFloat16 = 9,
701b8e80941Smrg    SpvCapabilityFloat64 = 10,
702b8e80941Smrg    SpvCapabilityInt64 = 11,
703b8e80941Smrg    SpvCapabilityInt64Atomics = 12,
704b8e80941Smrg    SpvCapabilityImageBasic = 13,
705b8e80941Smrg    SpvCapabilityImageReadWrite = 14,
706b8e80941Smrg    SpvCapabilityImageMipmap = 15,
707b8e80941Smrg    SpvCapabilityPipes = 17,
708b8e80941Smrg    SpvCapabilityGroups = 18,
709b8e80941Smrg    SpvCapabilityDeviceEnqueue = 19,
710b8e80941Smrg    SpvCapabilityLiteralSampler = 20,
711b8e80941Smrg    SpvCapabilityAtomicStorage = 21,
712b8e80941Smrg    SpvCapabilityInt16 = 22,
713b8e80941Smrg    SpvCapabilityTessellationPointSize = 23,
714b8e80941Smrg    SpvCapabilityGeometryPointSize = 24,
715b8e80941Smrg    SpvCapabilityImageGatherExtended = 25,
716b8e80941Smrg    SpvCapabilityStorageImageMultisample = 27,
717b8e80941Smrg    SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
718b8e80941Smrg    SpvCapabilitySampledImageArrayDynamicIndexing = 29,
719b8e80941Smrg    SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
720b8e80941Smrg    SpvCapabilityStorageImageArrayDynamicIndexing = 31,
721b8e80941Smrg    SpvCapabilityClipDistance = 32,
722b8e80941Smrg    SpvCapabilityCullDistance = 33,
723b8e80941Smrg    SpvCapabilityImageCubeArray = 34,
724b8e80941Smrg    SpvCapabilitySampleRateShading = 35,
725b8e80941Smrg    SpvCapabilityImageRect = 36,
726b8e80941Smrg    SpvCapabilitySampledRect = 37,
727b8e80941Smrg    SpvCapabilityGenericPointer = 38,
728b8e80941Smrg    SpvCapabilityInt8 = 39,
729b8e80941Smrg    SpvCapabilityInputAttachment = 40,
730b8e80941Smrg    SpvCapabilitySparseResidency = 41,
731b8e80941Smrg    SpvCapabilityMinLod = 42,
732b8e80941Smrg    SpvCapabilitySampled1D = 43,
733b8e80941Smrg    SpvCapabilityImage1D = 44,
734b8e80941Smrg    SpvCapabilitySampledCubeArray = 45,
735b8e80941Smrg    SpvCapabilitySampledBuffer = 46,
736b8e80941Smrg    SpvCapabilityImageBuffer = 47,
737b8e80941Smrg    SpvCapabilityImageMSArray = 48,
738b8e80941Smrg    SpvCapabilityStorageImageExtendedFormats = 49,
739b8e80941Smrg    SpvCapabilityImageQuery = 50,
740b8e80941Smrg    SpvCapabilityDerivativeControl = 51,
741b8e80941Smrg    SpvCapabilityInterpolationFunction = 52,
742b8e80941Smrg    SpvCapabilityTransformFeedback = 53,
743b8e80941Smrg    SpvCapabilityGeometryStreams = 54,
744b8e80941Smrg    SpvCapabilityStorageImageReadWithoutFormat = 55,
745b8e80941Smrg    SpvCapabilityStorageImageWriteWithoutFormat = 56,
746b8e80941Smrg    SpvCapabilityMultiViewport = 57,
747b8e80941Smrg    SpvCapabilitySubgroupDispatch = 58,
748b8e80941Smrg    SpvCapabilityNamedBarrier = 59,
749b8e80941Smrg    SpvCapabilityPipeStorage = 60,
750b8e80941Smrg    SpvCapabilityGroupNonUniform = 61,
751b8e80941Smrg    SpvCapabilityGroupNonUniformVote = 62,
752b8e80941Smrg    SpvCapabilityGroupNonUniformArithmetic = 63,
753b8e80941Smrg    SpvCapabilityGroupNonUniformBallot = 64,
754b8e80941Smrg    SpvCapabilityGroupNonUniformShuffle = 65,
755b8e80941Smrg    SpvCapabilityGroupNonUniformShuffleRelative = 66,
756b8e80941Smrg    SpvCapabilityGroupNonUniformClustered = 67,
757b8e80941Smrg    SpvCapabilityGroupNonUniformQuad = 68,
758b8e80941Smrg    SpvCapabilitySubgroupBallotKHR = 4423,
759b8e80941Smrg    SpvCapabilityDrawParameters = 4427,
760b8e80941Smrg    SpvCapabilitySubgroupVoteKHR = 4431,
761b8e80941Smrg    SpvCapabilityStorageBuffer16BitAccess = 4433,
762b8e80941Smrg    SpvCapabilityStorageUniformBufferBlock16 = 4433,
763b8e80941Smrg    SpvCapabilityStorageUniform16 = 4434,
764b8e80941Smrg    SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
765b8e80941Smrg    SpvCapabilityStoragePushConstant16 = 4435,
766b8e80941Smrg    SpvCapabilityStorageInputOutput16 = 4436,
767b8e80941Smrg    SpvCapabilityDeviceGroup = 4437,
768b8e80941Smrg    SpvCapabilityMultiView = 4439,
769b8e80941Smrg    SpvCapabilityVariablePointersStorageBuffer = 4441,
770b8e80941Smrg    SpvCapabilityVariablePointers = 4442,
771b8e80941Smrg    SpvCapabilityAtomicStorageOps = 4445,
772b8e80941Smrg    SpvCapabilitySampleMaskPostDepthCoverage = 4447,
773b8e80941Smrg    SpvCapabilityStorageBuffer8BitAccess = 4448,
774b8e80941Smrg    SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
775b8e80941Smrg    SpvCapabilityStoragePushConstant8 = 4450,
776b8e80941Smrg    SpvCapabilityDenormPreserve = 4464,
777b8e80941Smrg    SpvCapabilityDenormFlushToZero = 4465,
778b8e80941Smrg    SpvCapabilitySignedZeroInfNanPreserve = 4466,
779b8e80941Smrg    SpvCapabilityRoundingModeRTE = 4467,
780b8e80941Smrg    SpvCapabilityRoundingModeRTZ = 4468,
781b8e80941Smrg    SpvCapabilityFloat16ImageAMD = 5008,
782b8e80941Smrg    SpvCapabilityImageGatherBiasLodAMD = 5009,
783b8e80941Smrg    SpvCapabilityFragmentMaskAMD = 5010,
784b8e80941Smrg    SpvCapabilityStencilExportEXT = 5013,
785b8e80941Smrg    SpvCapabilityImageReadWriteLodAMD = 5015,
786b8e80941Smrg    SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
787b8e80941Smrg    SpvCapabilityGeometryShaderPassthroughNV = 5251,
788b8e80941Smrg    SpvCapabilityShaderViewportIndexLayerEXT = 5254,
789b8e80941Smrg    SpvCapabilityShaderViewportIndexLayerNV = 5254,
790b8e80941Smrg    SpvCapabilityShaderViewportMaskNV = 5255,
791b8e80941Smrg    SpvCapabilityShaderStereoViewNV = 5259,
792b8e80941Smrg    SpvCapabilityPerViewAttributesNV = 5260,
793b8e80941Smrg    SpvCapabilityFragmentFullyCoveredEXT = 5265,
794b8e80941Smrg    SpvCapabilityMeshShadingNV = 5266,
795b8e80941Smrg    SpvCapabilityImageFootprintNV = 5282,
796b8e80941Smrg    SpvCapabilityFragmentBarycentricNV = 5284,
797b8e80941Smrg    SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
798b8e80941Smrg    SpvCapabilityFragmentDensityEXT = 5291,
799b8e80941Smrg    SpvCapabilityShadingRateNV = 5291,
800b8e80941Smrg    SpvCapabilityGroupNonUniformPartitionedNV = 5297,
801b8e80941Smrg    SpvCapabilityShaderNonUniformEXT = 5301,
802b8e80941Smrg    SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
803b8e80941Smrg    SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
804b8e80941Smrg    SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
805b8e80941Smrg    SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
806b8e80941Smrg    SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
807b8e80941Smrg    SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
808b8e80941Smrg    SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
809b8e80941Smrg    SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
810b8e80941Smrg    SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
811b8e80941Smrg    SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
812b8e80941Smrg    SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
813b8e80941Smrg    SpvCapabilityRayTracingNV = 5340,
814b8e80941Smrg    SpvCapabilityVulkanMemoryModelKHR = 5345,
815b8e80941Smrg    SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
816b8e80941Smrg    SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
817b8e80941Smrg    SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
818b8e80941Smrg    SpvCapabilitySubgroupShuffleINTEL = 5568,
819b8e80941Smrg    SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
820b8e80941Smrg    SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
821b8e80941Smrg    SpvCapabilityMax = 0x7fffffff,
822b8e80941Smrg} SpvCapability;
823b8e80941Smrg
824b8e80941Smrgtypedef enum SpvOp_ {
825b8e80941Smrg    SpvOpNop = 0,
826b8e80941Smrg    SpvOpUndef = 1,
827b8e80941Smrg    SpvOpSourceContinued = 2,
828b8e80941Smrg    SpvOpSource = 3,
829b8e80941Smrg    SpvOpSourceExtension = 4,
830b8e80941Smrg    SpvOpName = 5,
831b8e80941Smrg    SpvOpMemberName = 6,
832b8e80941Smrg    SpvOpString = 7,
833b8e80941Smrg    SpvOpLine = 8,
834b8e80941Smrg    SpvOpExtension = 10,
835b8e80941Smrg    SpvOpExtInstImport = 11,
836b8e80941Smrg    SpvOpExtInst = 12,
837b8e80941Smrg    SpvOpMemoryModel = 14,
838b8e80941Smrg    SpvOpEntryPoint = 15,
839b8e80941Smrg    SpvOpExecutionMode = 16,
840b8e80941Smrg    SpvOpCapability = 17,
841b8e80941Smrg    SpvOpTypeVoid = 19,
842b8e80941Smrg    SpvOpTypeBool = 20,
843b8e80941Smrg    SpvOpTypeInt = 21,
844b8e80941Smrg    SpvOpTypeFloat = 22,
845b8e80941Smrg    SpvOpTypeVector = 23,
846b8e80941Smrg    SpvOpTypeMatrix = 24,
847b8e80941Smrg    SpvOpTypeImage = 25,
848b8e80941Smrg    SpvOpTypeSampler = 26,
849b8e80941Smrg    SpvOpTypeSampledImage = 27,
850b8e80941Smrg    SpvOpTypeArray = 28,
851b8e80941Smrg    SpvOpTypeRuntimeArray = 29,
852b8e80941Smrg    SpvOpTypeStruct = 30,
853b8e80941Smrg    SpvOpTypeOpaque = 31,
854b8e80941Smrg    SpvOpTypePointer = 32,
855b8e80941Smrg    SpvOpTypeFunction = 33,
856b8e80941Smrg    SpvOpTypeEvent = 34,
857b8e80941Smrg    SpvOpTypeDeviceEvent = 35,
858b8e80941Smrg    SpvOpTypeReserveId = 36,
859b8e80941Smrg    SpvOpTypeQueue = 37,
860b8e80941Smrg    SpvOpTypePipe = 38,
861b8e80941Smrg    SpvOpTypeForwardPointer = 39,
862b8e80941Smrg    SpvOpConstantTrue = 41,
863b8e80941Smrg    SpvOpConstantFalse = 42,
864b8e80941Smrg    SpvOpConstant = 43,
865b8e80941Smrg    SpvOpConstantComposite = 44,
866b8e80941Smrg    SpvOpConstantSampler = 45,
867b8e80941Smrg    SpvOpConstantNull = 46,
868b8e80941Smrg    SpvOpSpecConstantTrue = 48,
869b8e80941Smrg    SpvOpSpecConstantFalse = 49,
870b8e80941Smrg    SpvOpSpecConstant = 50,
871b8e80941Smrg    SpvOpSpecConstantComposite = 51,
872b8e80941Smrg    SpvOpSpecConstantOp = 52,
873b8e80941Smrg    SpvOpFunction = 54,
874b8e80941Smrg    SpvOpFunctionParameter = 55,
875b8e80941Smrg    SpvOpFunctionEnd = 56,
876b8e80941Smrg    SpvOpFunctionCall = 57,
877b8e80941Smrg    SpvOpVariable = 59,
878b8e80941Smrg    SpvOpImageTexelPointer = 60,
879b8e80941Smrg    SpvOpLoad = 61,
880b8e80941Smrg    SpvOpStore = 62,
881b8e80941Smrg    SpvOpCopyMemory = 63,
882b8e80941Smrg    SpvOpCopyMemorySized = 64,
883b8e80941Smrg    SpvOpAccessChain = 65,
884b8e80941Smrg    SpvOpInBoundsAccessChain = 66,
885b8e80941Smrg    SpvOpPtrAccessChain = 67,
886b8e80941Smrg    SpvOpArrayLength = 68,
887b8e80941Smrg    SpvOpGenericPtrMemSemantics = 69,
888b8e80941Smrg    SpvOpInBoundsPtrAccessChain = 70,
889b8e80941Smrg    SpvOpDecorate = 71,
890b8e80941Smrg    SpvOpMemberDecorate = 72,
891b8e80941Smrg    SpvOpDecorationGroup = 73,
892b8e80941Smrg    SpvOpGroupDecorate = 74,
893b8e80941Smrg    SpvOpGroupMemberDecorate = 75,
894b8e80941Smrg    SpvOpVectorExtractDynamic = 77,
895b8e80941Smrg    SpvOpVectorInsertDynamic = 78,
896b8e80941Smrg    SpvOpVectorShuffle = 79,
897b8e80941Smrg    SpvOpCompositeConstruct = 80,
898b8e80941Smrg    SpvOpCompositeExtract = 81,
899b8e80941Smrg    SpvOpCompositeInsert = 82,
900b8e80941Smrg    SpvOpCopyObject = 83,
901b8e80941Smrg    SpvOpTranspose = 84,
902b8e80941Smrg    SpvOpSampledImage = 86,
903b8e80941Smrg    SpvOpImageSampleImplicitLod = 87,
904b8e80941Smrg    SpvOpImageSampleExplicitLod = 88,
905b8e80941Smrg    SpvOpImageSampleDrefImplicitLod = 89,
906b8e80941Smrg    SpvOpImageSampleDrefExplicitLod = 90,
907b8e80941Smrg    SpvOpImageSampleProjImplicitLod = 91,
908b8e80941Smrg    SpvOpImageSampleProjExplicitLod = 92,
909b8e80941Smrg    SpvOpImageSampleProjDrefImplicitLod = 93,
910b8e80941Smrg    SpvOpImageSampleProjDrefExplicitLod = 94,
911b8e80941Smrg    SpvOpImageFetch = 95,
912b8e80941Smrg    SpvOpImageGather = 96,
913b8e80941Smrg    SpvOpImageDrefGather = 97,
914b8e80941Smrg    SpvOpImageRead = 98,
915b8e80941Smrg    SpvOpImageWrite = 99,
916b8e80941Smrg    SpvOpImage = 100,
917b8e80941Smrg    SpvOpImageQueryFormat = 101,
918b8e80941Smrg    SpvOpImageQueryOrder = 102,
919b8e80941Smrg    SpvOpImageQuerySizeLod = 103,
920b8e80941Smrg    SpvOpImageQuerySize = 104,
921b8e80941Smrg    SpvOpImageQueryLod = 105,
922b8e80941Smrg    SpvOpImageQueryLevels = 106,
923b8e80941Smrg    SpvOpImageQuerySamples = 107,
924b8e80941Smrg    SpvOpConvertFToU = 109,
925b8e80941Smrg    SpvOpConvertFToS = 110,
926b8e80941Smrg    SpvOpConvertSToF = 111,
927b8e80941Smrg    SpvOpConvertUToF = 112,
928b8e80941Smrg    SpvOpUConvert = 113,
929b8e80941Smrg    SpvOpSConvert = 114,
930b8e80941Smrg    SpvOpFConvert = 115,
931b8e80941Smrg    SpvOpQuantizeToF16 = 116,
932b8e80941Smrg    SpvOpConvertPtrToU = 117,
933b8e80941Smrg    SpvOpSatConvertSToU = 118,
934b8e80941Smrg    SpvOpSatConvertUToS = 119,
935b8e80941Smrg    SpvOpConvertUToPtr = 120,
936b8e80941Smrg    SpvOpPtrCastToGeneric = 121,
937b8e80941Smrg    SpvOpGenericCastToPtr = 122,
938b8e80941Smrg    SpvOpGenericCastToPtrExplicit = 123,
939b8e80941Smrg    SpvOpBitcast = 124,
940b8e80941Smrg    SpvOpSNegate = 126,
941b8e80941Smrg    SpvOpFNegate = 127,
942b8e80941Smrg    SpvOpIAdd = 128,
943b8e80941Smrg    SpvOpFAdd = 129,
944b8e80941Smrg    SpvOpISub = 130,
945b8e80941Smrg    SpvOpFSub = 131,
946b8e80941Smrg    SpvOpIMul = 132,
947b8e80941Smrg    SpvOpFMul = 133,
948b8e80941Smrg    SpvOpUDiv = 134,
949b8e80941Smrg    SpvOpSDiv = 135,
950b8e80941Smrg    SpvOpFDiv = 136,
951b8e80941Smrg    SpvOpUMod = 137,
952b8e80941Smrg    SpvOpSRem = 138,
953b8e80941Smrg    SpvOpSMod = 139,
954b8e80941Smrg    SpvOpFRem = 140,
955b8e80941Smrg    SpvOpFMod = 141,
956b8e80941Smrg    SpvOpVectorTimesScalar = 142,
957b8e80941Smrg    SpvOpMatrixTimesScalar = 143,
958b8e80941Smrg    SpvOpVectorTimesMatrix = 144,
959b8e80941Smrg    SpvOpMatrixTimesVector = 145,
960b8e80941Smrg    SpvOpMatrixTimesMatrix = 146,
961b8e80941Smrg    SpvOpOuterProduct = 147,
962b8e80941Smrg    SpvOpDot = 148,
963b8e80941Smrg    SpvOpIAddCarry = 149,
964b8e80941Smrg    SpvOpISubBorrow = 150,
965b8e80941Smrg    SpvOpUMulExtended = 151,
966b8e80941Smrg    SpvOpSMulExtended = 152,
967b8e80941Smrg    SpvOpAny = 154,
968b8e80941Smrg    SpvOpAll = 155,
969b8e80941Smrg    SpvOpIsNan = 156,
970b8e80941Smrg    SpvOpIsInf = 157,
971b8e80941Smrg    SpvOpIsFinite = 158,
972b8e80941Smrg    SpvOpIsNormal = 159,
973b8e80941Smrg    SpvOpSignBitSet = 160,
974b8e80941Smrg    SpvOpLessOrGreater = 161,
975b8e80941Smrg    SpvOpOrdered = 162,
976b8e80941Smrg    SpvOpUnordered = 163,
977b8e80941Smrg    SpvOpLogicalEqual = 164,
978b8e80941Smrg    SpvOpLogicalNotEqual = 165,
979b8e80941Smrg    SpvOpLogicalOr = 166,
980b8e80941Smrg    SpvOpLogicalAnd = 167,
981b8e80941Smrg    SpvOpLogicalNot = 168,
982b8e80941Smrg    SpvOpSelect = 169,
983b8e80941Smrg    SpvOpIEqual = 170,
984b8e80941Smrg    SpvOpINotEqual = 171,
985b8e80941Smrg    SpvOpUGreaterThan = 172,
986b8e80941Smrg    SpvOpSGreaterThan = 173,
987b8e80941Smrg    SpvOpUGreaterThanEqual = 174,
988b8e80941Smrg    SpvOpSGreaterThanEqual = 175,
989b8e80941Smrg    SpvOpULessThan = 176,
990b8e80941Smrg    SpvOpSLessThan = 177,
991b8e80941Smrg    SpvOpULessThanEqual = 178,
992b8e80941Smrg    SpvOpSLessThanEqual = 179,
993b8e80941Smrg    SpvOpFOrdEqual = 180,
994b8e80941Smrg    SpvOpFUnordEqual = 181,
995b8e80941Smrg    SpvOpFOrdNotEqual = 182,
996b8e80941Smrg    SpvOpFUnordNotEqual = 183,
997b8e80941Smrg    SpvOpFOrdLessThan = 184,
998b8e80941Smrg    SpvOpFUnordLessThan = 185,
999b8e80941Smrg    SpvOpFOrdGreaterThan = 186,
1000b8e80941Smrg    SpvOpFUnordGreaterThan = 187,
1001b8e80941Smrg    SpvOpFOrdLessThanEqual = 188,
1002b8e80941Smrg    SpvOpFUnordLessThanEqual = 189,
1003b8e80941Smrg    SpvOpFOrdGreaterThanEqual = 190,
1004b8e80941Smrg    SpvOpFUnordGreaterThanEqual = 191,
1005b8e80941Smrg    SpvOpShiftRightLogical = 194,
1006b8e80941Smrg    SpvOpShiftRightArithmetic = 195,
1007b8e80941Smrg    SpvOpShiftLeftLogical = 196,
1008b8e80941Smrg    SpvOpBitwiseOr = 197,
1009b8e80941Smrg    SpvOpBitwiseXor = 198,
1010b8e80941Smrg    SpvOpBitwiseAnd = 199,
1011b8e80941Smrg    SpvOpNot = 200,
1012b8e80941Smrg    SpvOpBitFieldInsert = 201,
1013b8e80941Smrg    SpvOpBitFieldSExtract = 202,
1014b8e80941Smrg    SpvOpBitFieldUExtract = 203,
1015b8e80941Smrg    SpvOpBitReverse = 204,
1016b8e80941Smrg    SpvOpBitCount = 205,
1017b8e80941Smrg    SpvOpDPdx = 207,
1018b8e80941Smrg    SpvOpDPdy = 208,
1019b8e80941Smrg    SpvOpFwidth = 209,
1020b8e80941Smrg    SpvOpDPdxFine = 210,
1021b8e80941Smrg    SpvOpDPdyFine = 211,
1022b8e80941Smrg    SpvOpFwidthFine = 212,
1023b8e80941Smrg    SpvOpDPdxCoarse = 213,
1024b8e80941Smrg    SpvOpDPdyCoarse = 214,
1025b8e80941Smrg    SpvOpFwidthCoarse = 215,
1026b8e80941Smrg    SpvOpEmitVertex = 218,
1027b8e80941Smrg    SpvOpEndPrimitive = 219,
1028b8e80941Smrg    SpvOpEmitStreamVertex = 220,
1029b8e80941Smrg    SpvOpEndStreamPrimitive = 221,
1030b8e80941Smrg    SpvOpControlBarrier = 224,
1031b8e80941Smrg    SpvOpMemoryBarrier = 225,
1032b8e80941Smrg    SpvOpAtomicLoad = 227,
1033b8e80941Smrg    SpvOpAtomicStore = 228,
1034b8e80941Smrg    SpvOpAtomicExchange = 229,
1035b8e80941Smrg    SpvOpAtomicCompareExchange = 230,
1036b8e80941Smrg    SpvOpAtomicCompareExchangeWeak = 231,
1037b8e80941Smrg    SpvOpAtomicIIncrement = 232,
1038b8e80941Smrg    SpvOpAtomicIDecrement = 233,
1039b8e80941Smrg    SpvOpAtomicIAdd = 234,
1040b8e80941Smrg    SpvOpAtomicISub = 235,
1041b8e80941Smrg    SpvOpAtomicSMin = 236,
1042b8e80941Smrg    SpvOpAtomicUMin = 237,
1043b8e80941Smrg    SpvOpAtomicSMax = 238,
1044b8e80941Smrg    SpvOpAtomicUMax = 239,
1045b8e80941Smrg    SpvOpAtomicAnd = 240,
1046b8e80941Smrg    SpvOpAtomicOr = 241,
1047b8e80941Smrg    SpvOpAtomicXor = 242,
1048b8e80941Smrg    SpvOpPhi = 245,
1049b8e80941Smrg    SpvOpLoopMerge = 246,
1050b8e80941Smrg    SpvOpSelectionMerge = 247,
1051b8e80941Smrg    SpvOpLabel = 248,
1052b8e80941Smrg    SpvOpBranch = 249,
1053b8e80941Smrg    SpvOpBranchConditional = 250,
1054b8e80941Smrg    SpvOpSwitch = 251,
1055b8e80941Smrg    SpvOpKill = 252,
1056b8e80941Smrg    SpvOpReturn = 253,
1057b8e80941Smrg    SpvOpReturnValue = 254,
1058b8e80941Smrg    SpvOpUnreachable = 255,
1059b8e80941Smrg    SpvOpLifetimeStart = 256,
1060b8e80941Smrg    SpvOpLifetimeStop = 257,
1061b8e80941Smrg    SpvOpGroupAsyncCopy = 259,
1062b8e80941Smrg    SpvOpGroupWaitEvents = 260,
1063b8e80941Smrg    SpvOpGroupAll = 261,
1064b8e80941Smrg    SpvOpGroupAny = 262,
1065b8e80941Smrg    SpvOpGroupBroadcast = 263,
1066b8e80941Smrg    SpvOpGroupIAdd = 264,
1067b8e80941Smrg    SpvOpGroupFAdd = 265,
1068b8e80941Smrg    SpvOpGroupFMin = 266,
1069b8e80941Smrg    SpvOpGroupUMin = 267,
1070b8e80941Smrg    SpvOpGroupSMin = 268,
1071b8e80941Smrg    SpvOpGroupFMax = 269,
1072b8e80941Smrg    SpvOpGroupUMax = 270,
1073b8e80941Smrg    SpvOpGroupSMax = 271,
1074b8e80941Smrg    SpvOpReadPipe = 274,
1075b8e80941Smrg    SpvOpWritePipe = 275,
1076b8e80941Smrg    SpvOpReservedReadPipe = 276,
1077b8e80941Smrg    SpvOpReservedWritePipe = 277,
1078b8e80941Smrg    SpvOpReserveReadPipePackets = 278,
1079b8e80941Smrg    SpvOpReserveWritePipePackets = 279,
1080b8e80941Smrg    SpvOpCommitReadPipe = 280,
1081b8e80941Smrg    SpvOpCommitWritePipe = 281,
1082b8e80941Smrg    SpvOpIsValidReserveId = 282,
1083b8e80941Smrg    SpvOpGetNumPipePackets = 283,
1084b8e80941Smrg    SpvOpGetMaxPipePackets = 284,
1085b8e80941Smrg    SpvOpGroupReserveReadPipePackets = 285,
1086b8e80941Smrg    SpvOpGroupReserveWritePipePackets = 286,
1087b8e80941Smrg    SpvOpGroupCommitReadPipe = 287,
1088b8e80941Smrg    SpvOpGroupCommitWritePipe = 288,
1089b8e80941Smrg    SpvOpEnqueueMarker = 291,
1090b8e80941Smrg    SpvOpEnqueueKernel = 292,
1091b8e80941Smrg    SpvOpGetKernelNDrangeSubGroupCount = 293,
1092b8e80941Smrg    SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1093b8e80941Smrg    SpvOpGetKernelWorkGroupSize = 295,
1094b8e80941Smrg    SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1095b8e80941Smrg    SpvOpRetainEvent = 297,
1096b8e80941Smrg    SpvOpReleaseEvent = 298,
1097b8e80941Smrg    SpvOpCreateUserEvent = 299,
1098b8e80941Smrg    SpvOpIsValidEvent = 300,
1099b8e80941Smrg    SpvOpSetUserEventStatus = 301,
1100b8e80941Smrg    SpvOpCaptureEventProfilingInfo = 302,
1101b8e80941Smrg    SpvOpGetDefaultQueue = 303,
1102b8e80941Smrg    SpvOpBuildNDRange = 304,
1103b8e80941Smrg    SpvOpImageSparseSampleImplicitLod = 305,
1104b8e80941Smrg    SpvOpImageSparseSampleExplicitLod = 306,
1105b8e80941Smrg    SpvOpImageSparseSampleDrefImplicitLod = 307,
1106b8e80941Smrg    SpvOpImageSparseSampleDrefExplicitLod = 308,
1107b8e80941Smrg    SpvOpImageSparseSampleProjImplicitLod = 309,
1108b8e80941Smrg    SpvOpImageSparseSampleProjExplicitLod = 310,
1109b8e80941Smrg    SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1110b8e80941Smrg    SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1111b8e80941Smrg    SpvOpImageSparseFetch = 313,
1112b8e80941Smrg    SpvOpImageSparseGather = 314,
1113b8e80941Smrg    SpvOpImageSparseDrefGather = 315,
1114b8e80941Smrg    SpvOpImageSparseTexelsResident = 316,
1115b8e80941Smrg    SpvOpNoLine = 317,
1116b8e80941Smrg    SpvOpAtomicFlagTestAndSet = 318,
1117b8e80941Smrg    SpvOpAtomicFlagClear = 319,
1118b8e80941Smrg    SpvOpImageSparseRead = 320,
1119b8e80941Smrg    SpvOpSizeOf = 321,
1120b8e80941Smrg    SpvOpTypePipeStorage = 322,
1121b8e80941Smrg    SpvOpConstantPipeStorage = 323,
1122b8e80941Smrg    SpvOpCreatePipeFromPipeStorage = 324,
1123b8e80941Smrg    SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1124b8e80941Smrg    SpvOpGetKernelMaxNumSubgroups = 326,
1125b8e80941Smrg    SpvOpTypeNamedBarrier = 327,
1126b8e80941Smrg    SpvOpNamedBarrierInitialize = 328,
1127b8e80941Smrg    SpvOpMemoryNamedBarrier = 329,
1128b8e80941Smrg    SpvOpModuleProcessed = 330,
1129b8e80941Smrg    SpvOpExecutionModeId = 331,
1130b8e80941Smrg    SpvOpDecorateId = 332,
1131b8e80941Smrg    SpvOpGroupNonUniformElect = 333,
1132b8e80941Smrg    SpvOpGroupNonUniformAll = 334,
1133b8e80941Smrg    SpvOpGroupNonUniformAny = 335,
1134b8e80941Smrg    SpvOpGroupNonUniformAllEqual = 336,
1135b8e80941Smrg    SpvOpGroupNonUniformBroadcast = 337,
1136b8e80941Smrg    SpvOpGroupNonUniformBroadcastFirst = 338,
1137b8e80941Smrg    SpvOpGroupNonUniformBallot = 339,
1138b8e80941Smrg    SpvOpGroupNonUniformInverseBallot = 340,
1139b8e80941Smrg    SpvOpGroupNonUniformBallotBitExtract = 341,
1140b8e80941Smrg    SpvOpGroupNonUniformBallotBitCount = 342,
1141b8e80941Smrg    SpvOpGroupNonUniformBallotFindLSB = 343,
1142b8e80941Smrg    SpvOpGroupNonUniformBallotFindMSB = 344,
1143b8e80941Smrg    SpvOpGroupNonUniformShuffle = 345,
1144b8e80941Smrg    SpvOpGroupNonUniformShuffleXor = 346,
1145b8e80941Smrg    SpvOpGroupNonUniformShuffleUp = 347,
1146b8e80941Smrg    SpvOpGroupNonUniformShuffleDown = 348,
1147b8e80941Smrg    SpvOpGroupNonUniformIAdd = 349,
1148b8e80941Smrg    SpvOpGroupNonUniformFAdd = 350,
1149b8e80941Smrg    SpvOpGroupNonUniformIMul = 351,
1150b8e80941Smrg    SpvOpGroupNonUniformFMul = 352,
1151b8e80941Smrg    SpvOpGroupNonUniformSMin = 353,
1152b8e80941Smrg    SpvOpGroupNonUniformUMin = 354,
1153b8e80941Smrg    SpvOpGroupNonUniformFMin = 355,
1154b8e80941Smrg    SpvOpGroupNonUniformSMax = 356,
1155b8e80941Smrg    SpvOpGroupNonUniformUMax = 357,
1156b8e80941Smrg    SpvOpGroupNonUniformFMax = 358,
1157b8e80941Smrg    SpvOpGroupNonUniformBitwiseAnd = 359,
1158b8e80941Smrg    SpvOpGroupNonUniformBitwiseOr = 360,
1159b8e80941Smrg    SpvOpGroupNonUniformBitwiseXor = 361,
1160b8e80941Smrg    SpvOpGroupNonUniformLogicalAnd = 362,
1161b8e80941Smrg    SpvOpGroupNonUniformLogicalOr = 363,
1162b8e80941Smrg    SpvOpGroupNonUniformLogicalXor = 364,
1163b8e80941Smrg    SpvOpGroupNonUniformQuadBroadcast = 365,
1164b8e80941Smrg    SpvOpGroupNonUniformQuadSwap = 366,
1165b8e80941Smrg    SpvOpSubgroupBallotKHR = 4421,
1166b8e80941Smrg    SpvOpSubgroupFirstInvocationKHR = 4422,
1167b8e80941Smrg    SpvOpSubgroupAllKHR = 4428,
1168b8e80941Smrg    SpvOpSubgroupAnyKHR = 4429,
1169b8e80941Smrg    SpvOpSubgroupAllEqualKHR = 4430,
1170b8e80941Smrg    SpvOpSubgroupReadInvocationKHR = 4432,
1171b8e80941Smrg    SpvOpGroupIAddNonUniformAMD = 5000,
1172b8e80941Smrg    SpvOpGroupFAddNonUniformAMD = 5001,
1173b8e80941Smrg    SpvOpGroupFMinNonUniformAMD = 5002,
1174b8e80941Smrg    SpvOpGroupUMinNonUniformAMD = 5003,
1175b8e80941Smrg    SpvOpGroupSMinNonUniformAMD = 5004,
1176b8e80941Smrg    SpvOpGroupFMaxNonUniformAMD = 5005,
1177b8e80941Smrg    SpvOpGroupUMaxNonUniformAMD = 5006,
1178b8e80941Smrg    SpvOpGroupSMaxNonUniformAMD = 5007,
1179b8e80941Smrg    SpvOpFragmentMaskFetchAMD = 5011,
1180b8e80941Smrg    SpvOpFragmentFetchAMD = 5012,
1181b8e80941Smrg    SpvOpImageSampleFootprintNV = 5283,
1182b8e80941Smrg    SpvOpGroupNonUniformPartitionNV = 5296,
1183b8e80941Smrg    SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1184b8e80941Smrg    SpvOpReportIntersectionNV = 5334,
1185b8e80941Smrg    SpvOpIgnoreIntersectionNV = 5335,
1186b8e80941Smrg    SpvOpTerminateRayNV = 5336,
1187b8e80941Smrg    SpvOpTraceNV = 5337,
1188b8e80941Smrg    SpvOpTypeAccelerationStructureNV = 5341,
1189b8e80941Smrg    SpvOpExecuteCallableNV = 5344,
1190b8e80941Smrg    SpvOpSubgroupShuffleINTEL = 5571,
1191b8e80941Smrg    SpvOpSubgroupShuffleDownINTEL = 5572,
1192b8e80941Smrg    SpvOpSubgroupShuffleUpINTEL = 5573,
1193b8e80941Smrg    SpvOpSubgroupShuffleXorINTEL = 5574,
1194b8e80941Smrg    SpvOpSubgroupBlockReadINTEL = 5575,
1195b8e80941Smrg    SpvOpSubgroupBlockWriteINTEL = 5576,
1196b8e80941Smrg    SpvOpSubgroupImageBlockReadINTEL = 5577,
1197b8e80941Smrg    SpvOpSubgroupImageBlockWriteINTEL = 5578,
1198b8e80941Smrg    SpvOpDecorateStringGOOGLE = 5632,
1199b8e80941Smrg    SpvOpMemberDecorateStringGOOGLE = 5633,
1200b8e80941Smrg    SpvOpMax = 0x7fffffff,
1201b8e80941Smrg} SpvOp;
1202b8e80941Smrg
1203b8e80941Smrg#endif  // #ifndef spirv_H
1204b8e80941Smrg
1205