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