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