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