Restore legacy interface for remap()
[platform/upstream/glslang.git] / SPIRV / spirv.hpp
1 // Copyright (c) 2014-2020 The Khronos Group Inc.\r
2 // \r
3 // Permission is hereby granted, free of charge, to any person obtaining a copy\r
4 // of this software and/or associated documentation files (the "Materials"),\r
5 // to deal in the Materials without restriction, including without limitation\r
6 // the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
7 // and/or sell copies of the Materials, and to permit persons to whom the\r
8 // Materials are furnished to do so, subject to the following conditions:\r
9 // \r
10 // The above copyright notice and this permission notice shall be included in\r
11 // all copies or substantial portions of the Materials.\r
12 // \r
13 // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS\r
14 // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND\r
15 // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ \r
16 // \r
17 // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
18 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r
20 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
22 // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS\r
23 // IN THE MATERIALS.\r
24 \r
25 // This header is automatically generated by the same tool that creates\r
26 // the Binary Section of the SPIR-V specification.\r
27 \r
28 // Enumeration tokens for SPIR-V, in various styles:\r
29 //   C, C++, C++11, JSON, Lua, Python, C#, D\r
30 // \r
31 // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL\r
32 // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL\r
33 // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL\r
34 // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL\r
35 // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']\r
36 // - C# will use enum classes in the Specification class located in the "Spv" namespace,\r
37 //     e.g.: Spv.Specification.SourceLanguage.GLSL\r
38 // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL\r
39 // \r
40 // Some tokens act like mask values, which can be OR'd together,\r
41 // while others are mutually exclusive.  The mask-like ones have\r
42 // "Mask" in their name, and a parallel enum that has the shift\r
43 // amount (1 << x) for each corresponding enumerant.\r
44 \r
45 #ifndef spirv_HPP\r
46 #define spirv_HPP\r
47 \r
48 namespace spv {\r
49 \r
50 typedef unsigned int Id;\r
51 \r
52 #define SPV_VERSION 0x10600\r
53 #define SPV_REVISION 1\r
54 \r
55 static const unsigned int MagicNumber = 0x07230203;\r
56 static const unsigned int Version = 0x00010600;\r
57 static const unsigned int Revision = 1;\r
58 static const unsigned int OpCodeMask = 0xffff;\r
59 static const unsigned int WordCountShift = 16;\r
60 \r
61 enum SourceLanguage {\r
62     SourceLanguageUnknown = 0,\r
63     SourceLanguageESSL = 1,\r
64     SourceLanguageGLSL = 2,\r
65     SourceLanguageOpenCL_C = 3,\r
66     SourceLanguageOpenCL_CPP = 4,\r
67     SourceLanguageHLSL = 5,\r
68     SourceLanguageCPP_for_OpenCL = 6,\r
69     SourceLanguageMax = 0x7fffffff,\r
70 };\r
71 \r
72 enum ExecutionModel {\r
73     ExecutionModelVertex = 0,\r
74     ExecutionModelTessellationControl = 1,\r
75     ExecutionModelTessellationEvaluation = 2,\r
76     ExecutionModelGeometry = 3,\r
77     ExecutionModelFragment = 4,\r
78     ExecutionModelGLCompute = 5,\r
79     ExecutionModelKernel = 6,\r
80     ExecutionModelTaskNV = 5267,\r
81     ExecutionModelMeshNV = 5268,\r
82     ExecutionModelRayGenerationKHR = 5313,\r
83     ExecutionModelRayGenerationNV = 5313,\r
84     ExecutionModelIntersectionKHR = 5314,\r
85     ExecutionModelIntersectionNV = 5314,\r
86     ExecutionModelAnyHitKHR = 5315,\r
87     ExecutionModelAnyHitNV = 5315,\r
88     ExecutionModelClosestHitKHR = 5316,\r
89     ExecutionModelClosestHitNV = 5316,\r
90     ExecutionModelMissKHR = 5317,\r
91     ExecutionModelMissNV = 5317,\r
92     ExecutionModelCallableKHR = 5318,\r
93     ExecutionModelCallableNV = 5318,\r
94     ExecutionModelMax = 0x7fffffff,\r
95 };\r
96 \r
97 enum AddressingModel {\r
98     AddressingModelLogical = 0,\r
99     AddressingModelPhysical32 = 1,\r
100     AddressingModelPhysical64 = 2,\r
101     AddressingModelPhysicalStorageBuffer64 = 5348,\r
102     AddressingModelPhysicalStorageBuffer64EXT = 5348,\r
103     AddressingModelMax = 0x7fffffff,\r
104 };\r
105 \r
106 enum MemoryModel {\r
107     MemoryModelSimple = 0,\r
108     MemoryModelGLSL450 = 1,\r
109     MemoryModelOpenCL = 2,\r
110     MemoryModelVulkan = 3,\r
111     MemoryModelVulkanKHR = 3,\r
112     MemoryModelMax = 0x7fffffff,\r
113 };\r
114 \r
115 enum ExecutionMode {\r
116     ExecutionModeInvocations = 0,\r
117     ExecutionModeSpacingEqual = 1,\r
118     ExecutionModeSpacingFractionalEven = 2,\r
119     ExecutionModeSpacingFractionalOdd = 3,\r
120     ExecutionModeVertexOrderCw = 4,\r
121     ExecutionModeVertexOrderCcw = 5,\r
122     ExecutionModePixelCenterInteger = 6,\r
123     ExecutionModeOriginUpperLeft = 7,\r
124     ExecutionModeOriginLowerLeft = 8,\r
125     ExecutionModeEarlyFragmentTests = 9,\r
126     ExecutionModePointMode = 10,\r
127     ExecutionModeXfb = 11,\r
128     ExecutionModeDepthReplacing = 12,\r
129     ExecutionModeDepthGreater = 14,\r
130     ExecutionModeDepthLess = 15,\r
131     ExecutionModeDepthUnchanged = 16,\r
132     ExecutionModeLocalSize = 17,\r
133     ExecutionModeLocalSizeHint = 18,\r
134     ExecutionModeInputPoints = 19,\r
135     ExecutionModeInputLines = 20,\r
136     ExecutionModeInputLinesAdjacency = 21,\r
137     ExecutionModeTriangles = 22,\r
138     ExecutionModeInputTrianglesAdjacency = 23,\r
139     ExecutionModeQuads = 24,\r
140     ExecutionModeIsolines = 25,\r
141     ExecutionModeOutputVertices = 26,\r
142     ExecutionModeOutputPoints = 27,\r
143     ExecutionModeOutputLineStrip = 28,\r
144     ExecutionModeOutputTriangleStrip = 29,\r
145     ExecutionModeVecTypeHint = 30,\r
146     ExecutionModeContractionOff = 31,\r
147     ExecutionModeInitializer = 33,\r
148     ExecutionModeFinalizer = 34,\r
149     ExecutionModeSubgroupSize = 35,\r
150     ExecutionModeSubgroupsPerWorkgroup = 36,\r
151     ExecutionModeSubgroupsPerWorkgroupId = 37,\r
152     ExecutionModeLocalSizeId = 38,\r
153     ExecutionModeLocalSizeHintId = 39,\r
154     ExecutionModeSubgroupUniformControlFlowKHR = 4421,\r
155     ExecutionModePostDepthCoverage = 4446,\r
156     ExecutionModeDenormPreserve = 4459,\r
157     ExecutionModeDenormFlushToZero = 4460,\r
158     ExecutionModeSignedZeroInfNanPreserve = 4461,\r
159     ExecutionModeRoundingModeRTE = 4462,\r
160     ExecutionModeRoundingModeRTZ = 4463,\r
161     ExecutionModeStencilRefReplacingEXT = 5027,\r
162     ExecutionModeOutputLinesNV = 5269,\r
163     ExecutionModeOutputPrimitivesNV = 5270,\r
164     ExecutionModeDerivativeGroupQuadsNV = 5289,\r
165     ExecutionModeDerivativeGroupLinearNV = 5290,\r
166     ExecutionModeOutputTrianglesNV = 5298,\r
167     ExecutionModePixelInterlockOrderedEXT = 5366,\r
168     ExecutionModePixelInterlockUnorderedEXT = 5367,\r
169     ExecutionModeSampleInterlockOrderedEXT = 5368,\r
170     ExecutionModeSampleInterlockUnorderedEXT = 5369,\r
171     ExecutionModeShadingRateInterlockOrderedEXT = 5370,\r
172     ExecutionModeShadingRateInterlockUnorderedEXT = 5371,\r
173     ExecutionModeSharedLocalMemorySizeINTEL = 5618,\r
174     ExecutionModeRoundingModeRTPINTEL = 5620,\r
175     ExecutionModeRoundingModeRTNINTEL = 5621,\r
176     ExecutionModeFloatingPointModeALTINTEL = 5622,\r
177     ExecutionModeFloatingPointModeIEEEINTEL = 5623,\r
178     ExecutionModeMaxWorkgroupSizeINTEL = 5893,\r
179     ExecutionModeMaxWorkDimINTEL = 5894,\r
180     ExecutionModeNoGlobalOffsetINTEL = 5895,\r
181     ExecutionModeNumSIMDWorkitemsINTEL = 5896,\r
182     ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,\r
183     ExecutionModeMax = 0x7fffffff,\r
184 };\r
185 \r
186 enum StorageClass {\r
187     StorageClassUniformConstant = 0,\r
188     StorageClassInput = 1,\r
189     StorageClassUniform = 2,\r
190     StorageClassOutput = 3,\r
191     StorageClassWorkgroup = 4,\r
192     StorageClassCrossWorkgroup = 5,\r
193     StorageClassPrivate = 6,\r
194     StorageClassFunction = 7,\r
195     StorageClassGeneric = 8,\r
196     StorageClassPushConstant = 9,\r
197     StorageClassAtomicCounter = 10,\r
198     StorageClassImage = 11,\r
199     StorageClassStorageBuffer = 12,\r
200     StorageClassCallableDataKHR = 5328,\r
201     StorageClassCallableDataNV = 5328,\r
202     StorageClassIncomingCallableDataKHR = 5329,\r
203     StorageClassIncomingCallableDataNV = 5329,\r
204     StorageClassRayPayloadKHR = 5338,\r
205     StorageClassRayPayloadNV = 5338,\r
206     StorageClassHitAttributeKHR = 5339,\r
207     StorageClassHitAttributeNV = 5339,\r
208     StorageClassIncomingRayPayloadKHR = 5342,\r
209     StorageClassIncomingRayPayloadNV = 5342,\r
210     StorageClassShaderRecordBufferKHR = 5343,\r
211     StorageClassShaderRecordBufferNV = 5343,\r
212     StorageClassPhysicalStorageBuffer = 5349,\r
213     StorageClassPhysicalStorageBufferEXT = 5349,\r
214     StorageClassCodeSectionINTEL = 5605,\r
215     StorageClassDeviceOnlyINTEL = 5936,\r
216     StorageClassHostOnlyINTEL = 5937,\r
217     StorageClassMax = 0x7fffffff,\r
218 };\r
219 \r
220 enum Dim {\r
221     Dim1D = 0,\r
222     Dim2D = 1,\r
223     Dim3D = 2,\r
224     DimCube = 3,\r
225     DimRect = 4,\r
226     DimBuffer = 5,\r
227     DimSubpassData = 6,\r
228     DimMax = 0x7fffffff,\r
229 };\r
230 \r
231 enum SamplerAddressingMode {\r
232     SamplerAddressingModeNone = 0,\r
233     SamplerAddressingModeClampToEdge = 1,\r
234     SamplerAddressingModeClamp = 2,\r
235     SamplerAddressingModeRepeat = 3,\r
236     SamplerAddressingModeRepeatMirrored = 4,\r
237     SamplerAddressingModeMax = 0x7fffffff,\r
238 };\r
239 \r
240 enum SamplerFilterMode {\r
241     SamplerFilterModeNearest = 0,\r
242     SamplerFilterModeLinear = 1,\r
243     SamplerFilterModeMax = 0x7fffffff,\r
244 };\r
245 \r
246 enum ImageFormat {\r
247     ImageFormatUnknown = 0,\r
248     ImageFormatRgba32f = 1,\r
249     ImageFormatRgba16f = 2,\r
250     ImageFormatR32f = 3,\r
251     ImageFormatRgba8 = 4,\r
252     ImageFormatRgba8Snorm = 5,\r
253     ImageFormatRg32f = 6,\r
254     ImageFormatRg16f = 7,\r
255     ImageFormatR11fG11fB10f = 8,\r
256     ImageFormatR16f = 9,\r
257     ImageFormatRgba16 = 10,\r
258     ImageFormatRgb10A2 = 11,\r
259     ImageFormatRg16 = 12,\r
260     ImageFormatRg8 = 13,\r
261     ImageFormatR16 = 14,\r
262     ImageFormatR8 = 15,\r
263     ImageFormatRgba16Snorm = 16,\r
264     ImageFormatRg16Snorm = 17,\r
265     ImageFormatRg8Snorm = 18,\r
266     ImageFormatR16Snorm = 19,\r
267     ImageFormatR8Snorm = 20,\r
268     ImageFormatRgba32i = 21,\r
269     ImageFormatRgba16i = 22,\r
270     ImageFormatRgba8i = 23,\r
271     ImageFormatR32i = 24,\r
272     ImageFormatRg32i = 25,\r
273     ImageFormatRg16i = 26,\r
274     ImageFormatRg8i = 27,\r
275     ImageFormatR16i = 28,\r
276     ImageFormatR8i = 29,\r
277     ImageFormatRgba32ui = 30,\r
278     ImageFormatRgba16ui = 31,\r
279     ImageFormatRgba8ui = 32,\r
280     ImageFormatR32ui = 33,\r
281     ImageFormatRgb10a2ui = 34,\r
282     ImageFormatRg32ui = 35,\r
283     ImageFormatRg16ui = 36,\r
284     ImageFormatRg8ui = 37,\r
285     ImageFormatR16ui = 38,\r
286     ImageFormatR8ui = 39,\r
287     ImageFormatR64ui = 40,\r
288     ImageFormatR64i = 41,\r
289     ImageFormatMax = 0x7fffffff,\r
290 };\r
291 \r
292 enum ImageChannelOrder {\r
293     ImageChannelOrderR = 0,\r
294     ImageChannelOrderA = 1,\r
295     ImageChannelOrderRG = 2,\r
296     ImageChannelOrderRA = 3,\r
297     ImageChannelOrderRGB = 4,\r
298     ImageChannelOrderRGBA = 5,\r
299     ImageChannelOrderBGRA = 6,\r
300     ImageChannelOrderARGB = 7,\r
301     ImageChannelOrderIntensity = 8,\r
302     ImageChannelOrderLuminance = 9,\r
303     ImageChannelOrderRx = 10,\r
304     ImageChannelOrderRGx = 11,\r
305     ImageChannelOrderRGBx = 12,\r
306     ImageChannelOrderDepth = 13,\r
307     ImageChannelOrderDepthStencil = 14,\r
308     ImageChannelOrdersRGB = 15,\r
309     ImageChannelOrdersRGBx = 16,\r
310     ImageChannelOrdersRGBA = 17,\r
311     ImageChannelOrdersBGRA = 18,\r
312     ImageChannelOrderABGR = 19,\r
313     ImageChannelOrderMax = 0x7fffffff,\r
314 };\r
315 \r
316 enum ImageChannelDataType {\r
317     ImageChannelDataTypeSnormInt8 = 0,\r
318     ImageChannelDataTypeSnormInt16 = 1,\r
319     ImageChannelDataTypeUnormInt8 = 2,\r
320     ImageChannelDataTypeUnormInt16 = 3,\r
321     ImageChannelDataTypeUnormShort565 = 4,\r
322     ImageChannelDataTypeUnormShort555 = 5,\r
323     ImageChannelDataTypeUnormInt101010 = 6,\r
324     ImageChannelDataTypeSignedInt8 = 7,\r
325     ImageChannelDataTypeSignedInt16 = 8,\r
326     ImageChannelDataTypeSignedInt32 = 9,\r
327     ImageChannelDataTypeUnsignedInt8 = 10,\r
328     ImageChannelDataTypeUnsignedInt16 = 11,\r
329     ImageChannelDataTypeUnsignedInt32 = 12,\r
330     ImageChannelDataTypeHalfFloat = 13,\r
331     ImageChannelDataTypeFloat = 14,\r
332     ImageChannelDataTypeUnormInt24 = 15,\r
333     ImageChannelDataTypeUnormInt101010_2 = 16,\r
334     ImageChannelDataTypeMax = 0x7fffffff,\r
335 };\r
336 \r
337 enum ImageOperandsShift {\r
338     ImageOperandsBiasShift = 0,\r
339     ImageOperandsLodShift = 1,\r
340     ImageOperandsGradShift = 2,\r
341     ImageOperandsConstOffsetShift = 3,\r
342     ImageOperandsOffsetShift = 4,\r
343     ImageOperandsConstOffsetsShift = 5,\r
344     ImageOperandsSampleShift = 6,\r
345     ImageOperandsMinLodShift = 7,\r
346     ImageOperandsMakeTexelAvailableShift = 8,\r
347     ImageOperandsMakeTexelAvailableKHRShift = 8,\r
348     ImageOperandsMakeTexelVisibleShift = 9,\r
349     ImageOperandsMakeTexelVisibleKHRShift = 9,\r
350     ImageOperandsNonPrivateTexelShift = 10,\r
351     ImageOperandsNonPrivateTexelKHRShift = 10,\r
352     ImageOperandsVolatileTexelShift = 11,\r
353     ImageOperandsVolatileTexelKHRShift = 11,\r
354     ImageOperandsSignExtendShift = 12,\r
355     ImageOperandsZeroExtendShift = 13,\r
356     ImageOperandsNontemporalShift = 14,\r
357     ImageOperandsOffsetsShift = 16,\r
358     ImageOperandsMax = 0x7fffffff,\r
359 };\r
360 \r
361 enum ImageOperandsMask {\r
362     ImageOperandsMaskNone = 0,\r
363     ImageOperandsBiasMask = 0x00000001,\r
364     ImageOperandsLodMask = 0x00000002,\r
365     ImageOperandsGradMask = 0x00000004,\r
366     ImageOperandsConstOffsetMask = 0x00000008,\r
367     ImageOperandsOffsetMask = 0x00000010,\r
368     ImageOperandsConstOffsetsMask = 0x00000020,\r
369     ImageOperandsSampleMask = 0x00000040,\r
370     ImageOperandsMinLodMask = 0x00000080,\r
371     ImageOperandsMakeTexelAvailableMask = 0x00000100,\r
372     ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,\r
373     ImageOperandsMakeTexelVisibleMask = 0x00000200,\r
374     ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,\r
375     ImageOperandsNonPrivateTexelMask = 0x00000400,\r
376     ImageOperandsNonPrivateTexelKHRMask = 0x00000400,\r
377     ImageOperandsVolatileTexelMask = 0x00000800,\r
378     ImageOperandsVolatileTexelKHRMask = 0x00000800,\r
379     ImageOperandsSignExtendMask = 0x00001000,\r
380     ImageOperandsZeroExtendMask = 0x00002000,\r
381     ImageOperandsNontemporalMask = 0x00004000,\r
382     ImageOperandsOffsetsMask = 0x00010000,\r
383 };\r
384 \r
385 enum FPFastMathModeShift {\r
386     FPFastMathModeNotNaNShift = 0,\r
387     FPFastMathModeNotInfShift = 1,\r
388     FPFastMathModeNSZShift = 2,\r
389     FPFastMathModeAllowRecipShift = 3,\r
390     FPFastMathModeFastShift = 4,\r
391     FPFastMathModeAllowContractFastINTELShift = 16,\r
392     FPFastMathModeAllowReassocINTELShift = 17,\r
393     FPFastMathModeMax = 0x7fffffff,\r
394 };\r
395 \r
396 enum FPFastMathModeMask {\r
397     FPFastMathModeMaskNone = 0,\r
398     FPFastMathModeNotNaNMask = 0x00000001,\r
399     FPFastMathModeNotInfMask = 0x00000002,\r
400     FPFastMathModeNSZMask = 0x00000004,\r
401     FPFastMathModeAllowRecipMask = 0x00000008,\r
402     FPFastMathModeFastMask = 0x00000010,\r
403     FPFastMathModeAllowContractFastINTELMask = 0x00010000,\r
404     FPFastMathModeAllowReassocINTELMask = 0x00020000,\r
405 };\r
406 \r
407 enum FPRoundingMode {\r
408     FPRoundingModeRTE = 0,\r
409     FPRoundingModeRTZ = 1,\r
410     FPRoundingModeRTP = 2,\r
411     FPRoundingModeRTN = 3,\r
412     FPRoundingModeMax = 0x7fffffff,\r
413 };\r
414 \r
415 enum LinkageType {\r
416     LinkageTypeExport = 0,\r
417     LinkageTypeImport = 1,\r
418     LinkageTypeLinkOnceODR = 2,\r
419     LinkageTypeMax = 0x7fffffff,\r
420 };\r
421 \r
422 enum AccessQualifier {\r
423     AccessQualifierReadOnly = 0,\r
424     AccessQualifierWriteOnly = 1,\r
425     AccessQualifierReadWrite = 2,\r
426     AccessQualifierMax = 0x7fffffff,\r
427 };\r
428 \r
429 enum FunctionParameterAttribute {\r
430     FunctionParameterAttributeZext = 0,\r
431     FunctionParameterAttributeSext = 1,\r
432     FunctionParameterAttributeByVal = 2,\r
433     FunctionParameterAttributeSret = 3,\r
434     FunctionParameterAttributeNoAlias = 4,\r
435     FunctionParameterAttributeNoCapture = 5,\r
436     FunctionParameterAttributeNoWrite = 6,\r
437     FunctionParameterAttributeNoReadWrite = 7,\r
438     FunctionParameterAttributeMax = 0x7fffffff,\r
439 };\r
440 \r
441 enum Decoration {\r
442     DecorationRelaxedPrecision = 0,\r
443     DecorationSpecId = 1,\r
444     DecorationBlock = 2,\r
445     DecorationBufferBlock = 3,\r
446     DecorationRowMajor = 4,\r
447     DecorationColMajor = 5,\r
448     DecorationArrayStride = 6,\r
449     DecorationMatrixStride = 7,\r
450     DecorationGLSLShared = 8,\r
451     DecorationGLSLPacked = 9,\r
452     DecorationCPacked = 10,\r
453     DecorationBuiltIn = 11,\r
454     DecorationNoPerspective = 13,\r
455     DecorationFlat = 14,\r
456     DecorationPatch = 15,\r
457     DecorationCentroid = 16,\r
458     DecorationSample = 17,\r
459     DecorationInvariant = 18,\r
460     DecorationRestrict = 19,\r
461     DecorationAliased = 20,\r
462     DecorationVolatile = 21,\r
463     DecorationConstant = 22,\r
464     DecorationCoherent = 23,\r
465     DecorationNonWritable = 24,\r
466     DecorationNonReadable = 25,\r
467     DecorationUniform = 26,\r
468     DecorationUniformId = 27,\r
469     DecorationSaturatedConversion = 28,\r
470     DecorationStream = 29,\r
471     DecorationLocation = 30,\r
472     DecorationComponent = 31,\r
473     DecorationIndex = 32,\r
474     DecorationBinding = 33,\r
475     DecorationDescriptorSet = 34,\r
476     DecorationOffset = 35,\r
477     DecorationXfbBuffer = 36,\r
478     DecorationXfbStride = 37,\r
479     DecorationFuncParamAttr = 38,\r
480     DecorationFPRoundingMode = 39,\r
481     DecorationFPFastMathMode = 40,\r
482     DecorationLinkageAttributes = 41,\r
483     DecorationNoContraction = 42,\r
484     DecorationInputAttachmentIndex = 43,\r
485     DecorationAlignment = 44,\r
486     DecorationMaxByteOffset = 45,\r
487     DecorationAlignmentId = 46,\r
488     DecorationMaxByteOffsetId = 47,\r
489     DecorationNoSignedWrap = 4469,\r
490     DecorationNoUnsignedWrap = 4470,\r
491     DecorationExplicitInterpAMD = 4999,\r
492     DecorationOverrideCoverageNV = 5248,\r
493     DecorationPassthroughNV = 5250,\r
494     DecorationViewportRelativeNV = 5252,\r
495     DecorationSecondaryViewportRelativeNV = 5256,\r
496     DecorationPerPrimitiveNV = 5271,\r
497     DecorationPerViewNV = 5272,\r
498     DecorationPerTaskNV = 5273,\r
499     DecorationPerVertexKHR = 5285,\r
500     DecorationPerVertexNV = 5285,\r
501     DecorationNonUniform = 5300,\r
502     DecorationNonUniformEXT = 5300,\r
503     DecorationRestrictPointer = 5355,\r
504     DecorationRestrictPointerEXT = 5355,\r
505     DecorationAliasedPointer = 5356,\r
506     DecorationAliasedPointerEXT = 5356,\r
507     DecorationBindlessSamplerNV = 5398,\r
508     DecorationBindlessImageNV = 5399,\r
509     DecorationBoundSamplerNV = 5400,\r
510     DecorationBoundImageNV = 5401,\r
511     DecorationSIMTCallINTEL = 5599,\r
512     DecorationReferencedIndirectlyINTEL = 5602,\r
513     DecorationClobberINTEL = 5607,\r
514     DecorationSideEffectsINTEL = 5608,\r
515     DecorationVectorComputeVariableINTEL = 5624,\r
516     DecorationFuncParamIOKindINTEL = 5625,\r
517     DecorationVectorComputeFunctionINTEL = 5626,\r
518     DecorationStackCallINTEL = 5627,\r
519     DecorationGlobalVariableOffsetINTEL = 5628,\r
520     DecorationCounterBuffer = 5634,\r
521     DecorationHlslCounterBufferGOOGLE = 5634,\r
522     DecorationHlslSemanticGOOGLE = 5635,\r
523     DecorationUserSemantic = 5635,\r
524     DecorationUserTypeGOOGLE = 5636,\r
525     DecorationFunctionRoundingModeINTEL = 5822,\r
526     DecorationFunctionDenormModeINTEL = 5823,\r
527     DecorationRegisterINTEL = 5825,\r
528     DecorationMemoryINTEL = 5826,\r
529     DecorationNumbanksINTEL = 5827,\r
530     DecorationBankwidthINTEL = 5828,\r
531     DecorationMaxPrivateCopiesINTEL = 5829,\r
532     DecorationSinglepumpINTEL = 5830,\r
533     DecorationDoublepumpINTEL = 5831,\r
534     DecorationMaxReplicatesINTEL = 5832,\r
535     DecorationSimpleDualPortINTEL = 5833,\r
536     DecorationMergeINTEL = 5834,\r
537     DecorationBankBitsINTEL = 5835,\r
538     DecorationForcePow2DepthINTEL = 5836,\r
539     DecorationBurstCoalesceINTEL = 5899,\r
540     DecorationCacheSizeINTEL = 5900,\r
541     DecorationDontStaticallyCoalesceINTEL = 5901,\r
542     DecorationPrefetchINTEL = 5902,\r
543     DecorationStallEnableINTEL = 5905,\r
544     DecorationFuseLoopsInFunctionINTEL = 5907,\r
545     DecorationBufferLocationINTEL = 5921,\r
546     DecorationIOPipeStorageINTEL = 5944,\r
547     DecorationFunctionFloatingPointModeINTEL = 6080,\r
548     DecorationSingleElementVectorINTEL = 6085,\r
549     DecorationVectorComputeCallableFunctionINTEL = 6087,\r
550     DecorationMediaBlockIOINTEL = 6140,\r
551     DecorationMax = 0x7fffffff,\r
552 };\r
553 \r
554 enum BuiltIn {\r
555     BuiltInPosition = 0,\r
556     BuiltInPointSize = 1,\r
557     BuiltInClipDistance = 3,\r
558     BuiltInCullDistance = 4,\r
559     BuiltInVertexId = 5,\r
560     BuiltInInstanceId = 6,\r
561     BuiltInPrimitiveId = 7,\r
562     BuiltInInvocationId = 8,\r
563     BuiltInLayer = 9,\r
564     BuiltInViewportIndex = 10,\r
565     BuiltInTessLevelOuter = 11,\r
566     BuiltInTessLevelInner = 12,\r
567     BuiltInTessCoord = 13,\r
568     BuiltInPatchVertices = 14,\r
569     BuiltInFragCoord = 15,\r
570     BuiltInPointCoord = 16,\r
571     BuiltInFrontFacing = 17,\r
572     BuiltInSampleId = 18,\r
573     BuiltInSamplePosition = 19,\r
574     BuiltInSampleMask = 20,\r
575     BuiltInFragDepth = 22,\r
576     BuiltInHelperInvocation = 23,\r
577     BuiltInNumWorkgroups = 24,\r
578     BuiltInWorkgroupSize = 25,\r
579     BuiltInWorkgroupId = 26,\r
580     BuiltInLocalInvocationId = 27,\r
581     BuiltInGlobalInvocationId = 28,\r
582     BuiltInLocalInvocationIndex = 29,\r
583     BuiltInWorkDim = 30,\r
584     BuiltInGlobalSize = 31,\r
585     BuiltInEnqueuedWorkgroupSize = 32,\r
586     BuiltInGlobalOffset = 33,\r
587     BuiltInGlobalLinearId = 34,\r
588     BuiltInSubgroupSize = 36,\r
589     BuiltInSubgroupMaxSize = 37,\r
590     BuiltInNumSubgroups = 38,\r
591     BuiltInNumEnqueuedSubgroups = 39,\r
592     BuiltInSubgroupId = 40,\r
593     BuiltInSubgroupLocalInvocationId = 41,\r
594     BuiltInVertexIndex = 42,\r
595     BuiltInInstanceIndex = 43,\r
596     BuiltInSubgroupEqMask = 4416,\r
597     BuiltInSubgroupEqMaskKHR = 4416,\r
598     BuiltInSubgroupGeMask = 4417,\r
599     BuiltInSubgroupGeMaskKHR = 4417,\r
600     BuiltInSubgroupGtMask = 4418,\r
601     BuiltInSubgroupGtMaskKHR = 4418,\r
602     BuiltInSubgroupLeMask = 4419,\r
603     BuiltInSubgroupLeMaskKHR = 4419,\r
604     BuiltInSubgroupLtMask = 4420,\r
605     BuiltInSubgroupLtMaskKHR = 4420,\r
606     BuiltInBaseVertex = 4424,\r
607     BuiltInBaseInstance = 4425,\r
608     BuiltInDrawIndex = 4426,\r
609     BuiltInPrimitiveShadingRateKHR = 4432,\r
610     BuiltInDeviceIndex = 4438,\r
611     BuiltInViewIndex = 4440,\r
612     BuiltInShadingRateKHR = 4444,\r
613     BuiltInBaryCoordNoPerspAMD = 4992,\r
614     BuiltInBaryCoordNoPerspCentroidAMD = 4993,\r
615     BuiltInBaryCoordNoPerspSampleAMD = 4994,\r
616     BuiltInBaryCoordSmoothAMD = 4995,\r
617     BuiltInBaryCoordSmoothCentroidAMD = 4996,\r
618     BuiltInBaryCoordSmoothSampleAMD = 4997,\r
619     BuiltInBaryCoordPullModelAMD = 4998,\r
620     BuiltInFragStencilRefEXT = 5014,\r
621     BuiltInViewportMaskNV = 5253,\r
622     BuiltInSecondaryPositionNV = 5257,\r
623     BuiltInSecondaryViewportMaskNV = 5258,\r
624     BuiltInPositionPerViewNV = 5261,\r
625     BuiltInViewportMaskPerViewNV = 5262,\r
626     BuiltInFullyCoveredEXT = 5264,\r
627     BuiltInTaskCountNV = 5274,\r
628     BuiltInPrimitiveCountNV = 5275,\r
629     BuiltInPrimitiveIndicesNV = 5276,\r
630     BuiltInClipDistancePerViewNV = 5277,\r
631     BuiltInCullDistancePerViewNV = 5278,\r
632     BuiltInLayerPerViewNV = 5279,\r
633     BuiltInMeshViewCountNV = 5280,\r
634     BuiltInMeshViewIndicesNV = 5281,\r
635     BuiltInBaryCoordKHR = 5286,\r
636     BuiltInBaryCoordNV = 5286,\r
637     BuiltInBaryCoordNoPerspKHR = 5287,\r
638     BuiltInBaryCoordNoPerspNV = 5287,\r
639     BuiltInFragSizeEXT = 5292,\r
640     BuiltInFragmentSizeNV = 5292,\r
641     BuiltInFragInvocationCountEXT = 5293,\r
642     BuiltInInvocationsPerPixelNV = 5293,\r
643     BuiltInLaunchIdKHR = 5319,\r
644     BuiltInLaunchIdNV = 5319,\r
645     BuiltInLaunchSizeKHR = 5320,\r
646     BuiltInLaunchSizeNV = 5320,\r
647     BuiltInWorldRayOriginKHR = 5321,\r
648     BuiltInWorldRayOriginNV = 5321,\r
649     BuiltInWorldRayDirectionKHR = 5322,\r
650     BuiltInWorldRayDirectionNV = 5322,\r
651     BuiltInObjectRayOriginKHR = 5323,\r
652     BuiltInObjectRayOriginNV = 5323,\r
653     BuiltInObjectRayDirectionKHR = 5324,\r
654     BuiltInObjectRayDirectionNV = 5324,\r
655     BuiltInRayTminKHR = 5325,\r
656     BuiltInRayTminNV = 5325,\r
657     BuiltInRayTmaxKHR = 5326,\r
658     BuiltInRayTmaxNV = 5326,\r
659     BuiltInInstanceCustomIndexKHR = 5327,\r
660     BuiltInInstanceCustomIndexNV = 5327,\r
661     BuiltInObjectToWorldKHR = 5330,\r
662     BuiltInObjectToWorldNV = 5330,\r
663     BuiltInWorldToObjectKHR = 5331,\r
664     BuiltInWorldToObjectNV = 5331,\r
665     BuiltInHitTNV = 5332,\r
666     BuiltInHitKindKHR = 5333,\r
667     BuiltInHitKindNV = 5333,\r
668     BuiltInCurrentRayTimeNV = 5334,\r
669     BuiltInIncomingRayFlagsKHR = 5351,\r
670     BuiltInIncomingRayFlagsNV = 5351,\r
671     BuiltInRayGeometryIndexKHR = 5352,\r
672     BuiltInWarpsPerSMNV = 5374,\r
673     BuiltInSMCountNV = 5375,\r
674     BuiltInWarpIDNV = 5376,\r
675     BuiltInSMIDNV = 5377,\r
676     BuiltInCullMaskKHR = 6021,\r
677     BuiltInMax = 0x7fffffff,\r
678 };\r
679 \r
680 enum SelectionControlShift {\r
681     SelectionControlFlattenShift = 0,\r
682     SelectionControlDontFlattenShift = 1,\r
683     SelectionControlMax = 0x7fffffff,\r
684 };\r
685 \r
686 enum SelectionControlMask {\r
687     SelectionControlMaskNone = 0,\r
688     SelectionControlFlattenMask = 0x00000001,\r
689     SelectionControlDontFlattenMask = 0x00000002,\r
690 };\r
691 \r
692 enum LoopControlShift {\r
693     LoopControlUnrollShift = 0,\r
694     LoopControlDontUnrollShift = 1,\r
695     LoopControlDependencyInfiniteShift = 2,\r
696     LoopControlDependencyLengthShift = 3,\r
697     LoopControlMinIterationsShift = 4,\r
698     LoopControlMaxIterationsShift = 5,\r
699     LoopControlIterationMultipleShift = 6,\r
700     LoopControlPeelCountShift = 7,\r
701     LoopControlPartialCountShift = 8,\r
702     LoopControlInitiationIntervalINTELShift = 16,\r
703     LoopControlMaxConcurrencyINTELShift = 17,\r
704     LoopControlDependencyArrayINTELShift = 18,\r
705     LoopControlPipelineEnableINTELShift = 19,\r
706     LoopControlLoopCoalesceINTELShift = 20,\r
707     LoopControlMaxInterleavingINTELShift = 21,\r
708     LoopControlSpeculatedIterationsINTELShift = 22,\r
709     LoopControlNoFusionINTELShift = 23,\r
710     LoopControlMax = 0x7fffffff,\r
711 };\r
712 \r
713 enum LoopControlMask {\r
714     LoopControlMaskNone = 0,\r
715     LoopControlUnrollMask = 0x00000001,\r
716     LoopControlDontUnrollMask = 0x00000002,\r
717     LoopControlDependencyInfiniteMask = 0x00000004,\r
718     LoopControlDependencyLengthMask = 0x00000008,\r
719     LoopControlMinIterationsMask = 0x00000010,\r
720     LoopControlMaxIterationsMask = 0x00000020,\r
721     LoopControlIterationMultipleMask = 0x00000040,\r
722     LoopControlPeelCountMask = 0x00000080,\r
723     LoopControlPartialCountMask = 0x00000100,\r
724     LoopControlInitiationIntervalINTELMask = 0x00010000,\r
725     LoopControlMaxConcurrencyINTELMask = 0x00020000,\r
726     LoopControlDependencyArrayINTELMask = 0x00040000,\r
727     LoopControlPipelineEnableINTELMask = 0x00080000,\r
728     LoopControlLoopCoalesceINTELMask = 0x00100000,\r
729     LoopControlMaxInterleavingINTELMask = 0x00200000,\r
730     LoopControlSpeculatedIterationsINTELMask = 0x00400000,\r
731     LoopControlNoFusionINTELMask = 0x00800000,\r
732 };\r
733 \r
734 enum FunctionControlShift {\r
735     FunctionControlInlineShift = 0,\r
736     FunctionControlDontInlineShift = 1,\r
737     FunctionControlPureShift = 2,\r
738     FunctionControlConstShift = 3,\r
739     FunctionControlOptNoneINTELShift = 16,\r
740     FunctionControlMax = 0x7fffffff,\r
741 };\r
742 \r
743 enum FunctionControlMask {\r
744     FunctionControlMaskNone = 0,\r
745     FunctionControlInlineMask = 0x00000001,\r
746     FunctionControlDontInlineMask = 0x00000002,\r
747     FunctionControlPureMask = 0x00000004,\r
748     FunctionControlConstMask = 0x00000008,\r
749     FunctionControlOptNoneINTELMask = 0x00010000,\r
750 };\r
751 \r
752 enum MemorySemanticsShift {\r
753     MemorySemanticsAcquireShift = 1,\r
754     MemorySemanticsReleaseShift = 2,\r
755     MemorySemanticsAcquireReleaseShift = 3,\r
756     MemorySemanticsSequentiallyConsistentShift = 4,\r
757     MemorySemanticsUniformMemoryShift = 6,\r
758     MemorySemanticsSubgroupMemoryShift = 7,\r
759     MemorySemanticsWorkgroupMemoryShift = 8,\r
760     MemorySemanticsCrossWorkgroupMemoryShift = 9,\r
761     MemorySemanticsAtomicCounterMemoryShift = 10,\r
762     MemorySemanticsImageMemoryShift = 11,\r
763     MemorySemanticsOutputMemoryShift = 12,\r
764     MemorySemanticsOutputMemoryKHRShift = 12,\r
765     MemorySemanticsMakeAvailableShift = 13,\r
766     MemorySemanticsMakeAvailableKHRShift = 13,\r
767     MemorySemanticsMakeVisibleShift = 14,\r
768     MemorySemanticsMakeVisibleKHRShift = 14,\r
769     MemorySemanticsVolatileShift = 15,\r
770     MemorySemanticsMax = 0x7fffffff,\r
771 };\r
772 \r
773 enum MemorySemanticsMask {\r
774     MemorySemanticsMaskNone = 0,\r
775     MemorySemanticsAcquireMask = 0x00000002,\r
776     MemorySemanticsReleaseMask = 0x00000004,\r
777     MemorySemanticsAcquireReleaseMask = 0x00000008,\r
778     MemorySemanticsSequentiallyConsistentMask = 0x00000010,\r
779     MemorySemanticsUniformMemoryMask = 0x00000040,\r
780     MemorySemanticsSubgroupMemoryMask = 0x00000080,\r
781     MemorySemanticsWorkgroupMemoryMask = 0x00000100,\r
782     MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,\r
783     MemorySemanticsAtomicCounterMemoryMask = 0x00000400,\r
784     MemorySemanticsImageMemoryMask = 0x00000800,\r
785     MemorySemanticsOutputMemoryMask = 0x00001000,\r
786     MemorySemanticsOutputMemoryKHRMask = 0x00001000,\r
787     MemorySemanticsMakeAvailableMask = 0x00002000,\r
788     MemorySemanticsMakeAvailableKHRMask = 0x00002000,\r
789     MemorySemanticsMakeVisibleMask = 0x00004000,\r
790     MemorySemanticsMakeVisibleKHRMask = 0x00004000,\r
791     MemorySemanticsVolatileMask = 0x00008000,\r
792 };\r
793 \r
794 enum MemoryAccessShift {\r
795     MemoryAccessVolatileShift = 0,\r
796     MemoryAccessAlignedShift = 1,\r
797     MemoryAccessNontemporalShift = 2,\r
798     MemoryAccessMakePointerAvailableShift = 3,\r
799     MemoryAccessMakePointerAvailableKHRShift = 3,\r
800     MemoryAccessMakePointerVisibleShift = 4,\r
801     MemoryAccessMakePointerVisibleKHRShift = 4,\r
802     MemoryAccessNonPrivatePointerShift = 5,\r
803     MemoryAccessNonPrivatePointerKHRShift = 5,\r
804     MemoryAccessMax = 0x7fffffff,\r
805 };\r
806 \r
807 enum MemoryAccessMask {\r
808     MemoryAccessMaskNone = 0,\r
809     MemoryAccessVolatileMask = 0x00000001,\r
810     MemoryAccessAlignedMask = 0x00000002,\r
811     MemoryAccessNontemporalMask = 0x00000004,\r
812     MemoryAccessMakePointerAvailableMask = 0x00000008,\r
813     MemoryAccessMakePointerAvailableKHRMask = 0x00000008,\r
814     MemoryAccessMakePointerVisibleMask = 0x00000010,\r
815     MemoryAccessMakePointerVisibleKHRMask = 0x00000010,\r
816     MemoryAccessNonPrivatePointerMask = 0x00000020,\r
817     MemoryAccessNonPrivatePointerKHRMask = 0x00000020,\r
818 };\r
819 \r
820 enum Scope {\r
821     ScopeCrossDevice = 0,\r
822     ScopeDevice = 1,\r
823     ScopeWorkgroup = 2,\r
824     ScopeSubgroup = 3,\r
825     ScopeInvocation = 4,\r
826     ScopeQueueFamily = 5,\r
827     ScopeQueueFamilyKHR = 5,\r
828     ScopeShaderCallKHR = 6,\r
829     ScopeMax = 0x7fffffff,\r
830 };\r
831 \r
832 enum GroupOperation {\r
833     GroupOperationReduce = 0,\r
834     GroupOperationInclusiveScan = 1,\r
835     GroupOperationExclusiveScan = 2,\r
836     GroupOperationClusteredReduce = 3,\r
837     GroupOperationPartitionedReduceNV = 6,\r
838     GroupOperationPartitionedInclusiveScanNV = 7,\r
839     GroupOperationPartitionedExclusiveScanNV = 8,\r
840     GroupOperationMax = 0x7fffffff,\r
841 };\r
842 \r
843 enum KernelEnqueueFlags {\r
844     KernelEnqueueFlagsNoWait = 0,\r
845     KernelEnqueueFlagsWaitKernel = 1,\r
846     KernelEnqueueFlagsWaitWorkGroup = 2,\r
847     KernelEnqueueFlagsMax = 0x7fffffff,\r
848 };\r
849 \r
850 enum KernelProfilingInfoShift {\r
851     KernelProfilingInfoCmdExecTimeShift = 0,\r
852     KernelProfilingInfoMax = 0x7fffffff,\r
853 };\r
854 \r
855 enum KernelProfilingInfoMask {\r
856     KernelProfilingInfoMaskNone = 0,\r
857     KernelProfilingInfoCmdExecTimeMask = 0x00000001,\r
858 };\r
859 \r
860 enum Capability {\r
861     CapabilityMatrix = 0,\r
862     CapabilityShader = 1,\r
863     CapabilityGeometry = 2,\r
864     CapabilityTessellation = 3,\r
865     CapabilityAddresses = 4,\r
866     CapabilityLinkage = 5,\r
867     CapabilityKernel = 6,\r
868     CapabilityVector16 = 7,\r
869     CapabilityFloat16Buffer = 8,\r
870     CapabilityFloat16 = 9,\r
871     CapabilityFloat64 = 10,\r
872     CapabilityInt64 = 11,\r
873     CapabilityInt64Atomics = 12,\r
874     CapabilityImageBasic = 13,\r
875     CapabilityImageReadWrite = 14,\r
876     CapabilityImageMipmap = 15,\r
877     CapabilityPipes = 17,\r
878     CapabilityGroups = 18,\r
879     CapabilityDeviceEnqueue = 19,\r
880     CapabilityLiteralSampler = 20,\r
881     CapabilityAtomicStorage = 21,\r
882     CapabilityInt16 = 22,\r
883     CapabilityTessellationPointSize = 23,\r
884     CapabilityGeometryPointSize = 24,\r
885     CapabilityImageGatherExtended = 25,\r
886     CapabilityStorageImageMultisample = 27,\r
887     CapabilityUniformBufferArrayDynamicIndexing = 28,\r
888     CapabilitySampledImageArrayDynamicIndexing = 29,\r
889     CapabilityStorageBufferArrayDynamicIndexing = 30,\r
890     CapabilityStorageImageArrayDynamicIndexing = 31,\r
891     CapabilityClipDistance = 32,\r
892     CapabilityCullDistance = 33,\r
893     CapabilityImageCubeArray = 34,\r
894     CapabilitySampleRateShading = 35,\r
895     CapabilityImageRect = 36,\r
896     CapabilitySampledRect = 37,\r
897     CapabilityGenericPointer = 38,\r
898     CapabilityInt8 = 39,\r
899     CapabilityInputAttachment = 40,\r
900     CapabilitySparseResidency = 41,\r
901     CapabilityMinLod = 42,\r
902     CapabilitySampled1D = 43,\r
903     CapabilityImage1D = 44,\r
904     CapabilitySampledCubeArray = 45,\r
905     CapabilitySampledBuffer = 46,\r
906     CapabilityImageBuffer = 47,\r
907     CapabilityImageMSArray = 48,\r
908     CapabilityStorageImageExtendedFormats = 49,\r
909     CapabilityImageQuery = 50,\r
910     CapabilityDerivativeControl = 51,\r
911     CapabilityInterpolationFunction = 52,\r
912     CapabilityTransformFeedback = 53,\r
913     CapabilityGeometryStreams = 54,\r
914     CapabilityStorageImageReadWithoutFormat = 55,\r
915     CapabilityStorageImageWriteWithoutFormat = 56,\r
916     CapabilityMultiViewport = 57,\r
917     CapabilitySubgroupDispatch = 58,\r
918     CapabilityNamedBarrier = 59,\r
919     CapabilityPipeStorage = 60,\r
920     CapabilityGroupNonUniform = 61,\r
921     CapabilityGroupNonUniformVote = 62,\r
922     CapabilityGroupNonUniformArithmetic = 63,\r
923     CapabilityGroupNonUniformBallot = 64,\r
924     CapabilityGroupNonUniformShuffle = 65,\r
925     CapabilityGroupNonUniformShuffleRelative = 66,\r
926     CapabilityGroupNonUniformClustered = 67,\r
927     CapabilityGroupNonUniformQuad = 68,\r
928     CapabilityShaderLayer = 69,\r
929     CapabilityShaderViewportIndex = 70,\r
930     CapabilityUniformDecoration = 71,\r
931     CapabilityFragmentShadingRateKHR = 4422,\r
932     CapabilitySubgroupBallotKHR = 4423,\r
933     CapabilityDrawParameters = 4427,\r
934     CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,\r
935     CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,\r
936     CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,\r
937     CapabilitySubgroupVoteKHR = 4431,\r
938     CapabilityStorageBuffer16BitAccess = 4433,\r
939     CapabilityStorageUniformBufferBlock16 = 4433,\r
940     CapabilityStorageUniform16 = 4434,\r
941     CapabilityUniformAndStorageBuffer16BitAccess = 4434,\r
942     CapabilityStoragePushConstant16 = 4435,\r
943     CapabilityStorageInputOutput16 = 4436,\r
944     CapabilityDeviceGroup = 4437,\r
945     CapabilityMultiView = 4439,\r
946     CapabilityVariablePointersStorageBuffer = 4441,\r
947     CapabilityVariablePointers = 4442,\r
948     CapabilityAtomicStorageOps = 4445,\r
949     CapabilitySampleMaskPostDepthCoverage = 4447,\r
950     CapabilityStorageBuffer8BitAccess = 4448,\r
951     CapabilityUniformAndStorageBuffer8BitAccess = 4449,\r
952     CapabilityStoragePushConstant8 = 4450,\r
953     CapabilityDenormPreserve = 4464,\r
954     CapabilityDenormFlushToZero = 4465,\r
955     CapabilitySignedZeroInfNanPreserve = 4466,\r
956     CapabilityRoundingModeRTE = 4467,\r
957     CapabilityRoundingModeRTZ = 4468,\r
958     CapabilityRayQueryProvisionalKHR = 4471,\r
959     CapabilityRayQueryKHR = 4472,\r
960     CapabilityRayTraversalPrimitiveCullingKHR = 4478,\r
961     CapabilityRayTracingKHR = 4479,\r
962     CapabilityFloat16ImageAMD = 5008,\r
963     CapabilityImageGatherBiasLodAMD = 5009,\r
964     CapabilityFragmentMaskAMD = 5010,\r
965     CapabilityStencilExportEXT = 5013,\r
966     CapabilityImageReadWriteLodAMD = 5015,\r
967     CapabilityInt64ImageEXT = 5016,\r
968     CapabilityShaderClockKHR = 5055,\r
969     CapabilitySampleMaskOverrideCoverageNV = 5249,\r
970     CapabilityGeometryShaderPassthroughNV = 5251,\r
971     CapabilityShaderViewportIndexLayerEXT = 5254,\r
972     CapabilityShaderViewportIndexLayerNV = 5254,\r
973     CapabilityShaderViewportMaskNV = 5255,\r
974     CapabilityShaderStereoViewNV = 5259,\r
975     CapabilityPerViewAttributesNV = 5260,\r
976     CapabilityFragmentFullyCoveredEXT = 5265,\r
977     CapabilityMeshShadingNV = 5266,\r
978     CapabilityImageFootprintNV = 5282,\r
979     CapabilityFragmentBarycentricKHR = 5284,\r
980     CapabilityFragmentBarycentricNV = 5284,\r
981     CapabilityComputeDerivativeGroupQuadsNV = 5288,\r
982     CapabilityFragmentDensityEXT = 5291,\r
983     CapabilityShadingRateNV = 5291,\r
984     CapabilityGroupNonUniformPartitionedNV = 5297,\r
985     CapabilityShaderNonUniform = 5301,\r
986     CapabilityShaderNonUniformEXT = 5301,\r
987     CapabilityRuntimeDescriptorArray = 5302,\r
988     CapabilityRuntimeDescriptorArrayEXT = 5302,\r
989     CapabilityInputAttachmentArrayDynamicIndexing = 5303,\r
990     CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,\r
991     CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,\r
992     CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,\r
993     CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,\r
994     CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,\r
995     CapabilityUniformBufferArrayNonUniformIndexing = 5306,\r
996     CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,\r
997     CapabilitySampledImageArrayNonUniformIndexing = 5307,\r
998     CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,\r
999     CapabilityStorageBufferArrayNonUniformIndexing = 5308,\r
1000     CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,\r
1001     CapabilityStorageImageArrayNonUniformIndexing = 5309,\r
1002     CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,\r
1003     CapabilityInputAttachmentArrayNonUniformIndexing = 5310,\r
1004     CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,\r
1005     CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,\r
1006     CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,\r
1007     CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,\r
1008     CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,\r
1009     CapabilityRayTracingNV = 5340,\r
1010     CapabilityRayTracingMotionBlurNV = 5341,\r
1011     CapabilityVulkanMemoryModel = 5345,\r
1012     CapabilityVulkanMemoryModelKHR = 5345,\r
1013     CapabilityVulkanMemoryModelDeviceScope = 5346,\r
1014     CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,\r
1015     CapabilityPhysicalStorageBufferAddresses = 5347,\r
1016     CapabilityPhysicalStorageBufferAddressesEXT = 5347,\r
1017     CapabilityComputeDerivativeGroupLinearNV = 5350,\r
1018     CapabilityRayTracingProvisionalKHR = 5353,\r
1019     CapabilityCooperativeMatrixNV = 5357,\r
1020     CapabilityFragmentShaderSampleInterlockEXT = 5363,\r
1021     CapabilityFragmentShaderShadingRateInterlockEXT = 5372,\r
1022     CapabilityShaderSMBuiltinsNV = 5373,\r
1023     CapabilityFragmentShaderPixelInterlockEXT = 5378,\r
1024     CapabilityDemoteToHelperInvocation = 5379,\r
1025     CapabilityDemoteToHelperInvocationEXT = 5379,\r
1026     CapabilityBindlessTextureNV = 5390,\r
1027     CapabilitySubgroupShuffleINTEL = 5568,\r
1028     CapabilitySubgroupBufferBlockIOINTEL = 5569,\r
1029     CapabilitySubgroupImageBlockIOINTEL = 5570,\r
1030     CapabilitySubgroupImageMediaBlockIOINTEL = 5579,\r
1031     CapabilityRoundToInfinityINTEL = 5582,\r
1032     CapabilityFloatingPointModeINTEL = 5583,\r
1033     CapabilityIntegerFunctions2INTEL = 5584,\r
1034     CapabilityFunctionPointersINTEL = 5603,\r
1035     CapabilityIndirectReferencesINTEL = 5604,\r
1036     CapabilityAsmINTEL = 5606,\r
1037     CapabilityAtomicFloat32MinMaxEXT = 5612,\r
1038     CapabilityAtomicFloat64MinMaxEXT = 5613,\r
1039     CapabilityAtomicFloat16MinMaxEXT = 5616,\r
1040     CapabilityVectorComputeINTEL = 5617,\r
1041     CapabilityVectorAnyINTEL = 5619,\r
1042     CapabilityExpectAssumeKHR = 5629,\r
1043     CapabilitySubgroupAvcMotionEstimationINTEL = 5696,\r
1044     CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,\r
1045     CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,\r
1046     CapabilityVariableLengthArrayINTEL = 5817,\r
1047     CapabilityFunctionFloatControlINTEL = 5821,\r
1048     CapabilityFPGAMemoryAttributesINTEL = 5824,\r
1049     CapabilityFPFastMathModeINTEL = 5837,\r
1050     CapabilityArbitraryPrecisionIntegersINTEL = 5844,\r
1051     CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,\r
1052     CapabilityUnstructuredLoopControlsINTEL = 5886,\r
1053     CapabilityFPGALoopControlsINTEL = 5888,\r
1054     CapabilityKernelAttributesINTEL = 5892,\r
1055     CapabilityFPGAKernelAttributesINTEL = 5897,\r
1056     CapabilityFPGAMemoryAccessesINTEL = 5898,\r
1057     CapabilityFPGAClusterAttributesINTEL = 5904,\r
1058     CapabilityLoopFuseINTEL = 5906,\r
1059     CapabilityFPGABufferLocationINTEL = 5920,\r
1060     CapabilityArbitraryPrecisionFixedPointINTEL = 5922,\r
1061     CapabilityUSMStorageClassesINTEL = 5935,\r
1062     CapabilityIOPipesINTEL = 5943,\r
1063     CapabilityBlockingPipesINTEL = 5945,\r
1064     CapabilityFPGARegINTEL = 5948,\r
1065     CapabilityDotProductInputAll = 6016,\r
1066     CapabilityDotProductInputAllKHR = 6016,\r
1067     CapabilityDotProductInput4x8Bit = 6017,\r
1068     CapabilityDotProductInput4x8BitKHR = 6017,\r
1069     CapabilityDotProductInput4x8BitPacked = 6018,\r
1070     CapabilityDotProductInput4x8BitPackedKHR = 6018,\r
1071     CapabilityDotProduct = 6019,\r
1072     CapabilityDotProductKHR = 6019,\r
1073     CapabilityRayCullMaskKHR = 6020,\r
1074     CapabilityBitInstructions = 6025,\r
1075     CapabilityAtomicFloat32AddEXT = 6033,\r
1076     CapabilityAtomicFloat64AddEXT = 6034,\r
1077     CapabilityLongConstantCompositeINTEL = 6089,\r
1078     CapabilityOptNoneINTEL = 6094,\r
1079     CapabilityAtomicFloat16AddEXT = 6095,\r
1080     CapabilityDebugInfoModuleINTEL = 6114,\r
1081     CapabilityMax = 0x7fffffff,\r
1082 };\r
1083 \r
1084 enum RayFlagsShift {\r
1085     RayFlagsOpaqueKHRShift = 0,\r
1086     RayFlagsNoOpaqueKHRShift = 1,\r
1087     RayFlagsTerminateOnFirstHitKHRShift = 2,\r
1088     RayFlagsSkipClosestHitShaderKHRShift = 3,\r
1089     RayFlagsCullBackFacingTrianglesKHRShift = 4,\r
1090     RayFlagsCullFrontFacingTrianglesKHRShift = 5,\r
1091     RayFlagsCullOpaqueKHRShift = 6,\r
1092     RayFlagsCullNoOpaqueKHRShift = 7,\r
1093     RayFlagsSkipTrianglesKHRShift = 8,\r
1094     RayFlagsSkipAABBsKHRShift = 9,\r
1095     RayFlagsMax = 0x7fffffff,\r
1096 };\r
1097 \r
1098 enum RayFlagsMask {\r
1099     RayFlagsMaskNone = 0,\r
1100     RayFlagsOpaqueKHRMask = 0x00000001,\r
1101     RayFlagsNoOpaqueKHRMask = 0x00000002,\r
1102     RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,\r
1103     RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,\r
1104     RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,\r
1105     RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,\r
1106     RayFlagsCullOpaqueKHRMask = 0x00000040,\r
1107     RayFlagsCullNoOpaqueKHRMask = 0x00000080,\r
1108     RayFlagsSkipTrianglesKHRMask = 0x00000100,\r
1109     RayFlagsSkipAABBsKHRMask = 0x00000200,\r
1110 };\r
1111 \r
1112 enum RayQueryIntersection {\r
1113     RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,\r
1114     RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,\r
1115     RayQueryIntersectionMax = 0x7fffffff,\r
1116 };\r
1117 \r
1118 enum RayQueryCommittedIntersectionType {\r
1119     RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,\r
1120     RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,\r
1121     RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,\r
1122     RayQueryCommittedIntersectionTypeMax = 0x7fffffff,\r
1123 };\r
1124 \r
1125 enum RayQueryCandidateIntersectionType {\r
1126     RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,\r
1127     RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,\r
1128     RayQueryCandidateIntersectionTypeMax = 0x7fffffff,\r
1129 };\r
1130 \r
1131 enum FragmentShadingRateShift {\r
1132     FragmentShadingRateVertical2PixelsShift = 0,\r
1133     FragmentShadingRateVertical4PixelsShift = 1,\r
1134     FragmentShadingRateHorizontal2PixelsShift = 2,\r
1135     FragmentShadingRateHorizontal4PixelsShift = 3,\r
1136     FragmentShadingRateMax = 0x7fffffff,\r
1137 };\r
1138 \r
1139 enum FragmentShadingRateMask {\r
1140     FragmentShadingRateMaskNone = 0,\r
1141     FragmentShadingRateVertical2PixelsMask = 0x00000001,\r
1142     FragmentShadingRateVertical4PixelsMask = 0x00000002,\r
1143     FragmentShadingRateHorizontal2PixelsMask = 0x00000004,\r
1144     FragmentShadingRateHorizontal4PixelsMask = 0x00000008,\r
1145 };\r
1146 \r
1147 enum FPDenormMode {\r
1148     FPDenormModePreserve = 0,\r
1149     FPDenormModeFlushToZero = 1,\r
1150     FPDenormModeMax = 0x7fffffff,\r
1151 };\r
1152 \r
1153 enum FPOperationMode {\r
1154     FPOperationModeIEEE = 0,\r
1155     FPOperationModeALT = 1,\r
1156     FPOperationModeMax = 0x7fffffff,\r
1157 };\r
1158 \r
1159 enum QuantizationModes {\r
1160     QuantizationModesTRN = 0,\r
1161     QuantizationModesTRN_ZERO = 1,\r
1162     QuantizationModesRND = 2,\r
1163     QuantizationModesRND_ZERO = 3,\r
1164     QuantizationModesRND_INF = 4,\r
1165     QuantizationModesRND_MIN_INF = 5,\r
1166     QuantizationModesRND_CONV = 6,\r
1167     QuantizationModesRND_CONV_ODD = 7,\r
1168     QuantizationModesMax = 0x7fffffff,\r
1169 };\r
1170 \r
1171 enum OverflowModes {\r
1172     OverflowModesWRAP = 0,\r
1173     OverflowModesSAT = 1,\r
1174     OverflowModesSAT_ZERO = 2,\r
1175     OverflowModesSAT_SYM = 3,\r
1176     OverflowModesMax = 0x7fffffff,\r
1177 };\r
1178 \r
1179 enum PackedVectorFormat {\r
1180     PackedVectorFormatPackedVectorFormat4x8Bit = 0,\r
1181     PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,\r
1182     PackedVectorFormatMax = 0x7fffffff,\r
1183 };\r
1184 \r
1185 enum Op {\r
1186     OpNop = 0,\r
1187     OpUndef = 1,\r
1188     OpSourceContinued = 2,\r
1189     OpSource = 3,\r
1190     OpSourceExtension = 4,\r
1191     OpName = 5,\r
1192     OpMemberName = 6,\r
1193     OpString = 7,\r
1194     OpLine = 8,\r
1195     OpExtension = 10,\r
1196     OpExtInstImport = 11,\r
1197     OpExtInst = 12,\r
1198     OpMemoryModel = 14,\r
1199     OpEntryPoint = 15,\r
1200     OpExecutionMode = 16,\r
1201     OpCapability = 17,\r
1202     OpTypeVoid = 19,\r
1203     OpTypeBool = 20,\r
1204     OpTypeInt = 21,\r
1205     OpTypeFloat = 22,\r
1206     OpTypeVector = 23,\r
1207     OpTypeMatrix = 24,\r
1208     OpTypeImage = 25,\r
1209     OpTypeSampler = 26,\r
1210     OpTypeSampledImage = 27,\r
1211     OpTypeArray = 28,\r
1212     OpTypeRuntimeArray = 29,\r
1213     OpTypeStruct = 30,\r
1214     OpTypeOpaque = 31,\r
1215     OpTypePointer = 32,\r
1216     OpTypeFunction = 33,\r
1217     OpTypeEvent = 34,\r
1218     OpTypeDeviceEvent = 35,\r
1219     OpTypeReserveId = 36,\r
1220     OpTypeQueue = 37,\r
1221     OpTypePipe = 38,\r
1222     OpTypeForwardPointer = 39,\r
1223     OpConstantTrue = 41,\r
1224     OpConstantFalse = 42,\r
1225     OpConstant = 43,\r
1226     OpConstantComposite = 44,\r
1227     OpConstantSampler = 45,\r
1228     OpConstantNull = 46,\r
1229     OpSpecConstantTrue = 48,\r
1230     OpSpecConstantFalse = 49,\r
1231     OpSpecConstant = 50,\r
1232     OpSpecConstantComposite = 51,\r
1233     OpSpecConstantOp = 52,\r
1234     OpFunction = 54,\r
1235     OpFunctionParameter = 55,\r
1236     OpFunctionEnd = 56,\r
1237     OpFunctionCall = 57,\r
1238     OpVariable = 59,\r
1239     OpImageTexelPointer = 60,\r
1240     OpLoad = 61,\r
1241     OpStore = 62,\r
1242     OpCopyMemory = 63,\r
1243     OpCopyMemorySized = 64,\r
1244     OpAccessChain = 65,\r
1245     OpInBoundsAccessChain = 66,\r
1246     OpPtrAccessChain = 67,\r
1247     OpArrayLength = 68,\r
1248     OpGenericPtrMemSemantics = 69,\r
1249     OpInBoundsPtrAccessChain = 70,\r
1250     OpDecorate = 71,\r
1251     OpMemberDecorate = 72,\r
1252     OpDecorationGroup = 73,\r
1253     OpGroupDecorate = 74,\r
1254     OpGroupMemberDecorate = 75,\r
1255     OpVectorExtractDynamic = 77,\r
1256     OpVectorInsertDynamic = 78,\r
1257     OpVectorShuffle = 79,\r
1258     OpCompositeConstruct = 80,\r
1259     OpCompositeExtract = 81,\r
1260     OpCompositeInsert = 82,\r
1261     OpCopyObject = 83,\r
1262     OpTranspose = 84,\r
1263     OpSampledImage = 86,\r
1264     OpImageSampleImplicitLod = 87,\r
1265     OpImageSampleExplicitLod = 88,\r
1266     OpImageSampleDrefImplicitLod = 89,\r
1267     OpImageSampleDrefExplicitLod = 90,\r
1268     OpImageSampleProjImplicitLod = 91,\r
1269     OpImageSampleProjExplicitLod = 92,\r
1270     OpImageSampleProjDrefImplicitLod = 93,\r
1271     OpImageSampleProjDrefExplicitLod = 94,\r
1272     OpImageFetch = 95,\r
1273     OpImageGather = 96,\r
1274     OpImageDrefGather = 97,\r
1275     OpImageRead = 98,\r
1276     OpImageWrite = 99,\r
1277     OpImage = 100,\r
1278     OpImageQueryFormat = 101,\r
1279     OpImageQueryOrder = 102,\r
1280     OpImageQuerySizeLod = 103,\r
1281     OpImageQuerySize = 104,\r
1282     OpImageQueryLod = 105,\r
1283     OpImageQueryLevels = 106,\r
1284     OpImageQuerySamples = 107,\r
1285     OpConvertFToU = 109,\r
1286     OpConvertFToS = 110,\r
1287     OpConvertSToF = 111,\r
1288     OpConvertUToF = 112,\r
1289     OpUConvert = 113,\r
1290     OpSConvert = 114,\r
1291     OpFConvert = 115,\r
1292     OpQuantizeToF16 = 116,\r
1293     OpConvertPtrToU = 117,\r
1294     OpSatConvertSToU = 118,\r
1295     OpSatConvertUToS = 119,\r
1296     OpConvertUToPtr = 120,\r
1297     OpPtrCastToGeneric = 121,\r
1298     OpGenericCastToPtr = 122,\r
1299     OpGenericCastToPtrExplicit = 123,\r
1300     OpBitcast = 124,\r
1301     OpSNegate = 126,\r
1302     OpFNegate = 127,\r
1303     OpIAdd = 128,\r
1304     OpFAdd = 129,\r
1305     OpISub = 130,\r
1306     OpFSub = 131,\r
1307     OpIMul = 132,\r
1308     OpFMul = 133,\r
1309     OpUDiv = 134,\r
1310     OpSDiv = 135,\r
1311     OpFDiv = 136,\r
1312     OpUMod = 137,\r
1313     OpSRem = 138,\r
1314     OpSMod = 139,\r
1315     OpFRem = 140,\r
1316     OpFMod = 141,\r
1317     OpVectorTimesScalar = 142,\r
1318     OpMatrixTimesScalar = 143,\r
1319     OpVectorTimesMatrix = 144,\r
1320     OpMatrixTimesVector = 145,\r
1321     OpMatrixTimesMatrix = 146,\r
1322     OpOuterProduct = 147,\r
1323     OpDot = 148,\r
1324     OpIAddCarry = 149,\r
1325     OpISubBorrow = 150,\r
1326     OpUMulExtended = 151,\r
1327     OpSMulExtended = 152,\r
1328     OpAny = 154,\r
1329     OpAll = 155,\r
1330     OpIsNan = 156,\r
1331     OpIsInf = 157,\r
1332     OpIsFinite = 158,\r
1333     OpIsNormal = 159,\r
1334     OpSignBitSet = 160,\r
1335     OpLessOrGreater = 161,\r
1336     OpOrdered = 162,\r
1337     OpUnordered = 163,\r
1338     OpLogicalEqual = 164,\r
1339     OpLogicalNotEqual = 165,\r
1340     OpLogicalOr = 166,\r
1341     OpLogicalAnd = 167,\r
1342     OpLogicalNot = 168,\r
1343     OpSelect = 169,\r
1344     OpIEqual = 170,\r
1345     OpINotEqual = 171,\r
1346     OpUGreaterThan = 172,\r
1347     OpSGreaterThan = 173,\r
1348     OpUGreaterThanEqual = 174,\r
1349     OpSGreaterThanEqual = 175,\r
1350     OpULessThan = 176,\r
1351     OpSLessThan = 177,\r
1352     OpULessThanEqual = 178,\r
1353     OpSLessThanEqual = 179,\r
1354     OpFOrdEqual = 180,\r
1355     OpFUnordEqual = 181,\r
1356     OpFOrdNotEqual = 182,\r
1357     OpFUnordNotEqual = 183,\r
1358     OpFOrdLessThan = 184,\r
1359     OpFUnordLessThan = 185,\r
1360     OpFOrdGreaterThan = 186,\r
1361     OpFUnordGreaterThan = 187,\r
1362     OpFOrdLessThanEqual = 188,\r
1363     OpFUnordLessThanEqual = 189,\r
1364     OpFOrdGreaterThanEqual = 190,\r
1365     OpFUnordGreaterThanEqual = 191,\r
1366     OpShiftRightLogical = 194,\r
1367     OpShiftRightArithmetic = 195,\r
1368     OpShiftLeftLogical = 196,\r
1369     OpBitwiseOr = 197,\r
1370     OpBitwiseXor = 198,\r
1371     OpBitwiseAnd = 199,\r
1372     OpNot = 200,\r
1373     OpBitFieldInsert = 201,\r
1374     OpBitFieldSExtract = 202,\r
1375     OpBitFieldUExtract = 203,\r
1376     OpBitReverse = 204,\r
1377     OpBitCount = 205,\r
1378     OpDPdx = 207,\r
1379     OpDPdy = 208,\r
1380     OpFwidth = 209,\r
1381     OpDPdxFine = 210,\r
1382     OpDPdyFine = 211,\r
1383     OpFwidthFine = 212,\r
1384     OpDPdxCoarse = 213,\r
1385     OpDPdyCoarse = 214,\r
1386     OpFwidthCoarse = 215,\r
1387     OpEmitVertex = 218,\r
1388     OpEndPrimitive = 219,\r
1389     OpEmitStreamVertex = 220,\r
1390     OpEndStreamPrimitive = 221,\r
1391     OpControlBarrier = 224,\r
1392     OpMemoryBarrier = 225,\r
1393     OpAtomicLoad = 227,\r
1394     OpAtomicStore = 228,\r
1395     OpAtomicExchange = 229,\r
1396     OpAtomicCompareExchange = 230,\r
1397     OpAtomicCompareExchangeWeak = 231,\r
1398     OpAtomicIIncrement = 232,\r
1399     OpAtomicIDecrement = 233,\r
1400     OpAtomicIAdd = 234,\r
1401     OpAtomicISub = 235,\r
1402     OpAtomicSMin = 236,\r
1403     OpAtomicUMin = 237,\r
1404     OpAtomicSMax = 238,\r
1405     OpAtomicUMax = 239,\r
1406     OpAtomicAnd = 240,\r
1407     OpAtomicOr = 241,\r
1408     OpAtomicXor = 242,\r
1409     OpPhi = 245,\r
1410     OpLoopMerge = 246,\r
1411     OpSelectionMerge = 247,\r
1412     OpLabel = 248,\r
1413     OpBranch = 249,\r
1414     OpBranchConditional = 250,\r
1415     OpSwitch = 251,\r
1416     OpKill = 252,\r
1417     OpReturn = 253,\r
1418     OpReturnValue = 254,\r
1419     OpUnreachable = 255,\r
1420     OpLifetimeStart = 256,\r
1421     OpLifetimeStop = 257,\r
1422     OpGroupAsyncCopy = 259,\r
1423     OpGroupWaitEvents = 260,\r
1424     OpGroupAll = 261,\r
1425     OpGroupAny = 262,\r
1426     OpGroupBroadcast = 263,\r
1427     OpGroupIAdd = 264,\r
1428     OpGroupFAdd = 265,\r
1429     OpGroupFMin = 266,\r
1430     OpGroupUMin = 267,\r
1431     OpGroupSMin = 268,\r
1432     OpGroupFMax = 269,\r
1433     OpGroupUMax = 270,\r
1434     OpGroupSMax = 271,\r
1435     OpReadPipe = 274,\r
1436     OpWritePipe = 275,\r
1437     OpReservedReadPipe = 276,\r
1438     OpReservedWritePipe = 277,\r
1439     OpReserveReadPipePackets = 278,\r
1440     OpReserveWritePipePackets = 279,\r
1441     OpCommitReadPipe = 280,\r
1442     OpCommitWritePipe = 281,\r
1443     OpIsValidReserveId = 282,\r
1444     OpGetNumPipePackets = 283,\r
1445     OpGetMaxPipePackets = 284,\r
1446     OpGroupReserveReadPipePackets = 285,\r
1447     OpGroupReserveWritePipePackets = 286,\r
1448     OpGroupCommitReadPipe = 287,\r
1449     OpGroupCommitWritePipe = 288,\r
1450     OpEnqueueMarker = 291,\r
1451     OpEnqueueKernel = 292,\r
1452     OpGetKernelNDrangeSubGroupCount = 293,\r
1453     OpGetKernelNDrangeMaxSubGroupSize = 294,\r
1454     OpGetKernelWorkGroupSize = 295,\r
1455     OpGetKernelPreferredWorkGroupSizeMultiple = 296,\r
1456     OpRetainEvent = 297,\r
1457     OpReleaseEvent = 298,\r
1458     OpCreateUserEvent = 299,\r
1459     OpIsValidEvent = 300,\r
1460     OpSetUserEventStatus = 301,\r
1461     OpCaptureEventProfilingInfo = 302,\r
1462     OpGetDefaultQueue = 303,\r
1463     OpBuildNDRange = 304,\r
1464     OpImageSparseSampleImplicitLod = 305,\r
1465     OpImageSparseSampleExplicitLod = 306,\r
1466     OpImageSparseSampleDrefImplicitLod = 307,\r
1467     OpImageSparseSampleDrefExplicitLod = 308,\r
1468     OpImageSparseSampleProjImplicitLod = 309,\r
1469     OpImageSparseSampleProjExplicitLod = 310,\r
1470     OpImageSparseSampleProjDrefImplicitLod = 311,\r
1471     OpImageSparseSampleProjDrefExplicitLod = 312,\r
1472     OpImageSparseFetch = 313,\r
1473     OpImageSparseGather = 314,\r
1474     OpImageSparseDrefGather = 315,\r
1475     OpImageSparseTexelsResident = 316,\r
1476     OpNoLine = 317,\r
1477     OpAtomicFlagTestAndSet = 318,\r
1478     OpAtomicFlagClear = 319,\r
1479     OpImageSparseRead = 320,\r
1480     OpSizeOf = 321,\r
1481     OpTypePipeStorage = 322,\r
1482     OpConstantPipeStorage = 323,\r
1483     OpCreatePipeFromPipeStorage = 324,\r
1484     OpGetKernelLocalSizeForSubgroupCount = 325,\r
1485     OpGetKernelMaxNumSubgroups = 326,\r
1486     OpTypeNamedBarrier = 327,\r
1487     OpNamedBarrierInitialize = 328,\r
1488     OpMemoryNamedBarrier = 329,\r
1489     OpModuleProcessed = 330,\r
1490     OpExecutionModeId = 331,\r
1491     OpDecorateId = 332,\r
1492     OpGroupNonUniformElect = 333,\r
1493     OpGroupNonUniformAll = 334,\r
1494     OpGroupNonUniformAny = 335,\r
1495     OpGroupNonUniformAllEqual = 336,\r
1496     OpGroupNonUniformBroadcast = 337,\r
1497     OpGroupNonUniformBroadcastFirst = 338,\r
1498     OpGroupNonUniformBallot = 339,\r
1499     OpGroupNonUniformInverseBallot = 340,\r
1500     OpGroupNonUniformBallotBitExtract = 341,\r
1501     OpGroupNonUniformBallotBitCount = 342,\r
1502     OpGroupNonUniformBallotFindLSB = 343,\r
1503     OpGroupNonUniformBallotFindMSB = 344,\r
1504     OpGroupNonUniformShuffle = 345,\r
1505     OpGroupNonUniformShuffleXor = 346,\r
1506     OpGroupNonUniformShuffleUp = 347,\r
1507     OpGroupNonUniformShuffleDown = 348,\r
1508     OpGroupNonUniformIAdd = 349,\r
1509     OpGroupNonUniformFAdd = 350,\r
1510     OpGroupNonUniformIMul = 351,\r
1511     OpGroupNonUniformFMul = 352,\r
1512     OpGroupNonUniformSMin = 353,\r
1513     OpGroupNonUniformUMin = 354,\r
1514     OpGroupNonUniformFMin = 355,\r
1515     OpGroupNonUniformSMax = 356,\r
1516     OpGroupNonUniformUMax = 357,\r
1517     OpGroupNonUniformFMax = 358,\r
1518     OpGroupNonUniformBitwiseAnd = 359,\r
1519     OpGroupNonUniformBitwiseOr = 360,\r
1520     OpGroupNonUniformBitwiseXor = 361,\r
1521     OpGroupNonUniformLogicalAnd = 362,\r
1522     OpGroupNonUniformLogicalOr = 363,\r
1523     OpGroupNonUniformLogicalXor = 364,\r
1524     OpGroupNonUniformQuadBroadcast = 365,\r
1525     OpGroupNonUniformQuadSwap = 366,\r
1526     OpCopyLogical = 400,\r
1527     OpPtrEqual = 401,\r
1528     OpPtrNotEqual = 402,\r
1529     OpPtrDiff = 403,\r
1530     OpTerminateInvocation = 4416,\r
1531     OpSubgroupBallotKHR = 4421,\r
1532     OpSubgroupFirstInvocationKHR = 4422,\r
1533     OpSubgroupAllKHR = 4428,\r
1534     OpSubgroupAnyKHR = 4429,\r
1535     OpSubgroupAllEqualKHR = 4430,\r
1536     OpSubgroupReadInvocationKHR = 4432,\r
1537     OpTraceRayKHR = 4445,\r
1538     OpExecuteCallableKHR = 4446,\r
1539     OpConvertUToAccelerationStructureKHR = 4447,\r
1540     OpIgnoreIntersectionKHR = 4448,\r
1541     OpTerminateRayKHR = 4449,\r
1542     OpSDot = 4450,\r
1543     OpSDotKHR = 4450,\r
1544     OpUDot = 4451,\r
1545     OpUDotKHR = 4451,\r
1546     OpSUDot = 4452,\r
1547     OpSUDotKHR = 4452,\r
1548     OpSDotAccSat = 4453,\r
1549     OpSDotAccSatKHR = 4453,\r
1550     OpUDotAccSat = 4454,\r
1551     OpUDotAccSatKHR = 4454,\r
1552     OpSUDotAccSat = 4455,\r
1553     OpSUDotAccSatKHR = 4455,\r
1554     OpTypeRayQueryKHR = 4472,\r
1555     OpRayQueryInitializeKHR = 4473,\r
1556     OpRayQueryTerminateKHR = 4474,\r
1557     OpRayQueryGenerateIntersectionKHR = 4475,\r
1558     OpRayQueryConfirmIntersectionKHR = 4476,\r
1559     OpRayQueryProceedKHR = 4477,\r
1560     OpRayQueryGetIntersectionTypeKHR = 4479,\r
1561     OpGroupIAddNonUniformAMD = 5000,\r
1562     OpGroupFAddNonUniformAMD = 5001,\r
1563     OpGroupFMinNonUniformAMD = 5002,\r
1564     OpGroupUMinNonUniformAMD = 5003,\r
1565     OpGroupSMinNonUniformAMD = 5004,\r
1566     OpGroupFMaxNonUniformAMD = 5005,\r
1567     OpGroupUMaxNonUniformAMD = 5006,\r
1568     OpGroupSMaxNonUniformAMD = 5007,\r
1569     OpFragmentMaskFetchAMD = 5011,\r
1570     OpFragmentFetchAMD = 5012,\r
1571     OpReadClockKHR = 5056,\r
1572     OpImageSampleFootprintNV = 5283,\r
1573     OpGroupNonUniformPartitionNV = 5296,\r
1574     OpWritePackedPrimitiveIndices4x8NV = 5299,\r
1575     OpReportIntersectionKHR = 5334,\r
1576     OpReportIntersectionNV = 5334,\r
1577     OpIgnoreIntersectionNV = 5335,\r
1578     OpTerminateRayNV = 5336,\r
1579     OpTraceNV = 5337,\r
1580     OpTraceMotionNV = 5338,\r
1581     OpTraceRayMotionNV = 5339,\r
1582     OpTypeAccelerationStructureKHR = 5341,\r
1583     OpTypeAccelerationStructureNV = 5341,\r
1584     OpExecuteCallableNV = 5344,\r
1585     OpTypeCooperativeMatrixNV = 5358,\r
1586     OpCooperativeMatrixLoadNV = 5359,\r
1587     OpCooperativeMatrixStoreNV = 5360,\r
1588     OpCooperativeMatrixMulAddNV = 5361,\r
1589     OpCooperativeMatrixLengthNV = 5362,\r
1590     OpBeginInvocationInterlockEXT = 5364,\r
1591     OpEndInvocationInterlockEXT = 5365,\r
1592     OpDemoteToHelperInvocation = 5380,\r
1593     OpDemoteToHelperInvocationEXT = 5380,\r
1594     OpIsHelperInvocationEXT = 5381,\r
1595     OpConvertUToImageNV = 5391,\r
1596     OpConvertUToSamplerNV = 5392,\r
1597     OpConvertImageToUNV = 5393,\r
1598     OpConvertSamplerToUNV = 5394,\r
1599     OpConvertUToSampledImageNV = 5395,\r
1600     OpConvertSampledImageToUNV = 5396,\r
1601     OpSamplerImageAddressingModeNV = 5397,\r
1602     OpSubgroupShuffleINTEL = 5571,\r
1603     OpSubgroupShuffleDownINTEL = 5572,\r
1604     OpSubgroupShuffleUpINTEL = 5573,\r
1605     OpSubgroupShuffleXorINTEL = 5574,\r
1606     OpSubgroupBlockReadINTEL = 5575,\r
1607     OpSubgroupBlockWriteINTEL = 5576,\r
1608     OpSubgroupImageBlockReadINTEL = 5577,\r
1609     OpSubgroupImageBlockWriteINTEL = 5578,\r
1610     OpSubgroupImageMediaBlockReadINTEL = 5580,\r
1611     OpSubgroupImageMediaBlockWriteINTEL = 5581,\r
1612     OpUCountLeadingZerosINTEL = 5585,\r
1613     OpUCountTrailingZerosINTEL = 5586,\r
1614     OpAbsISubINTEL = 5587,\r
1615     OpAbsUSubINTEL = 5588,\r
1616     OpIAddSatINTEL = 5589,\r
1617     OpUAddSatINTEL = 5590,\r
1618     OpIAverageINTEL = 5591,\r
1619     OpUAverageINTEL = 5592,\r
1620     OpIAverageRoundedINTEL = 5593,\r
1621     OpUAverageRoundedINTEL = 5594,\r
1622     OpISubSatINTEL = 5595,\r
1623     OpUSubSatINTEL = 5596,\r
1624     OpIMul32x16INTEL = 5597,\r
1625     OpUMul32x16INTEL = 5598,\r
1626     OpConstantFunctionPointerINTEL = 5600,\r
1627     OpFunctionPointerCallINTEL = 5601,\r
1628     OpAsmTargetINTEL = 5609,\r
1629     OpAsmINTEL = 5610,\r
1630     OpAsmCallINTEL = 5611,\r
1631     OpAtomicFMinEXT = 5614,\r
1632     OpAtomicFMaxEXT = 5615,\r
1633     OpAssumeTrueKHR = 5630,\r
1634     OpExpectKHR = 5631,\r
1635     OpDecorateString = 5632,\r
1636     OpDecorateStringGOOGLE = 5632,\r
1637     OpMemberDecorateString = 5633,\r
1638     OpMemberDecorateStringGOOGLE = 5633,\r
1639     OpVmeImageINTEL = 5699,\r
1640     OpTypeVmeImageINTEL = 5700,\r
1641     OpTypeAvcImePayloadINTEL = 5701,\r
1642     OpTypeAvcRefPayloadINTEL = 5702,\r
1643     OpTypeAvcSicPayloadINTEL = 5703,\r
1644     OpTypeAvcMcePayloadINTEL = 5704,\r
1645     OpTypeAvcMceResultINTEL = 5705,\r
1646     OpTypeAvcImeResultINTEL = 5706,\r
1647     OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,\r
1648     OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,\r
1649     OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,\r
1650     OpTypeAvcImeDualReferenceStreaminINTEL = 5710,\r
1651     OpTypeAvcRefResultINTEL = 5711,\r
1652     OpTypeAvcSicResultINTEL = 5712,\r
1653     OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,\r
1654     OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,\r
1655     OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,\r
1656     OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,\r
1657     OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,\r
1658     OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,\r
1659     OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,\r
1660     OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,\r
1661     OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,\r
1662     OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,\r
1663     OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,\r
1664     OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,\r
1665     OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,\r
1666     OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,\r
1667     OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,\r
1668     OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,\r
1669     OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,\r
1670     OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,\r
1671     OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,\r
1672     OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,\r
1673     OpSubgroupAvcMceConvertToImeResultINTEL = 5733,\r
1674     OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,\r
1675     OpSubgroupAvcMceConvertToRefResultINTEL = 5735,\r
1676     OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,\r
1677     OpSubgroupAvcMceConvertToSicResultINTEL = 5737,\r
1678     OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,\r
1679     OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,\r
1680     OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,\r
1681     OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,\r
1682     OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,\r
1683     OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,\r
1684     OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,\r
1685     OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,\r
1686     OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,\r
1687     OpSubgroupAvcImeInitializeINTEL = 5747,\r
1688     OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,\r
1689     OpSubgroupAvcImeSetDualReferenceINTEL = 5749,\r
1690     OpSubgroupAvcImeRefWindowSizeINTEL = 5750,\r
1691     OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,\r
1692     OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,\r
1693     OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,\r
1694     OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,\r
1695     OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,\r
1696     OpSubgroupAvcImeSetWeightedSadINTEL = 5756,\r
1697     OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,\r
1698     OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,\r
1699     OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,\r
1700     OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,\r
1701     OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,\r
1702     OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,\r
1703     OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,\r
1704     OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,\r
1705     OpSubgroupAvcImeConvertToMceResultINTEL = 5765,\r
1706     OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,\r
1707     OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,\r
1708     OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,\r
1709     OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,\r
1710     OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,\r
1711     OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,\r
1712     OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,\r
1713     OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,\r
1714     OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,\r
1715     OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,\r
1716     OpSubgroupAvcImeGetBorderReachedINTEL = 5776,\r
1717     OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,\r
1718     OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,\r
1719     OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,\r
1720     OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,\r
1721     OpSubgroupAvcFmeInitializeINTEL = 5781,\r
1722     OpSubgroupAvcBmeInitializeINTEL = 5782,\r
1723     OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,\r
1724     OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,\r
1725     OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,\r
1726     OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,\r
1727     OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,\r
1728     OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,\r
1729     OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,\r
1730     OpSubgroupAvcRefConvertToMceResultINTEL = 5790,\r
1731     OpSubgroupAvcSicInitializeINTEL = 5791,\r
1732     OpSubgroupAvcSicConfigureSkcINTEL = 5792,\r
1733     OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,\r
1734     OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,\r
1735     OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,\r
1736     OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,\r
1737     OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,\r
1738     OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,\r
1739     OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,\r
1740     OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,\r
1741     OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,\r
1742     OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,\r
1743     OpSubgroupAvcSicEvaluateIpeINTEL = 5803,\r
1744     OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,\r
1745     OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,\r
1746     OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,\r
1747     OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,\r
1748     OpSubgroupAvcSicConvertToMceResultINTEL = 5808,\r
1749     OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,\r
1750     OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,\r
1751     OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,\r
1752     OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,\r
1753     OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,\r
1754     OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,\r
1755     OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,\r
1756     OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,\r
1757     OpVariableLengthArrayINTEL = 5818,\r
1758     OpSaveMemoryINTEL = 5819,\r
1759     OpRestoreMemoryINTEL = 5820,\r
1760     OpArbitraryFloatSinCosPiINTEL = 5840,\r
1761     OpArbitraryFloatCastINTEL = 5841,\r
1762     OpArbitraryFloatCastFromIntINTEL = 5842,\r
1763     OpArbitraryFloatCastToIntINTEL = 5843,\r
1764     OpArbitraryFloatAddINTEL = 5846,\r
1765     OpArbitraryFloatSubINTEL = 5847,\r
1766     OpArbitraryFloatMulINTEL = 5848,\r
1767     OpArbitraryFloatDivINTEL = 5849,\r
1768     OpArbitraryFloatGTINTEL = 5850,\r
1769     OpArbitraryFloatGEINTEL = 5851,\r
1770     OpArbitraryFloatLTINTEL = 5852,\r
1771     OpArbitraryFloatLEINTEL = 5853,\r
1772     OpArbitraryFloatEQINTEL = 5854,\r
1773     OpArbitraryFloatRecipINTEL = 5855,\r
1774     OpArbitraryFloatRSqrtINTEL = 5856,\r
1775     OpArbitraryFloatCbrtINTEL = 5857,\r
1776     OpArbitraryFloatHypotINTEL = 5858,\r
1777     OpArbitraryFloatSqrtINTEL = 5859,\r
1778     OpArbitraryFloatLogINTEL = 5860,\r
1779     OpArbitraryFloatLog2INTEL = 5861,\r
1780     OpArbitraryFloatLog10INTEL = 5862,\r
1781     OpArbitraryFloatLog1pINTEL = 5863,\r
1782     OpArbitraryFloatExpINTEL = 5864,\r
1783     OpArbitraryFloatExp2INTEL = 5865,\r
1784     OpArbitraryFloatExp10INTEL = 5866,\r
1785     OpArbitraryFloatExpm1INTEL = 5867,\r
1786     OpArbitraryFloatSinINTEL = 5868,\r
1787     OpArbitraryFloatCosINTEL = 5869,\r
1788     OpArbitraryFloatSinCosINTEL = 5870,\r
1789     OpArbitraryFloatSinPiINTEL = 5871,\r
1790     OpArbitraryFloatCosPiINTEL = 5872,\r
1791     OpArbitraryFloatASinINTEL = 5873,\r
1792     OpArbitraryFloatASinPiINTEL = 5874,\r
1793     OpArbitraryFloatACosINTEL = 5875,\r
1794     OpArbitraryFloatACosPiINTEL = 5876,\r
1795     OpArbitraryFloatATanINTEL = 5877,\r
1796     OpArbitraryFloatATanPiINTEL = 5878,\r
1797     OpArbitraryFloatATan2INTEL = 5879,\r
1798     OpArbitraryFloatPowINTEL = 5880,\r
1799     OpArbitraryFloatPowRINTEL = 5881,\r
1800     OpArbitraryFloatPowNINTEL = 5882,\r
1801     OpLoopControlINTEL = 5887,\r
1802     OpFixedSqrtINTEL = 5923,\r
1803     OpFixedRecipINTEL = 5924,\r
1804     OpFixedRsqrtINTEL = 5925,\r
1805     OpFixedSinINTEL = 5926,\r
1806     OpFixedCosINTEL = 5927,\r
1807     OpFixedSinCosINTEL = 5928,\r
1808     OpFixedSinPiINTEL = 5929,\r
1809     OpFixedCosPiINTEL = 5930,\r
1810     OpFixedSinCosPiINTEL = 5931,\r
1811     OpFixedLogINTEL = 5932,\r
1812     OpFixedExpINTEL = 5933,\r
1813     OpPtrCastToCrossWorkgroupINTEL = 5934,\r
1814     OpCrossWorkgroupCastToPtrINTEL = 5938,\r
1815     OpReadPipeBlockingINTEL = 5946,\r
1816     OpWritePipeBlockingINTEL = 5947,\r
1817     OpFPGARegINTEL = 5949,\r
1818     OpRayQueryGetRayTMinKHR = 6016,\r
1819     OpRayQueryGetRayFlagsKHR = 6017,\r
1820     OpRayQueryGetIntersectionTKHR = 6018,\r
1821     OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,\r
1822     OpRayQueryGetIntersectionInstanceIdKHR = 6020,\r
1823     OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,\r
1824     OpRayQueryGetIntersectionGeometryIndexKHR = 6022,\r
1825     OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,\r
1826     OpRayQueryGetIntersectionBarycentricsKHR = 6024,\r
1827     OpRayQueryGetIntersectionFrontFaceKHR = 6025,\r
1828     OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,\r
1829     OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,\r
1830     OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,\r
1831     OpRayQueryGetWorldRayDirectionKHR = 6029,\r
1832     OpRayQueryGetWorldRayOriginKHR = 6030,\r
1833     OpRayQueryGetIntersectionObjectToWorldKHR = 6031,\r
1834     OpRayQueryGetIntersectionWorldToObjectKHR = 6032,\r
1835     OpAtomicFAddEXT = 6035,\r
1836     OpTypeBufferSurfaceINTEL = 6086,\r
1837     OpTypeStructContinuedINTEL = 6090,\r
1838     OpConstantCompositeContinuedINTEL = 6091,\r
1839     OpSpecConstantCompositeContinuedINTEL = 6092,\r
1840     OpMax = 0x7fffffff,\r
1841 };\r
1842 \r
1843 #ifdef SPV_ENABLE_UTILITY_CODE\r
1844 inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {\r
1845     *hasResult = *hasResultType = false;\r
1846     switch (opcode) {\r
1847     default: /* unknown opcode */ break;\r
1848     case OpNop: *hasResult = false; *hasResultType = false; break;\r
1849     case OpUndef: *hasResult = true; *hasResultType = true; break;\r
1850     case OpSourceContinued: *hasResult = false; *hasResultType = false; break;\r
1851     case OpSource: *hasResult = false; *hasResultType = false; break;\r
1852     case OpSourceExtension: *hasResult = false; *hasResultType = false; break;\r
1853     case OpName: *hasResult = false; *hasResultType = false; break;\r
1854     case OpMemberName: *hasResult = false; *hasResultType = false; break;\r
1855     case OpString: *hasResult = true; *hasResultType = false; break;\r
1856     case OpLine: *hasResult = false; *hasResultType = false; break;\r
1857     case OpExtension: *hasResult = false; *hasResultType = false; break;\r
1858     case OpExtInstImport: *hasResult = true; *hasResultType = false; break;\r
1859     case OpExtInst: *hasResult = true; *hasResultType = true; break;\r
1860     case OpMemoryModel: *hasResult = false; *hasResultType = false; break;\r
1861     case OpEntryPoint: *hasResult = false; *hasResultType = false; break;\r
1862     case OpExecutionMode: *hasResult = false; *hasResultType = false; break;\r
1863     case OpCapability: *hasResult = false; *hasResultType = false; break;\r
1864     case OpTypeVoid: *hasResult = true; *hasResultType = false; break;\r
1865     case OpTypeBool: *hasResult = true; *hasResultType = false; break;\r
1866     case OpTypeInt: *hasResult = true; *hasResultType = false; break;\r
1867     case OpTypeFloat: *hasResult = true; *hasResultType = false; break;\r
1868     case OpTypeVector: *hasResult = true; *hasResultType = false; break;\r
1869     case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;\r
1870     case OpTypeImage: *hasResult = true; *hasResultType = false; break;\r
1871     case OpTypeSampler: *hasResult = true; *hasResultType = false; break;\r
1872     case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;\r
1873     case OpTypeArray: *hasResult = true; *hasResultType = false; break;\r
1874     case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;\r
1875     case OpTypeStruct: *hasResult = true; *hasResultType = false; break;\r
1876     case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;\r
1877     case OpTypePointer: *hasResult = true; *hasResultType = false; break;\r
1878     case OpTypeFunction: *hasResult = true; *hasResultType = false; break;\r
1879     case OpTypeEvent: *hasResult = true; *hasResultType = false; break;\r
1880     case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;\r
1881     case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;\r
1882     case OpTypeQueue: *hasResult = true; *hasResultType = false; break;\r
1883     case OpTypePipe: *hasResult = true; *hasResultType = false; break;\r
1884     case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;\r
1885     case OpConstantTrue: *hasResult = true; *hasResultType = true; break;\r
1886     case OpConstantFalse: *hasResult = true; *hasResultType = true; break;\r
1887     case OpConstant: *hasResult = true; *hasResultType = true; break;\r
1888     case OpConstantComposite: *hasResult = true; *hasResultType = true; break;\r
1889     case OpConstantSampler: *hasResult = true; *hasResultType = true; break;\r
1890     case OpConstantNull: *hasResult = true; *hasResultType = true; break;\r
1891     case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;\r
1892     case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;\r
1893     case OpSpecConstant: *hasResult = true; *hasResultType = true; break;\r
1894     case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;\r
1895     case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;\r
1896     case OpFunction: *hasResult = true; *hasResultType = true; break;\r
1897     case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;\r
1898     case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;\r
1899     case OpFunctionCall: *hasResult = true; *hasResultType = true; break;\r
1900     case OpVariable: *hasResult = true; *hasResultType = true; break;\r
1901     case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;\r
1902     case OpLoad: *hasResult = true; *hasResultType = true; break;\r
1903     case OpStore: *hasResult = false; *hasResultType = false; break;\r
1904     case OpCopyMemory: *hasResult = false; *hasResultType = false; break;\r
1905     case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;\r
1906     case OpAccessChain: *hasResult = true; *hasResultType = true; break;\r
1907     case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;\r
1908     case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;\r
1909     case OpArrayLength: *hasResult = true; *hasResultType = true; break;\r
1910     case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;\r
1911     case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;\r
1912     case OpDecorate: *hasResult = false; *hasResultType = false; break;\r
1913     case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;\r
1914     case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;\r
1915     case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;\r
1916     case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;\r
1917     case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;\r
1918     case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;\r
1919     case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;\r
1920     case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;\r
1921     case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;\r
1922     case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;\r
1923     case OpCopyObject: *hasResult = true; *hasResultType = true; break;\r
1924     case OpTranspose: *hasResult = true; *hasResultType = true; break;\r
1925     case OpSampledImage: *hasResult = true; *hasResultType = true; break;\r
1926     case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;\r
1927     case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;\r
1928     case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;\r
1929     case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;\r
1930     case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;\r
1931     case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;\r
1932     case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;\r
1933     case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;\r
1934     case OpImageFetch: *hasResult = true; *hasResultType = true; break;\r
1935     case OpImageGather: *hasResult = true; *hasResultType = true; break;\r
1936     case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;\r
1937     case OpImageRead: *hasResult = true; *hasResultType = true; break;\r
1938     case OpImageWrite: *hasResult = false; *hasResultType = false; break;\r
1939     case OpImage: *hasResult = true; *hasResultType = true; break;\r
1940     case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;\r
1941     case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;\r
1942     case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;\r
1943     case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;\r
1944     case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;\r
1945     case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;\r
1946     case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;\r
1947     case OpConvertFToU: *hasResult = true; *hasResultType = true; break;\r
1948     case OpConvertFToS: *hasResult = true; *hasResultType = true; break;\r
1949     case OpConvertSToF: *hasResult = true; *hasResultType = true; break;\r
1950     case OpConvertUToF: *hasResult = true; *hasResultType = true; break;\r
1951     case OpUConvert: *hasResult = true; *hasResultType = true; break;\r
1952     case OpSConvert: *hasResult = true; *hasResultType = true; break;\r
1953     case OpFConvert: *hasResult = true; *hasResultType = true; break;\r
1954     case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;\r
1955     case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;\r
1956     case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;\r
1957     case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;\r
1958     case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;\r
1959     case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;\r
1960     case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;\r
1961     case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;\r
1962     case OpBitcast: *hasResult = true; *hasResultType = true; break;\r
1963     case OpSNegate: *hasResult = true; *hasResultType = true; break;\r
1964     case OpFNegate: *hasResult = true; *hasResultType = true; break;\r
1965     case OpIAdd: *hasResult = true; *hasResultType = true; break;\r
1966     case OpFAdd: *hasResult = true; *hasResultType = true; break;\r
1967     case OpISub: *hasResult = true; *hasResultType = true; break;\r
1968     case OpFSub: *hasResult = true; *hasResultType = true; break;\r
1969     case OpIMul: *hasResult = true; *hasResultType = true; break;\r
1970     case OpFMul: *hasResult = true; *hasResultType = true; break;\r
1971     case OpUDiv: *hasResult = true; *hasResultType = true; break;\r
1972     case OpSDiv: *hasResult = true; *hasResultType = true; break;\r
1973     case OpFDiv: *hasResult = true; *hasResultType = true; break;\r
1974     case OpUMod: *hasResult = true; *hasResultType = true; break;\r
1975     case OpSRem: *hasResult = true; *hasResultType = true; break;\r
1976     case OpSMod: *hasResult = true; *hasResultType = true; break;\r
1977     case OpFRem: *hasResult = true; *hasResultType = true; break;\r
1978     case OpFMod: *hasResult = true; *hasResultType = true; break;\r
1979     case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;\r
1980     case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;\r
1981     case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;\r
1982     case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;\r
1983     case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;\r
1984     case OpOuterProduct: *hasResult = true; *hasResultType = true; break;\r
1985     case OpDot: *hasResult = true; *hasResultType = true; break;\r
1986     case OpIAddCarry: *hasResult = true; *hasResultType = true; break;\r
1987     case OpISubBorrow: *hasResult = true; *hasResultType = true; break;\r
1988     case OpUMulExtended: *hasResult = true; *hasResultType = true; break;\r
1989     case OpSMulExtended: *hasResult = true; *hasResultType = true; break;\r
1990     case OpAny: *hasResult = true; *hasResultType = true; break;\r
1991     case OpAll: *hasResult = true; *hasResultType = true; break;\r
1992     case OpIsNan: *hasResult = true; *hasResultType = true; break;\r
1993     case OpIsInf: *hasResult = true; *hasResultType = true; break;\r
1994     case OpIsFinite: *hasResult = true; *hasResultType = true; break;\r
1995     case OpIsNormal: *hasResult = true; *hasResultType = true; break;\r
1996     case OpSignBitSet: *hasResult = true; *hasResultType = true; break;\r
1997     case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;\r
1998     case OpOrdered: *hasResult = true; *hasResultType = true; break;\r
1999     case OpUnordered: *hasResult = true; *hasResultType = true; break;\r
2000     case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;\r
2001     case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;\r
2002     case OpLogicalOr: *hasResult = true; *hasResultType = true; break;\r
2003     case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;\r
2004     case OpLogicalNot: *hasResult = true; *hasResultType = true; break;\r
2005     case OpSelect: *hasResult = true; *hasResultType = true; break;\r
2006     case OpIEqual: *hasResult = true; *hasResultType = true; break;\r
2007     case OpINotEqual: *hasResult = true; *hasResultType = true; break;\r
2008     case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;\r
2009     case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;\r
2010     case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;\r
2011     case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;\r
2012     case OpULessThan: *hasResult = true; *hasResultType = true; break;\r
2013     case OpSLessThan: *hasResult = true; *hasResultType = true; break;\r
2014     case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;\r
2015     case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;\r
2016     case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;\r
2017     case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;\r
2018     case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;\r
2019     case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;\r
2020     case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;\r
2021     case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;\r
2022     case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;\r
2023     case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;\r
2024     case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;\r
2025     case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;\r
2026     case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;\r
2027     case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;\r
2028     case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;\r
2029     case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;\r
2030     case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;\r
2031     case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;\r
2032     case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;\r
2033     case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;\r
2034     case OpNot: *hasResult = true; *hasResultType = true; break;\r
2035     case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;\r
2036     case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;\r
2037     case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;\r
2038     case OpBitReverse: *hasResult = true; *hasResultType = true; break;\r
2039     case OpBitCount: *hasResult = true; *hasResultType = true; break;\r
2040     case OpDPdx: *hasResult = true; *hasResultType = true; break;\r
2041     case OpDPdy: *hasResult = true; *hasResultType = true; break;\r
2042     case OpFwidth: *hasResult = true; *hasResultType = true; break;\r
2043     case OpDPdxFine: *hasResult = true; *hasResultType = true; break;\r
2044     case OpDPdyFine: *hasResult = true; *hasResultType = true; break;\r
2045     case OpFwidthFine: *hasResult = true; *hasResultType = true; break;\r
2046     case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;\r
2047     case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;\r
2048     case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;\r
2049     case OpEmitVertex: *hasResult = false; *hasResultType = false; break;\r
2050     case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;\r
2051     case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;\r
2052     case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;\r
2053     case OpControlBarrier: *hasResult = false; *hasResultType = false; break;\r
2054     case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;\r
2055     case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;\r
2056     case OpAtomicStore: *hasResult = false; *hasResultType = false; break;\r
2057     case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;\r
2058     case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;\r
2059     case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;\r
2060     case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;\r
2061     case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;\r
2062     case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;\r
2063     case OpAtomicISub: *hasResult = true; *hasResultType = true; break;\r
2064     case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;\r
2065     case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;\r
2066     case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;\r
2067     case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;\r
2068     case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;\r
2069     case OpAtomicOr: *hasResult = true; *hasResultType = true; break;\r
2070     case OpAtomicXor: *hasResult = true; *hasResultType = true; break;\r
2071     case OpPhi: *hasResult = true; *hasResultType = true; break;\r
2072     case OpLoopMerge: *hasResult = false; *hasResultType = false; break;\r
2073     case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;\r
2074     case OpLabel: *hasResult = true; *hasResultType = false; break;\r
2075     case OpBranch: *hasResult = false; *hasResultType = false; break;\r
2076     case OpBranchConditional: *hasResult = false; *hasResultType = false; break;\r
2077     case OpSwitch: *hasResult = false; *hasResultType = false; break;\r
2078     case OpKill: *hasResult = false; *hasResultType = false; break;\r
2079     case OpReturn: *hasResult = false; *hasResultType = false; break;\r
2080     case OpReturnValue: *hasResult = false; *hasResultType = false; break;\r
2081     case OpUnreachable: *hasResult = false; *hasResultType = false; break;\r
2082     case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;\r
2083     case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;\r
2084     case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;\r
2085     case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;\r
2086     case OpGroupAll: *hasResult = true; *hasResultType = true; break;\r
2087     case OpGroupAny: *hasResult = true; *hasResultType = true; break;\r
2088     case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;\r
2089     case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;\r
2090     case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;\r
2091     case OpGroupFMin: *hasResult = true; *hasResultType = true; break;\r
2092     case OpGroupUMin: *hasResult = true; *hasResultType = true; break;\r
2093     case OpGroupSMin: *hasResult = true; *hasResultType = true; break;\r
2094     case OpGroupFMax: *hasResult = true; *hasResultType = true; break;\r
2095     case OpGroupUMax: *hasResult = true; *hasResultType = true; break;\r
2096     case OpGroupSMax: *hasResult = true; *hasResultType = true; break;\r
2097     case OpReadPipe: *hasResult = true; *hasResultType = true; break;\r
2098     case OpWritePipe: *hasResult = true; *hasResultType = true; break;\r
2099     case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;\r
2100     case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;\r
2101     case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;\r
2102     case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;\r
2103     case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;\r
2104     case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;\r
2105     case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;\r
2106     case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;\r
2107     case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;\r
2108     case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;\r
2109     case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;\r
2110     case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;\r
2111     case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;\r
2112     case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;\r
2113     case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;\r
2114     case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;\r
2115     case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;\r
2116     case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;\r
2117     case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;\r
2118     case OpRetainEvent: *hasResult = false; *hasResultType = false; break;\r
2119     case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;\r
2120     case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;\r
2121     case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;\r
2122     case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;\r
2123     case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;\r
2124     case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;\r
2125     case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;\r
2126     case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;\r
2127     case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;\r
2128     case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;\r
2129     case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;\r
2130     case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;\r
2131     case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;\r
2132     case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;\r
2133     case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;\r
2134     case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;\r
2135     case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;\r
2136     case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;\r
2137     case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;\r
2138     case OpNoLine: *hasResult = false; *hasResultType = false; break;\r
2139     case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;\r
2140     case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;\r
2141     case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;\r
2142     case OpSizeOf: *hasResult = true; *hasResultType = true; break;\r
2143     case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;\r
2144     case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;\r
2145     case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;\r
2146     case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;\r
2147     case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;\r
2148     case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;\r
2149     case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;\r
2150     case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;\r
2151     case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;\r
2152     case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;\r
2153     case OpDecorateId: *hasResult = false; *hasResultType = false; break;\r
2154     case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;\r
2155     case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;\r
2156     case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;\r
2157     case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;\r
2158     case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;\r
2159     case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;\r
2160     case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;\r
2161     case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;\r
2162     case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;\r
2163     case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;\r
2164     case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;\r
2165     case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;\r
2166     case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;\r
2167     case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;\r
2168     case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;\r
2169     case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;\r
2170     case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;\r
2171     case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;\r
2172     case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;\r
2173     case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;\r
2174     case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;\r
2175     case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;\r
2176     case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;\r
2177     case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;\r
2178     case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;\r
2179     case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;\r
2180     case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;\r
2181     case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;\r
2182     case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;\r
2183     case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;\r
2184     case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;\r
2185     case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;\r
2186     case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;\r
2187     case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;\r
2188     case OpCopyLogical: *hasResult = true; *hasResultType = true; break;\r
2189     case OpPtrEqual: *hasResult = true; *hasResultType = true; break;\r
2190     case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;\r
2191     case OpPtrDiff: *hasResult = true; *hasResultType = true; break;\r
2192     case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;\r
2193     case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;\r
2194     case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;\r
2195     case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;\r
2196     case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;\r
2197     case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;\r
2198     case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;\r
2199     case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;\r
2200     case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;\r
2201     case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;\r
2202     case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;\r
2203     case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;\r
2204     case OpSDot: *hasResult = true; *hasResultType = true; break;\r
2205     case OpUDot: *hasResult = true; *hasResultType = true; break;\r
2206     case OpSUDot: *hasResult = true; *hasResultType = true; break;\r
2207     case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;\r
2208     case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;\r
2209     case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;\r
2210     case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;\r
2211     case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;\r
2212     case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;\r
2213     case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;\r
2214     case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;\r
2215     case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;\r
2216     case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;\r
2217     case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
2218     case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
2219     case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
2220     case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
2221     case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
2222     case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
2223     case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
2224     case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
2225     case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;\r
2226     case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;\r
2227     case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;\r
2228     case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;\r
2229     case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;\r
2230     case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;\r
2231     case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;\r
2232     case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;\r
2233     case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;\r
2234     case OpTraceNV: *hasResult = false; *hasResultType = false; break;\r
2235     case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;\r
2236     case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;\r
2237     case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;\r
2238     case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;\r
2239     case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;\r
2240     case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;\r
2241     case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;\r
2242     case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;\r
2243     case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;\r
2244     case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;\r
2245     case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;\r
2246     case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;\r
2247     case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;\r
2248     case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;\r
2249     case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;\r
2250     case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;\r
2251     case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;\r
2252     case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;\r
2253     case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;\r
2254     case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;\r
2255     case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;\r
2256     case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;\r
2257     case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;\r
2258     case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;\r
2259     case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;\r
2260     case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;\r
2261     case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;\r
2262     case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;\r
2263     case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;\r
2264     case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;\r
2265     case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;\r
2266     case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;\r
2267     case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;\r
2268     case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;\r
2269     case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;\r
2270     case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;\r
2271     case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;\r
2272     case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;\r
2273     case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;\r
2274     case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;\r
2275     case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;\r
2276     case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;\r
2277     case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;\r
2278     case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;\r
2279     case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;\r
2280     case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;\r
2281     case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;\r
2282     case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;\r
2283     case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;\r
2284     case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;\r
2285     case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;\r
2286     case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;\r
2287     case OpExpectKHR: *hasResult = true; *hasResultType = true; break;\r
2288     case OpDecorateString: *hasResult = false; *hasResultType = false; break;\r
2289     case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;\r
2290     case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;\r
2291     case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;\r
2292     case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;\r
2293     case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;\r
2294     case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;\r
2295     case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;\r
2296     case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;\r
2297     case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;\r
2298     case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;\r
2299     case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;\r
2300     case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;\r
2301     case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;\r
2302     case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;\r
2303     case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;\r
2304     case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2305     case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2306     case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2307     case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2308     case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2309     case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2310     case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2311     case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;\r
2312     case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;\r
2313     case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;\r
2314     case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;\r
2315     case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;\r
2316     case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2317     case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2318     case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2319     case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;\r
2320     case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;\r
2321     case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;\r
2322     case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;\r
2323     case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
2324     case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;\r
2325     case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
2326     case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;\r
2327     case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
2328     case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;\r
2329     case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;\r
2330     case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;\r
2331     case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;\r
2332     case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;\r
2333     case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;\r
2334     case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;\r
2335     case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;\r
2336     case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;\r
2337     case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;\r
2338     case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;\r
2339     case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2340     case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2341     case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;\r
2342     case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;\r
2343     case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
2344     case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;\r
2345     case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;\r
2346     case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;\r
2347     case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;\r
2348     case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2349     case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2350     case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;\r
2351     case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;\r
2352     case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;\r
2353     case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;\r
2354     case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;\r
2355     case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;\r
2356     case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;\r
2357     case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;\r
2358     case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;\r
2359     case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;\r
2360     case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;\r
2361     case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;\r
2362     case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;\r
2363     case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;\r
2364     case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;\r
2365     case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;\r
2366     case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;\r
2367     case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;\r
2368     case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;\r
2369     case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;\r
2370     case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;\r
2371     case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;\r
2372     case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;\r
2373     case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;\r
2374     case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
2375     case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;\r
2376     case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;\r
2377     case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2378     case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2379     case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2380     case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;\r
2381     case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;\r
2382     case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;\r
2383     case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;\r
2384     case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;\r
2385     case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;\r
2386     case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;\r
2387     case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
2388     case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
2389     case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;\r
2390     case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;\r
2391     case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;\r
2392     case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;\r
2393     case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;\r
2394     case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;\r
2395     case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2396     case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2397     case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
2398     case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;\r
2399     case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;\r
2400     case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;\r
2401     case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;\r
2402     case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;\r
2403     case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;\r
2404     case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;\r
2405     case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;\r
2406     case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;\r
2407     case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;\r
2408     case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;\r
2409     case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;\r
2410     case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;\r
2411     case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
2412     case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;\r
2413     case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;\r
2414     case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;\r
2415     case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;\r
2416     case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;\r
2417     case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;\r
2418     case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;\r
2419     case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;\r
2420     case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;\r
2421     case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;\r
2422     case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;\r
2423     case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;\r
2424     case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;\r
2425     case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;\r
2426     case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;\r
2427     case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;\r
2428     case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;\r
2429     case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;\r
2430     case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;\r
2431     case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;\r
2432     case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;\r
2433     case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;\r
2434     case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;\r
2435     case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;\r
2436     case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;\r
2437     case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;\r
2438     case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;\r
2439     case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;\r
2440     case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;\r
2441     case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
2442     case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;\r
2443     case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;\r
2444     case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;\r
2445     case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
2446     case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;\r
2447     case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;\r
2448     case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;\r
2449     case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;\r
2450     case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;\r
2451     case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;\r
2452     case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;\r
2453     case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;\r
2454     case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;\r
2455     case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;\r
2456     case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;\r
2457     case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;\r
2458     case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;\r
2459     case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;\r
2460     case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
2461     case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
2462     case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;\r
2463     case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;\r
2464     case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;\r
2465     case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;\r
2466     case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;\r
2467     case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;\r
2468     case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;\r
2469     case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;\r
2470     case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;\r
2471     case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;\r
2472     case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;\r
2473     case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;\r
2474     case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;\r
2475     case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;\r
2476     case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;\r
2477     case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;\r
2478     case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;\r
2479     case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;\r
2480     case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;\r
2481     case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;\r
2482     case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;\r
2483     case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;\r
2484     case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;\r
2485     case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;\r
2486     case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;\r
2487     case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;\r
2488     case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;\r
2489     case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;\r
2490     case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;\r
2491     }\r
2492 }\r
2493 #endif /* SPV_ENABLE_UTILITY_CODE */\r
2494 \r
2495 // Overload operator| for mask bit combining\r
2496 \r
2497 inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }\r
2498 inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }\r
2499 inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }\r
2500 inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }\r
2501 inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }\r
2502 inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }\r
2503 inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }\r
2504 inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }\r
2505 inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }\r
2506 inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }\r
2507 \r
2508 }  // end namespace spv\r
2509 \r
2510 #endif  // #ifndef spirv_HPP\r
2511 \r