1/*
2** Copyright (c) 2014-2020 The Khronos Group Inc.
3**
4** Permission is hereby granted, free of charge, to any person obtaining a copy
5** of this software and/or associated documentation files (the "Materials"),
6** to deal in the Materials without restriction, including without limitation
7** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8** and/or sell copies of the Materials, and to permit persons to whom the
9** Materials are furnished to do so, subject to the following conditions:
10**
11** The above copyright notice and this permission notice shall be included in
12** all copies or substantial portions of the Materials.
13**
14** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17**
18** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24** IN THE MATERIALS.
25*/
26
27/*
28** This header is automatically generated by the same tool that creates
29** the Binary Section of the SPIR-V specification.
30*/
31
32/*
33** Enumeration tokens for SPIR-V, in various styles:
34** C, C++, C++11, JSON, Lua, Python, C#, D
35**
36** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
37** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
38** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
39** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
40** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
41** - C# will use enum classes in the Specification class located in the "Spv" namespace,
42** e.g.: Spv.Specification.SourceLanguage.GLSL
43** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
44**
45** Some tokens act like mask values, which can be OR'd together,
46** while others are mutually exclusive. The mask-like ones have
47** "Mask" in their name, and a parallel enum that has the shift
48** amount (1 << x) for each corresponding enumerant.
49*/
50
51#ifndef spirv_H
52#define spirv_H
53
54typedef unsigned int SpvId;
55
56#define SPV_VERSION 0x10600
57#define SPV_REVISION 1
58
59static const unsigned int SpvMagicNumber = 0x07230203;
60static const unsigned int SpvVersion = 0x00010600;
61static const unsigned int SpvRevision = 1;
62static const unsigned int SpvOpCodeMask = 0xffff;
63static const unsigned int SpvWordCountShift = 16;
64
65typedef enum SpvSourceLanguage_ {
66 SpvSourceLanguageUnknown = 0,
67 SpvSourceLanguageESSL = 1,
68 SpvSourceLanguageGLSL = 2,
69 SpvSourceLanguageOpenCL_C = 3,
70 SpvSourceLanguageOpenCL_CPP = 4,
71 SpvSourceLanguageHLSL = 5,
72 SpvSourceLanguageCPP_for_OpenCL = 6,
73 SpvSourceLanguageMax = 0x7fffffff,
74} SpvSourceLanguage;
75
76typedef enum SpvExecutionModel_ {
77 SpvExecutionModelVertex = 0,
78 SpvExecutionModelTessellationControl = 1,
79 SpvExecutionModelTessellationEvaluation = 2,
80 SpvExecutionModelGeometry = 3,
81 SpvExecutionModelFragment = 4,
82 SpvExecutionModelGLCompute = 5,
83 SpvExecutionModelKernel = 6,
84 SpvExecutionModelTaskNV = 5267,
85 SpvExecutionModelMeshNV = 5268,
86 SpvExecutionModelRayGenerationKHR = 5313,
87 SpvExecutionModelRayGenerationNV = 5313,
88 SpvExecutionModelIntersectionKHR = 5314,
89 SpvExecutionModelIntersectionNV = 5314,
90 SpvExecutionModelAnyHitKHR = 5315,
91 SpvExecutionModelAnyHitNV = 5315,
92 SpvExecutionModelClosestHitKHR = 5316,
93 SpvExecutionModelClosestHitNV = 5316,
94 SpvExecutionModelMissKHR = 5317,
95 SpvExecutionModelMissNV = 5317,
96 SpvExecutionModelCallableKHR = 5318,
97 SpvExecutionModelCallableNV = 5318,
98 SpvExecutionModelMax = 0x7fffffff,
99} SpvExecutionModel;
100
101typedef enum SpvAddressingModel_ {
102 SpvAddressingModelLogical = 0,
103 SpvAddressingModelPhysical32 = 1,
104 SpvAddressingModelPhysical64 = 2,
105 SpvAddressingModelPhysicalStorageBuffer64 = 5348,
106 SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
107 SpvAddressingModelMax = 0x7fffffff,
108} SpvAddressingModel;
109
110typedef enum SpvMemoryModel_ {
111 SpvMemoryModelSimple = 0,
112 SpvMemoryModelGLSL450 = 1,
113 SpvMemoryModelOpenCL = 2,
114 SpvMemoryModelVulkan = 3,
115 SpvMemoryModelVulkanKHR = 3,
116 SpvMemoryModelMax = 0x7fffffff,
117} SpvMemoryModel;
118
119typedef enum SpvExecutionMode_ {
120 SpvExecutionModeInvocations = 0,
121 SpvExecutionModeSpacingEqual = 1,
122 SpvExecutionModeSpacingFractionalEven = 2,
123 SpvExecutionModeSpacingFractionalOdd = 3,
124 SpvExecutionModeVertexOrderCw = 4,
125 SpvExecutionModeVertexOrderCcw = 5,
126 SpvExecutionModePixelCenterInteger = 6,
127 SpvExecutionModeOriginUpperLeft = 7,
128 SpvExecutionModeOriginLowerLeft = 8,
129 SpvExecutionModeEarlyFragmentTests = 9,
130 SpvExecutionModePointMode = 10,
131 SpvExecutionModeXfb = 11,
132 SpvExecutionModeDepthReplacing = 12,
133 SpvExecutionModeDepthGreater = 14,
134 SpvExecutionModeDepthLess = 15,
135 SpvExecutionModeDepthUnchanged = 16,
136 SpvExecutionModeLocalSize = 17,
137 SpvExecutionModeLocalSizeHint = 18,
138 SpvExecutionModeInputPoints = 19,
139 SpvExecutionModeInputLines = 20,
140 SpvExecutionModeInputLinesAdjacency = 21,
141 SpvExecutionModeTriangles = 22,
142 SpvExecutionModeInputTrianglesAdjacency = 23,
143 SpvExecutionModeQuads = 24,
144 SpvExecutionModeIsolines = 25,
145 SpvExecutionModeOutputVertices = 26,
146 SpvExecutionModeOutputPoints = 27,
147 SpvExecutionModeOutputLineStrip = 28,
148 SpvExecutionModeOutputTriangleStrip = 29,
149 SpvExecutionModeVecTypeHint = 30,
150 SpvExecutionModeContractionOff = 31,
151 SpvExecutionModeInitializer = 33,
152 SpvExecutionModeFinalizer = 34,
153 SpvExecutionModeSubgroupSize = 35,
154 SpvExecutionModeSubgroupsPerWorkgroup = 36,
155 SpvExecutionModeSubgroupsPerWorkgroupId = 37,
156 SpvExecutionModeLocalSizeId = 38,
157 SpvExecutionModeLocalSizeHintId = 39,
158 SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
159 SpvExecutionModePostDepthCoverage = 4446,
160 SpvExecutionModeDenormPreserve = 4459,
161 SpvExecutionModeDenormFlushToZero = 4460,
162 SpvExecutionModeSignedZeroInfNanPreserve = 4461,
163 SpvExecutionModeRoundingModeRTE = 4462,
164 SpvExecutionModeRoundingModeRTZ = 4463,
165 SpvExecutionModeStencilRefReplacingEXT = 5027,
166 SpvExecutionModeOutputLinesNV = 5269,
167 SpvExecutionModeOutputPrimitivesNV = 5270,
168 SpvExecutionModeDerivativeGroupQuadsNV = 5289,
169 SpvExecutionModeDerivativeGroupLinearNV = 5290,
170 SpvExecutionModeOutputTrianglesNV = 5298,
171 SpvExecutionModePixelInterlockOrderedEXT = 5366,
172 SpvExecutionModePixelInterlockUnorderedEXT = 5367,
173 SpvExecutionModeSampleInterlockOrderedEXT = 5368,
174 SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
175 SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
176 SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
177 SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
178 SpvExecutionModeRoundingModeRTPINTEL = 5620,
179 SpvExecutionModeRoundingModeRTNINTEL = 5621,
180 SpvExecutionModeFloatingPointModeALTINTEL = 5622,
181 SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
182 SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
183 SpvExecutionModeMaxWorkDimINTEL = 5894,
184 SpvExecutionModeNoGlobalOffsetINTEL = 5895,
185 SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
186 SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
187 SpvExecutionModeMax = 0x7fffffff,
188} SpvExecutionMode;
189
190typedef enum SpvStorageClass_ {
191 SpvStorageClassUniformConstant = 0,
192 SpvStorageClassInput = 1,
193 SpvStorageClassUniform = 2,
194 SpvStorageClassOutput = 3,
195 SpvStorageClassWorkgroup = 4,
196 SpvStorageClassCrossWorkgroup = 5,
197 SpvStorageClassPrivate = 6,
198 SpvStorageClassFunction = 7,
199 SpvStorageClassGeneric = 8,
200 SpvStorageClassPushConstant = 9,
201 SpvStorageClassAtomicCounter = 10,
202 SpvStorageClassImage = 11,
203 SpvStorageClassStorageBuffer = 12,
204 SpvStorageClassCallableDataKHR = 5328,
205 SpvStorageClassCallableDataNV = 5328,
206 SpvStorageClassIncomingCallableDataKHR = 5329,
207 SpvStorageClassIncomingCallableDataNV = 5329,
208 SpvStorageClassRayPayloadKHR = 5338,
209 SpvStorageClassRayPayloadNV = 5338,
210 SpvStorageClassHitAttributeKHR = 5339,
211 SpvStorageClassHitAttributeNV = 5339,
212 SpvStorageClassIncomingRayPayloadKHR = 5342,
213 SpvStorageClassIncomingRayPayloadNV = 5342,
214 SpvStorageClassShaderRecordBufferKHR = 5343,
215 SpvStorageClassShaderRecordBufferNV = 5343,
216 SpvStorageClassPhysicalStorageBuffer = 5349,
217 SpvStorageClassPhysicalStorageBufferEXT = 5349,
218 SpvStorageClassCodeSectionINTEL = 5605,
219 SpvStorageClassDeviceOnlyINTEL = 5936,
220 SpvStorageClassHostOnlyINTEL = 5937,
221 SpvStorageClassMax = 0x7fffffff,
222} SpvStorageClass;
223
224typedef enum SpvDim_ {
225 SpvDim1D = 0,
226 SpvDim2D = 1,
227 SpvDim3D = 2,
228 SpvDimCube = 3,
229 SpvDimRect = 4,
230 SpvDimBuffer = 5,
231 SpvDimSubpassData = 6,
232 SpvDimMax = 0x7fffffff,
233} SpvDim;
234
235typedef enum SpvSamplerAddressingMode_ {
236 SpvSamplerAddressingModeNone = 0,
237 SpvSamplerAddressingModeClampToEdge = 1,
238 SpvSamplerAddressingModeClamp = 2,
239 SpvSamplerAddressingModeRepeat = 3,
240 SpvSamplerAddressingModeRepeatMirrored = 4,
241 SpvSamplerAddressingModeMax = 0x7fffffff,
242} SpvSamplerAddressingMode;
243
244typedef enum SpvSamplerFilterMode_ {
245 SpvSamplerFilterModeNearest = 0,
246 SpvSamplerFilterModeLinear = 1,
247 SpvSamplerFilterModeMax = 0x7fffffff,
248} SpvSamplerFilterMode;
249
250typedef enum SpvImageFormat_ {
251 SpvImageFormatUnknown = 0,
252 SpvImageFormatRgba32f = 1,
253 SpvImageFormatRgba16f = 2,
254 SpvImageFormatR32f = 3,
255 SpvImageFormatRgba8 = 4,
256 SpvImageFormatRgba8Snorm = 5,
257 SpvImageFormatRg32f = 6,
258 SpvImageFormatRg16f = 7,
259 SpvImageFormatR11fG11fB10f = 8,
260 SpvImageFormatR16f = 9,
261 SpvImageFormatRgba16 = 10,
262 SpvImageFormatRgb10A2 = 11,
263 SpvImageFormatRg16 = 12,
264 SpvImageFormatRg8 = 13,
265 SpvImageFormatR16 = 14,
266 SpvImageFormatR8 = 15,
267 SpvImageFormatRgba16Snorm = 16,
268 SpvImageFormatRg16Snorm = 17,
269 SpvImageFormatRg8Snorm = 18,
270 SpvImageFormatR16Snorm = 19,
271 SpvImageFormatR8Snorm = 20,
272 SpvImageFormatRgba32i = 21,
273 SpvImageFormatRgba16i = 22,
274 SpvImageFormatRgba8i = 23,
275 SpvImageFormatR32i = 24,
276 SpvImageFormatRg32i = 25,
277 SpvImageFormatRg16i = 26,
278 SpvImageFormatRg8i = 27,
279 SpvImageFormatR16i = 28,
280 SpvImageFormatR8i = 29,
281 SpvImageFormatRgba32ui = 30,
282 SpvImageFormatRgba16ui = 31,
283 SpvImageFormatRgba8ui = 32,
284 SpvImageFormatR32ui = 33,
285 SpvImageFormatRgb10a2ui = 34,
286 SpvImageFormatRg32ui = 35,
287 SpvImageFormatRg16ui = 36,
288 SpvImageFormatRg8ui = 37,
289 SpvImageFormatR16ui = 38,
290 SpvImageFormatR8ui = 39,
291 SpvImageFormatR64ui = 40,
292 SpvImageFormatR64i = 41,
293 SpvImageFormatMax = 0x7fffffff,
294} SpvImageFormat;
295
296typedef enum SpvImageChannelOrder_ {
297 SpvImageChannelOrderR = 0,
298 SpvImageChannelOrderA = 1,
299 SpvImageChannelOrderRG = 2,
300 SpvImageChannelOrderRA = 3,
301 SpvImageChannelOrderRGB = 4,
302 SpvImageChannelOrderRGBA = 5,
303 SpvImageChannelOrderBGRA = 6,
304 SpvImageChannelOrderARGB = 7,
305 SpvImageChannelOrderIntensity = 8,
306 SpvImageChannelOrderLuminance = 9,
307 SpvImageChannelOrderRx = 10,
308 SpvImageChannelOrderRGx = 11,
309 SpvImageChannelOrderRGBx = 12,
310 SpvImageChannelOrderDepth = 13,
311 SpvImageChannelOrderDepthStencil = 14,
312 SpvImageChannelOrdersRGB = 15,
313 SpvImageChannelOrdersRGBx = 16,
314 SpvImageChannelOrdersRGBA = 17,
315 SpvImageChannelOrdersBGRA = 18,
316 SpvImageChannelOrderABGR = 19,
317 SpvImageChannelOrderMax = 0x7fffffff,
318} SpvImageChannelOrder;
319
320typedef enum SpvImageChannelDataType_ {
321 SpvImageChannelDataTypeSnormInt8 = 0,
322 SpvImageChannelDataTypeSnormInt16 = 1,
323 SpvImageChannelDataTypeUnormInt8 = 2,
324 SpvImageChannelDataTypeUnormInt16 = 3,
325 SpvImageChannelDataTypeUnormShort565 = 4,
326 SpvImageChannelDataTypeUnormShort555 = 5,
327 SpvImageChannelDataTypeUnormInt101010 = 6,
328 SpvImageChannelDataTypeSignedInt8 = 7,
329 SpvImageChannelDataTypeSignedInt16 = 8,
330 SpvImageChannelDataTypeSignedInt32 = 9,
331 SpvImageChannelDataTypeUnsignedInt8 = 10,
332 SpvImageChannelDataTypeUnsignedInt16 = 11,
333 SpvImageChannelDataTypeUnsignedInt32 = 12,
334 SpvImageChannelDataTypeHalfFloat = 13,
335 SpvImageChannelDataTypeFloat = 14,
336 SpvImageChannelDataTypeUnormInt24 = 15,
337 SpvImageChannelDataTypeUnormInt101010_2 = 16,
338 SpvImageChannelDataTypeMax = 0x7fffffff,
339} SpvImageChannelDataType;
340
341typedef enum SpvImageOperandsShift_ {
342 SpvImageOperandsBiasShift = 0,
343 SpvImageOperandsLodShift = 1,
344 SpvImageOperandsGradShift = 2,
345 SpvImageOperandsConstOffsetShift = 3,
346 SpvImageOperandsOffsetShift = 4,
347 SpvImageOperandsConstOffsetsShift = 5,
348 SpvImageOperandsSampleShift = 6,
349 SpvImageOperandsMinLodShift = 7,
350 SpvImageOperandsMakeTexelAvailableShift = 8,
351 SpvImageOperandsMakeTexelAvailableKHRShift = 8,
352 SpvImageOperandsMakeTexelVisibleShift = 9,
353 SpvImageOperandsMakeTexelVisibleKHRShift = 9,
354 SpvImageOperandsNonPrivateTexelShift = 10,
355 SpvImageOperandsNonPrivateTexelKHRShift = 10,
356 SpvImageOperandsVolatileTexelShift = 11,
357 SpvImageOperandsVolatileTexelKHRShift = 11,
358 SpvImageOperandsSignExtendShift = 12,
359 SpvImageOperandsZeroExtendShift = 13,
360 SpvImageOperandsNontemporalShift = 14,
361 SpvImageOperandsOffsetsShift = 16,
362 SpvImageOperandsMax = 0x7fffffff,
363} SpvImageOperandsShift;
364
365typedef enum SpvImageOperandsMask_ {
366 SpvImageOperandsMaskNone = 0,
367 SpvImageOperandsBiasMask = 0x00000001,
368 SpvImageOperandsLodMask = 0x00000002,
369 SpvImageOperandsGradMask = 0x00000004,
370 SpvImageOperandsConstOffsetMask = 0x00000008,
371 SpvImageOperandsOffsetMask = 0x00000010,
372 SpvImageOperandsConstOffsetsMask = 0x00000020,
373 SpvImageOperandsSampleMask = 0x00000040,
374 SpvImageOperandsMinLodMask = 0x00000080,
375 SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
376 SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
377 SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
378 SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
379 SpvImageOperandsNonPrivateTexelMask = 0x00000400,
380 SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
381 SpvImageOperandsVolatileTexelMask = 0x00000800,
382 SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
383 SpvImageOperandsSignExtendMask = 0x00001000,
384 SpvImageOperandsZeroExtendMask = 0x00002000,
385 SpvImageOperandsNontemporalMask = 0x00004000,
386 SpvImageOperandsOffsetsMask = 0x00010000,
387} SpvImageOperandsMask;
388
389typedef enum SpvFPFastMathModeShift_ {
390 SpvFPFastMathModeNotNaNShift = 0,
391 SpvFPFastMathModeNotInfShift = 1,
392 SpvFPFastMathModeNSZShift = 2,
393 SpvFPFastMathModeAllowRecipShift = 3,
394 SpvFPFastMathModeFastShift = 4,
395 SpvFPFastMathModeAllowContractFastINTELShift = 16,
396 SpvFPFastMathModeAllowReassocINTELShift = 17,
397 SpvFPFastMathModeMax = 0x7fffffff,
398} SpvFPFastMathModeShift;
399
400typedef enum SpvFPFastMathModeMask_ {
401 SpvFPFastMathModeMaskNone = 0,
402 SpvFPFastMathModeNotNaNMask = 0x00000001,
403 SpvFPFastMathModeNotInfMask = 0x00000002,
404 SpvFPFastMathModeNSZMask = 0x00000004,
405 SpvFPFastMathModeAllowRecipMask = 0x00000008,
406 SpvFPFastMathModeFastMask = 0x00000010,
407 SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
408 SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
409} SpvFPFastMathModeMask;
410
411typedef enum SpvFPRoundingMode_ {
412 SpvFPRoundingModeRTE = 0,
413 SpvFPRoundingModeRTZ = 1,
414 SpvFPRoundingModeRTP = 2,
415 SpvFPRoundingModeRTN = 3,
416 SpvFPRoundingModeMax = 0x7fffffff,
417} SpvFPRoundingMode;
418
419typedef enum SpvLinkageType_ {
420 SpvLinkageTypeExport = 0,
421 SpvLinkageTypeImport = 1,
422 SpvLinkageTypeLinkOnceODR = 2,
423 SpvLinkageTypeMax = 0x7fffffff,
424} SpvLinkageType;
425
426typedef enum SpvAccessQualifier_ {
427 SpvAccessQualifierReadOnly = 0,
428 SpvAccessQualifierWriteOnly = 1,
429 SpvAccessQualifierReadWrite = 2,
430 SpvAccessQualifierMax = 0x7fffffff,
431} SpvAccessQualifier;
432
433typedef enum SpvFunctionParameterAttribute_ {
434 SpvFunctionParameterAttributeZext = 0,
435 SpvFunctionParameterAttributeSext = 1,
436 SpvFunctionParameterAttributeByVal = 2,
437 SpvFunctionParameterAttributeSret = 3,
438 SpvFunctionParameterAttributeNoAlias = 4,
439 SpvFunctionParameterAttributeNoCapture = 5,
440 SpvFunctionParameterAttributeNoWrite = 6,
441 SpvFunctionParameterAttributeNoReadWrite = 7,
442 SpvFunctionParameterAttributeMax = 0x7fffffff,
443} SpvFunctionParameterAttribute;
444
445typedef enum SpvDecoration_ {
446 SpvDecorationRelaxedPrecision = 0,
447 SpvDecorationSpecId = 1,
448 SpvDecorationBlock = 2,
449 SpvDecorationBufferBlock = 3,
450 SpvDecorationRowMajor = 4,
451 SpvDecorationColMajor = 5,
452 SpvDecorationArrayStride = 6,
453 SpvDecorationMatrixStride = 7,
454 SpvDecorationGLSLShared = 8,
455 SpvDecorationGLSLPacked = 9,
456 SpvDecorationCPacked = 10,
457 SpvDecorationBuiltIn = 11,
458 SpvDecorationNoPerspective = 13,
459 SpvDecorationFlat = 14,
460 SpvDecorationPatch = 15,
461 SpvDecorationCentroid = 16,
462 SpvDecorationSample = 17,
463 SpvDecorationInvariant = 18,
464 SpvDecorationRestrict = 19,
465 SpvDecorationAliased = 20,
466 SpvDecorationVolatile = 21,
467 SpvDecorationConstant = 22,
468 SpvDecorationCoherent = 23,
469 SpvDecorationNonWritable = 24,
470 SpvDecorationNonReadable = 25,
471 SpvDecorationUniform = 26,
472 SpvDecorationUniformId = 27,
473 SpvDecorationSaturatedConversion = 28,
474 SpvDecorationStream = 29,
475 SpvDecorationLocation = 30,
476 SpvDecorationComponent = 31,
477 SpvDecorationIndex = 32,
478 SpvDecorationBinding = 33,
479 SpvDecorationDescriptorSet = 34,
480 SpvDecorationOffset = 35,
481 SpvDecorationXfbBuffer = 36,
482 SpvDecorationXfbStride = 37,
483 SpvDecorationFuncParamAttr = 38,
484 SpvDecorationFPRoundingMode = 39,
485 SpvDecorationFPFastMathMode = 40,
486 SpvDecorationLinkageAttributes = 41,
487 SpvDecorationNoContraction = 42,
488 SpvDecorationInputAttachmentIndex = 43,
489 SpvDecorationAlignment = 44,
490 SpvDecorationMaxByteOffset = 45,
491 SpvDecorationAlignmentId = 46,
492 SpvDecorationMaxByteOffsetId = 47,
493 SpvDecorationNoSignedWrap = 4469,
494 SpvDecorationNoUnsignedWrap = 4470,
495 SpvDecorationExplicitInterpAMD = 4999,
496 SpvDecorationOverrideCoverageNV = 5248,
497 SpvDecorationPassthroughNV = 5250,
498 SpvDecorationViewportRelativeNV = 5252,
499 SpvDecorationSecondaryViewportRelativeNV = 5256,
500 SpvDecorationPerPrimitiveNV = 5271,
501 SpvDecorationPerViewNV = 5272,
502 SpvDecorationPerTaskNV = 5273,
503 SpvDecorationPerVertexKHR = 5285,
504 SpvDecorationPerVertexNV = 5285,
505 SpvDecorationNonUniform = 5300,
506 SpvDecorationNonUniformEXT = 5300,
507 SpvDecorationRestrictPointer = 5355,
508 SpvDecorationRestrictPointerEXT = 5355,
509 SpvDecorationAliasedPointer = 5356,
510 SpvDecorationAliasedPointerEXT = 5356,
511 SpvDecorationBindlessSamplerNV = 5398,
512 SpvDecorationBindlessImageNV = 5399,
513 SpvDecorationBoundSamplerNV = 5400,
514 SpvDecorationBoundImageNV = 5401,
515 SpvDecorationSIMTCallINTEL = 5599,
516 SpvDecorationReferencedIndirectlyINTEL = 5602,
517 SpvDecorationClobberINTEL = 5607,
518 SpvDecorationSideEffectsINTEL = 5608,
519 SpvDecorationVectorComputeVariableINTEL = 5624,
520 SpvDecorationFuncParamIOKindINTEL = 5625,
521 SpvDecorationVectorComputeFunctionINTEL = 5626,
522 SpvDecorationStackCallINTEL = 5627,
523 SpvDecorationGlobalVariableOffsetINTEL = 5628,
524 SpvDecorationCounterBuffer = 5634,
525 SpvDecorationHlslCounterBufferGOOGLE = 5634,
526 SpvDecorationHlslSemanticGOOGLE = 5635,
527 SpvDecorationUserSemantic = 5635,
528 SpvDecorationUserTypeGOOGLE = 5636,
529 SpvDecorationFunctionRoundingModeINTEL = 5822,
530 SpvDecorationFunctionDenormModeINTEL = 5823,
531 SpvDecorationRegisterINTEL = 5825,
532 SpvDecorationMemoryINTEL = 5826,
533 SpvDecorationNumbanksINTEL = 5827,
534 SpvDecorationBankwidthINTEL = 5828,
535 SpvDecorationMaxPrivateCopiesINTEL = 5829,
536 SpvDecorationSinglepumpINTEL = 5830,
537 SpvDecorationDoublepumpINTEL = 5831,
538 SpvDecorationMaxReplicatesINTEL = 5832,
539 SpvDecorationSimpleDualPortINTEL = 5833,
540 SpvDecorationMergeINTEL = 5834,
541 SpvDecorationBankBitsINTEL = 5835,
542 SpvDecorationForcePow2DepthINTEL = 5836,
543 SpvDecorationBurstCoalesceINTEL = 5899,
544 SpvDecorationCacheSizeINTEL = 5900,
545 SpvDecorationDontStaticallyCoalesceINTEL = 5901,
546 SpvDecorationPrefetchINTEL = 5902,
547 SpvDecorationStallEnableINTEL = 5905,
548 SpvDecorationFuseLoopsInFunctionINTEL = 5907,
549 SpvDecorationBufferLocationINTEL = 5921,
550 SpvDecorationIOPipeStorageINTEL = 5944,
551 SpvDecorationFunctionFloatingPointModeINTEL = 6080,
552 SpvDecorationSingleElementVectorINTEL = 6085,
553 SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
554 SpvDecorationMediaBlockIOINTEL = 6140,
555 SpvDecorationMax = 0x7fffffff,
556} SpvDecoration;
557
558typedef enum SpvBuiltIn_ {
559 SpvBuiltInPosition = 0,
560 SpvBuiltInPointSize = 1,
561 SpvBuiltInClipDistance = 3,
562 SpvBuiltInCullDistance = 4,
563 SpvBuiltInVertexId = 5,
564 SpvBuiltInInstanceId = 6,
565 SpvBuiltInPrimitiveId = 7,
566 SpvBuiltInInvocationId = 8,
567 SpvBuiltInLayer = 9,
568 SpvBuiltInViewportIndex = 10,
569 SpvBuiltInTessLevelOuter = 11,
570 SpvBuiltInTessLevelInner = 12,
571 SpvBuiltInTessCoord = 13,
572 SpvBuiltInPatchVertices = 14,
573 SpvBuiltInFragCoord = 15,
574 SpvBuiltInPointCoord = 16,
575 SpvBuiltInFrontFacing = 17,
576 SpvBuiltInSampleId = 18,
577 SpvBuiltInSamplePosition = 19,
578 SpvBuiltInSampleMask = 20,
579 SpvBuiltInFragDepth = 22,
580 SpvBuiltInHelperInvocation = 23,
581 SpvBuiltInNumWorkgroups = 24,
582 SpvBuiltInWorkgroupSize = 25,
583 SpvBuiltInWorkgroupId = 26,
584 SpvBuiltInLocalInvocationId = 27,
585 SpvBuiltInGlobalInvocationId = 28,
586 SpvBuiltInLocalInvocationIndex = 29,
587 SpvBuiltInWorkDim = 30,
588 SpvBuiltInGlobalSize = 31,
589 SpvBuiltInEnqueuedWorkgroupSize = 32,
590 SpvBuiltInGlobalOffset = 33,
591 SpvBuiltInGlobalLinearId = 34,
592 SpvBuiltInSubgroupSize = 36,
593 SpvBuiltInSubgroupMaxSize = 37,
594 SpvBuiltInNumSubgroups = 38,
595 SpvBuiltInNumEnqueuedSubgroups = 39,
596 SpvBuiltInSubgroupId = 40,
597 SpvBuiltInSubgroupLocalInvocationId = 41,
598 SpvBuiltInVertexIndex = 42,
599 SpvBuiltInInstanceIndex = 43,
600 SpvBuiltInSubgroupEqMask = 4416,
601 SpvBuiltInSubgroupEqMaskKHR = 4416,
602 SpvBuiltInSubgroupGeMask = 4417,
603 SpvBuiltInSubgroupGeMaskKHR = 4417,
604 SpvBuiltInSubgroupGtMask = 4418,
605 SpvBuiltInSubgroupGtMaskKHR = 4418,
606 SpvBuiltInSubgroupLeMask = 4419,
607 SpvBuiltInSubgroupLeMaskKHR = 4419,
608 SpvBuiltInSubgroupLtMask = 4420,
609 SpvBuiltInSubgroupLtMaskKHR = 4420,
610 SpvBuiltInBaseVertex = 4424,
611 SpvBuiltInBaseInstance = 4425,
612 SpvBuiltInDrawIndex = 4426,
613 SpvBuiltInPrimitiveShadingRateKHR = 4432,
614 SpvBuiltInDeviceIndex = 4438,
615 SpvBuiltInViewIndex = 4440,
616 SpvBuiltInShadingRateKHR = 4444,
617 SpvBuiltInBaryCoordNoPerspAMD = 4992,
618 SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
619 SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
620 SpvBuiltInBaryCoordSmoothAMD = 4995,
621 SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
622 SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
623 SpvBuiltInBaryCoordPullModelAMD = 4998,
624 SpvBuiltInFragStencilRefEXT = 5014,
625 SpvBuiltInViewportMaskNV = 5253,
626 SpvBuiltInSecondaryPositionNV = 5257,
627 SpvBuiltInSecondaryViewportMaskNV = 5258,
628 SpvBuiltInPositionPerViewNV = 5261,
629 SpvBuiltInViewportMaskPerViewNV = 5262,
630 SpvBuiltInFullyCoveredEXT = 5264,
631 SpvBuiltInTaskCountNV = 5274,
632 SpvBuiltInPrimitiveCountNV = 5275,
633 SpvBuiltInPrimitiveIndicesNV = 5276,
634 SpvBuiltInClipDistancePerViewNV = 5277,
635 SpvBuiltInCullDistancePerViewNV = 5278,
636 SpvBuiltInLayerPerViewNV = 5279,
637 SpvBuiltInMeshViewCountNV = 5280,
638 SpvBuiltInMeshViewIndicesNV = 5281,
639 SpvBuiltInBaryCoordKHR = 5286,
640 SpvBuiltInBaryCoordNV = 5286,
641 SpvBuiltInBaryCoordNoPerspKHR = 5287,
642 SpvBuiltInBaryCoordNoPerspNV = 5287,
643 SpvBuiltInFragSizeEXT = 5292,
644 SpvBuiltInFragmentSizeNV = 5292,
645 SpvBuiltInFragInvocationCountEXT = 5293,
646 SpvBuiltInInvocationsPerPixelNV = 5293,
647 SpvBuiltInLaunchIdKHR = 5319,
648 SpvBuiltInLaunchIdNV = 5319,
649 SpvBuiltInLaunchSizeKHR = 5320,
650 SpvBuiltInLaunchSizeNV = 5320,
651 SpvBuiltInWorldRayOriginKHR = 5321,
652 SpvBuiltInWorldRayOriginNV = 5321,
653 SpvBuiltInWorldRayDirectionKHR = 5322,
654 SpvBuiltInWorldRayDirectionNV = 5322,
655 SpvBuiltInObjectRayOriginKHR = 5323,
656 SpvBuiltInObjectRayOriginNV = 5323,
657 SpvBuiltInObjectRayDirectionKHR = 5324,
658 SpvBuiltInObjectRayDirectionNV = 5324,
659 SpvBuiltInRayTminKHR = 5325,
660 SpvBuiltInRayTminNV = 5325,
661 SpvBuiltInRayTmaxKHR = 5326,
662 SpvBuiltInRayTmaxNV = 5326,
663 SpvBuiltInInstanceCustomIndexKHR = 5327,
664 SpvBuiltInInstanceCustomIndexNV = 5327,
665 SpvBuiltInObjectToWorldKHR = 5330,
666 SpvBuiltInObjectToWorldNV = 5330,
667 SpvBuiltInWorldToObjectKHR = 5331,
668 SpvBuiltInWorldToObjectNV = 5331,
669 SpvBuiltInHitTNV = 5332,
670 SpvBuiltInHitKindKHR = 5333,
671 SpvBuiltInHitKindNV = 5333,
672 SpvBuiltInCurrentRayTimeNV = 5334,
673 SpvBuiltInIncomingRayFlagsKHR = 5351,
674 SpvBuiltInIncomingRayFlagsNV = 5351,
675 SpvBuiltInRayGeometryIndexKHR = 5352,
676 SpvBuiltInWarpsPerSMNV = 5374,
677 SpvBuiltInSMCountNV = 5375,
678 SpvBuiltInWarpIDNV = 5376,
679 SpvBuiltInSMIDNV = 5377,
680 SpvBuiltInMax = 0x7fffffff,
681} SpvBuiltIn;
682
683typedef enum SpvSelectionControlShift_ {
684 SpvSelectionControlFlattenShift = 0,
685 SpvSelectionControlDontFlattenShift = 1,
686 SpvSelectionControlMax = 0x7fffffff,
687} SpvSelectionControlShift;
688
689typedef enum SpvSelectionControlMask_ {
690 SpvSelectionControlMaskNone = 0,
691 SpvSelectionControlFlattenMask = 0x00000001,
692 SpvSelectionControlDontFlattenMask = 0x00000002,
693} SpvSelectionControlMask;
694
695typedef enum SpvLoopControlShift_ {
696 SpvLoopControlUnrollShift = 0,
697 SpvLoopControlDontUnrollShift = 1,
698 SpvLoopControlDependencyInfiniteShift = 2,
699 SpvLoopControlDependencyLengthShift = 3,
700 SpvLoopControlMinIterationsShift = 4,
701 SpvLoopControlMaxIterationsShift = 5,
702 SpvLoopControlIterationMultipleShift = 6,
703 SpvLoopControlPeelCountShift = 7,
704 SpvLoopControlPartialCountShift = 8,
705 SpvLoopControlInitiationIntervalINTELShift = 16,
706 SpvLoopControlMaxConcurrencyINTELShift = 17,
707 SpvLoopControlDependencyArrayINTELShift = 18,
708 SpvLoopControlPipelineEnableINTELShift = 19,
709 SpvLoopControlLoopCoalesceINTELShift = 20,
710 SpvLoopControlMaxInterleavingINTELShift = 21,
711 SpvLoopControlSpeculatedIterationsINTELShift = 22,
712 SpvLoopControlNoFusionINTELShift = 23,
713 SpvLoopControlMax = 0x7fffffff,
714} SpvLoopControlShift;
715
716typedef enum SpvLoopControlMask_ {
717 SpvLoopControlMaskNone = 0,
718 SpvLoopControlUnrollMask = 0x00000001,
719 SpvLoopControlDontUnrollMask = 0x00000002,
720 SpvLoopControlDependencyInfiniteMask = 0x00000004,
721 SpvLoopControlDependencyLengthMask = 0x00000008,
722 SpvLoopControlMinIterationsMask = 0x00000010,
723 SpvLoopControlMaxIterationsMask = 0x00000020,
724 SpvLoopControlIterationMultipleMask = 0x00000040,
725 SpvLoopControlPeelCountMask = 0x00000080,
726 SpvLoopControlPartialCountMask = 0x00000100,
727 SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
728 SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
729 SpvLoopControlDependencyArrayINTELMask = 0x00040000,
730 SpvLoopControlPipelineEnableINTELMask = 0x00080000,
731 SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
732 SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
733 SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
734 SpvLoopControlNoFusionINTELMask = 0x00800000,
735} SpvLoopControlMask;
736
737typedef enum SpvFunctionControlShift_ {
738 SpvFunctionControlInlineShift = 0,
739 SpvFunctionControlDontInlineShift = 1,
740 SpvFunctionControlPureShift = 2,
741 SpvFunctionControlConstShift = 3,
742 SpvFunctionControlOptNoneINTELShift = 16,
743 SpvFunctionControlMax = 0x7fffffff,
744} SpvFunctionControlShift;
745
746typedef enum SpvFunctionControlMask_ {
747 SpvFunctionControlMaskNone = 0,
748 SpvFunctionControlInlineMask = 0x00000001,
749 SpvFunctionControlDontInlineMask = 0x00000002,
750 SpvFunctionControlPureMask = 0x00000004,
751 SpvFunctionControlConstMask = 0x00000008,
752 SpvFunctionControlOptNoneINTELMask = 0x00010000,
753} SpvFunctionControlMask;
754
755typedef enum SpvMemorySemanticsShift_ {
756 SpvMemorySemanticsAcquireShift = 1,
757 SpvMemorySemanticsReleaseShift = 2,
758 SpvMemorySemanticsAcquireReleaseShift = 3,
759 SpvMemorySemanticsSequentiallyConsistentShift = 4,
760 SpvMemorySemanticsUniformMemoryShift = 6,
761 SpvMemorySemanticsSubgroupMemoryShift = 7,
762 SpvMemorySemanticsWorkgroupMemoryShift = 8,
763 SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
764 SpvMemorySemanticsAtomicCounterMemoryShift = 10,
765 SpvMemorySemanticsImageMemoryShift = 11,
766 SpvMemorySemanticsOutputMemoryShift = 12,
767 SpvMemorySemanticsOutputMemoryKHRShift = 12,
768 SpvMemorySemanticsMakeAvailableShift = 13,
769 SpvMemorySemanticsMakeAvailableKHRShift = 13,
770 SpvMemorySemanticsMakeVisibleShift = 14,
771 SpvMemorySemanticsMakeVisibleKHRShift = 14,
772 SpvMemorySemanticsVolatileShift = 15,
773 SpvMemorySemanticsMax = 0x7fffffff,
774} SpvMemorySemanticsShift;
775
776typedef enum SpvMemorySemanticsMask_ {
777 SpvMemorySemanticsMaskNone = 0,
778 SpvMemorySemanticsAcquireMask = 0x00000002,
779 SpvMemorySemanticsReleaseMask = 0x00000004,
780 SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
781 SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
782 SpvMemorySemanticsUniformMemoryMask = 0x00000040,
783 SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
784 SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
785 SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
786 SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
787 SpvMemorySemanticsImageMemoryMask = 0x00000800,
788 SpvMemorySemanticsOutputMemoryMask = 0x00001000,
789 SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
790 SpvMemorySemanticsMakeAvailableMask = 0x00002000,
791 SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
792 SpvMemorySemanticsMakeVisibleMask = 0x00004000,
793 SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
794 SpvMemorySemanticsVolatileMask = 0x00008000,
795} SpvMemorySemanticsMask;
796
797typedef enum SpvMemoryAccessShift_ {
798 SpvMemoryAccessVolatileShift = 0,
799 SpvMemoryAccessAlignedShift = 1,
800 SpvMemoryAccessNontemporalShift = 2,
801 SpvMemoryAccessMakePointerAvailableShift = 3,
802 SpvMemoryAccessMakePointerAvailableKHRShift = 3,
803 SpvMemoryAccessMakePointerVisibleShift = 4,
804 SpvMemoryAccessMakePointerVisibleKHRShift = 4,
805 SpvMemoryAccessNonPrivatePointerShift = 5,
806 SpvMemoryAccessNonPrivatePointerKHRShift = 5,
807 SpvMemoryAccessMax = 0x7fffffff,
808} SpvMemoryAccessShift;
809
810typedef enum SpvMemoryAccessMask_ {
811 SpvMemoryAccessMaskNone = 0,
812 SpvMemoryAccessVolatileMask = 0x00000001,
813 SpvMemoryAccessAlignedMask = 0x00000002,
814 SpvMemoryAccessNontemporalMask = 0x00000004,
815 SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
816 SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
817 SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
818 SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
819 SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
820 SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
821} SpvMemoryAccessMask;
822
823typedef enum SpvScope_ {
824 SpvScopeCrossDevice = 0,
825 SpvScopeDevice = 1,
826 SpvScopeWorkgroup = 2,
827 SpvScopeSubgroup = 3,
828 SpvScopeInvocation = 4,
829 SpvScopeQueueFamily = 5,
830 SpvScopeQueueFamilyKHR = 5,
831 SpvScopeShaderCallKHR = 6,
832 SpvScopeMax = 0x7fffffff,
833} SpvScope;
834
835typedef enum SpvGroupOperation_ {
836 SpvGroupOperationReduce = 0,
837 SpvGroupOperationInclusiveScan = 1,
838 SpvGroupOperationExclusiveScan = 2,
839 SpvGroupOperationClusteredReduce = 3,
840 SpvGroupOperationPartitionedReduceNV = 6,
841 SpvGroupOperationPartitionedInclusiveScanNV = 7,
842 SpvGroupOperationPartitionedExclusiveScanNV = 8,
843 SpvGroupOperationMax = 0x7fffffff,
844} SpvGroupOperation;
845
846typedef enum SpvKernelEnqueueFlags_ {
847 SpvKernelEnqueueFlagsNoWait = 0,
848 SpvKernelEnqueueFlagsWaitKernel = 1,
849 SpvKernelEnqueueFlagsWaitWorkGroup = 2,
850 SpvKernelEnqueueFlagsMax = 0x7fffffff,
851} SpvKernelEnqueueFlags;
852
853typedef enum SpvKernelProfilingInfoShift_ {
854 SpvKernelProfilingInfoCmdExecTimeShift = 0,
855 SpvKernelProfilingInfoMax = 0x7fffffff,
856} SpvKernelProfilingInfoShift;
857
858typedef enum SpvKernelProfilingInfoMask_ {
859 SpvKernelProfilingInfoMaskNone = 0,
860 SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
861} SpvKernelProfilingInfoMask;
862
863typedef enum SpvCapability_ {
864 SpvCapabilityMatrix = 0,
865 SpvCapabilityShader = 1,
866 SpvCapabilityGeometry = 2,
867 SpvCapabilityTessellation = 3,
868 SpvCapabilityAddresses = 4,
869 SpvCapabilityLinkage = 5,
870 SpvCapabilityKernel = 6,
871 SpvCapabilityVector16 = 7,
872 SpvCapabilityFloat16Buffer = 8,
873 SpvCapabilityFloat16 = 9,
874 SpvCapabilityFloat64 = 10,
875 SpvCapabilityInt64 = 11,
876 SpvCapabilityInt64Atomics = 12,
877 SpvCapabilityImageBasic = 13,
878 SpvCapabilityImageReadWrite = 14,
879 SpvCapabilityImageMipmap = 15,
880 SpvCapabilityPipes = 17,
881 SpvCapabilityGroups = 18,
882 SpvCapabilityDeviceEnqueue = 19,
883 SpvCapabilityLiteralSampler = 20,
884 SpvCapabilityAtomicStorage = 21,
885 SpvCapabilityInt16 = 22,
886 SpvCapabilityTessellationPointSize = 23,
887 SpvCapabilityGeometryPointSize = 24,
888 SpvCapabilityImageGatherExtended = 25,
889 SpvCapabilityStorageImageMultisample = 27,
890 SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
891 SpvCapabilitySampledImageArrayDynamicIndexing = 29,
892 SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
893 SpvCapabilityStorageImageArrayDynamicIndexing = 31,
894 SpvCapabilityClipDistance = 32,
895 SpvCapabilityCullDistance = 33,
896 SpvCapabilityImageCubeArray = 34,
897 SpvCapabilitySampleRateShading = 35,
898 SpvCapabilityImageRect = 36,
899 SpvCapabilitySampledRect = 37,
900 SpvCapabilityGenericPointer = 38,
901 SpvCapabilityInt8 = 39,
902 SpvCapabilityInputAttachment = 40,
903 SpvCapabilitySparseResidency = 41,
904 SpvCapabilityMinLod = 42,
905 SpvCapabilitySampled1D = 43,
906 SpvCapabilityImage1D = 44,
907 SpvCapabilitySampledCubeArray = 45,
908 SpvCapabilitySampledBuffer = 46,
909 SpvCapabilityImageBuffer = 47,
910 SpvCapabilityImageMSArray = 48,
911 SpvCapabilityStorageImageExtendedFormats = 49,
912 SpvCapabilityImageQuery = 50,
913 SpvCapabilityDerivativeControl = 51,
914 SpvCapabilityInterpolationFunction = 52,
915 SpvCapabilityTransformFeedback = 53,
916 SpvCapabilityGeometryStreams = 54,
917 SpvCapabilityStorageImageReadWithoutFormat = 55,
918 SpvCapabilityStorageImageWriteWithoutFormat = 56,
919 SpvCapabilityMultiViewport = 57,
920 SpvCapabilitySubgroupDispatch = 58,
921 SpvCapabilityNamedBarrier = 59,
922 SpvCapabilityPipeStorage = 60,
923 SpvCapabilityGroupNonUniform = 61,
924 SpvCapabilityGroupNonUniformVote = 62,
925 SpvCapabilityGroupNonUniformArithmetic = 63,
926 SpvCapabilityGroupNonUniformBallot = 64,
927 SpvCapabilityGroupNonUniformShuffle = 65,
928 SpvCapabilityGroupNonUniformShuffleRelative = 66,
929 SpvCapabilityGroupNonUniformClustered = 67,
930 SpvCapabilityGroupNonUniformQuad = 68,
931 SpvCapabilityShaderLayer = 69,
932 SpvCapabilityShaderViewportIndex = 70,
933 SpvCapabilityUniformDecoration = 71,
934 SpvCapabilityFragmentShadingRateKHR = 4422,
935 SpvCapabilitySubgroupBallotKHR = 4423,
936 SpvCapabilityDrawParameters = 4427,
937 SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
938 SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
939 SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
940 SpvCapabilitySubgroupVoteKHR = 4431,
941 SpvCapabilityStorageBuffer16BitAccess = 4433,
942 SpvCapabilityStorageUniformBufferBlock16 = 4433,
943 SpvCapabilityStorageUniform16 = 4434,
944 SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
945 SpvCapabilityStoragePushConstant16 = 4435,
946 SpvCapabilityStorageInputOutput16 = 4436,
947 SpvCapabilityDeviceGroup = 4437,
948 SpvCapabilityMultiView = 4439,
949 SpvCapabilityVariablePointersStorageBuffer = 4441,
950 SpvCapabilityVariablePointers = 4442,
951 SpvCapabilityAtomicStorageOps = 4445,
952 SpvCapabilitySampleMaskPostDepthCoverage = 4447,
953 SpvCapabilityStorageBuffer8BitAccess = 4448,
954 SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
955 SpvCapabilityStoragePushConstant8 = 4450,
956 SpvCapabilityDenormPreserve = 4464,
957 SpvCapabilityDenormFlushToZero = 4465,
958 SpvCapabilitySignedZeroInfNanPreserve = 4466,
959 SpvCapabilityRoundingModeRTE = 4467,
960 SpvCapabilityRoundingModeRTZ = 4468,
961 SpvCapabilityRayQueryProvisionalKHR = 4471,
962 SpvCapabilityRayQueryKHR = 4472,
963 SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
964 SpvCapabilityRayTracingKHR = 4479,
965 SpvCapabilityFloat16ImageAMD = 5008,
966 SpvCapabilityImageGatherBiasLodAMD = 5009,
967 SpvCapabilityFragmentMaskAMD = 5010,
968 SpvCapabilityStencilExportEXT = 5013,
969 SpvCapabilityImageReadWriteLodAMD = 5015,
970 SpvCapabilityInt64ImageEXT = 5016,
971 SpvCapabilityShaderClockKHR = 5055,
972 SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
973 SpvCapabilityGeometryShaderPassthroughNV = 5251,
974 SpvCapabilityShaderViewportIndexLayerEXT = 5254,
975 SpvCapabilityShaderViewportIndexLayerNV = 5254,
976 SpvCapabilityShaderViewportMaskNV = 5255,
977 SpvCapabilityShaderStereoViewNV = 5259,
978 SpvCapabilityPerViewAttributesNV = 5260,
979 SpvCapabilityFragmentFullyCoveredEXT = 5265,
980 SpvCapabilityMeshShadingNV = 5266,
981 SpvCapabilityImageFootprintNV = 5282,
982 SpvCapabilityFragmentBarycentricKHR = 5284,
983 SpvCapabilityFragmentBarycentricNV = 5284,
984 SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
985 SpvCapabilityFragmentDensityEXT = 5291,
986 SpvCapabilityShadingRateNV = 5291,
987 SpvCapabilityGroupNonUniformPartitionedNV = 5297,
988 SpvCapabilityShaderNonUniform = 5301,
989 SpvCapabilityShaderNonUniformEXT = 5301,
990 SpvCapabilityRuntimeDescriptorArray = 5302,
991 SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
992 SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
993 SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
994 SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
995 SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
996 SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
997 SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
998 SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
999 SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
1000 SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
1001 SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
1002 SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
1003 SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
1004 SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
1005 SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
1006 SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
1007 SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
1008 SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
1009 SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
1010 SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
1011 SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1012 SpvCapabilityRayTracingNV = 5340,
1013 SpvCapabilityRayTracingMotionBlurNV = 5341,
1014 SpvCapabilityVulkanMemoryModel = 5345,
1015 SpvCapabilityVulkanMemoryModelKHR = 5345,
1016 SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
1017 SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
1018 SpvCapabilityPhysicalStorageBufferAddresses = 5347,
1019 SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
1020 SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
1021 SpvCapabilityRayTracingProvisionalKHR = 5353,
1022 SpvCapabilityCooperativeMatrixNV = 5357,
1023 SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
1024 SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
1025 SpvCapabilityShaderSMBuiltinsNV = 5373,
1026 SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
1027 SpvCapabilityDemoteToHelperInvocation = 5379,
1028 SpvCapabilityDemoteToHelperInvocationEXT = 5379,
1029 SpvCapabilityBindlessTextureNV = 5390,
1030 SpvCapabilitySubgroupShuffleINTEL = 5568,
1031 SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
1032 SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
1033 SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
1034 SpvCapabilityRoundToInfinityINTEL = 5582,
1035 SpvCapabilityFloatingPointModeINTEL = 5583,
1036 SpvCapabilityIntegerFunctions2INTEL = 5584,
1037 SpvCapabilityFunctionPointersINTEL = 5603,
1038 SpvCapabilityIndirectReferencesINTEL = 5604,
1039 SpvCapabilityAsmINTEL = 5606,
1040 SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
1041 SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
1042 SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
1043 SpvCapabilityVectorComputeINTEL = 5617,
1044 SpvCapabilityVectorAnyINTEL = 5619,
1045 SpvCapabilityExpectAssumeKHR = 5629,
1046 SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
1047 SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
1048 SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
1049 SpvCapabilityVariableLengthArrayINTEL = 5817,
1050 SpvCapabilityFunctionFloatControlINTEL = 5821,
1051 SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
1052 SpvCapabilityFPFastMathModeINTEL = 5837,
1053 SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
1054 SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
1055 SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
1056 SpvCapabilityFPGALoopControlsINTEL = 5888,
1057 SpvCapabilityKernelAttributesINTEL = 5892,
1058 SpvCapabilityFPGAKernelAttributesINTEL = 5897,
1059 SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
1060 SpvCapabilityFPGAClusterAttributesINTEL = 5904,
1061 SpvCapabilityLoopFuseINTEL = 5906,
1062 SpvCapabilityFPGABufferLocationINTEL = 5920,
1063 SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
1064 SpvCapabilityUSMStorageClassesINTEL = 5935,
1065 SpvCapabilityIOPipesINTEL = 5943,
1066 SpvCapabilityBlockingPipesINTEL = 5945,
1067 SpvCapabilityFPGARegINTEL = 5948,
1068 SpvCapabilityDotProductInputAll = 6016,
1069 SpvCapabilityDotProductInputAllKHR = 6016,
1070 SpvCapabilityDotProductInput4x8Bit = 6017,
1071 SpvCapabilityDotProductInput4x8BitKHR = 6017,
1072 SpvCapabilityDotProductInput4x8BitPacked = 6018,
1073 SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
1074 SpvCapabilityDotProduct = 6019,
1075 SpvCapabilityDotProductKHR = 6019,
1076 SpvCapabilityBitInstructions = 6025,
1077 SpvCapabilityAtomicFloat32AddEXT = 6033,
1078 SpvCapabilityAtomicFloat64AddEXT = 6034,
1079 SpvCapabilityLongConstantCompositeINTEL = 6089,
1080 SpvCapabilityOptNoneINTEL = 6094,
1081 SpvCapabilityAtomicFloat16AddEXT = 6095,
1082 SpvCapabilityDebugInfoModuleINTEL = 6114,
1083 SpvCapabilityMax = 0x7fffffff,
1084} SpvCapability;
1085
1086typedef enum SpvRayFlagsShift_ {
1087 SpvRayFlagsOpaqueKHRShift = 0,
1088 SpvRayFlagsNoOpaqueKHRShift = 1,
1089 SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
1090 SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
1091 SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
1092 SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
1093 SpvRayFlagsCullOpaqueKHRShift = 6,
1094 SpvRayFlagsCullNoOpaqueKHRShift = 7,
1095 SpvRayFlagsSkipTrianglesKHRShift = 8,
1096 SpvRayFlagsSkipAABBsKHRShift = 9,
1097 SpvRayFlagsMax = 0x7fffffff,
1098} SpvRayFlagsShift;
1099
1100typedef enum SpvRayFlagsMask_ {
1101 SpvRayFlagsMaskNone = 0,
1102 SpvRayFlagsOpaqueKHRMask = 0x00000001,
1103 SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
1104 SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
1105 SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
1106 SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
1107 SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
1108 SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
1109 SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
1110 SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
1111 SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
1112} SpvRayFlagsMask;
1113
1114typedef enum SpvRayQueryIntersection_ {
1115 SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
1116 SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
1117 SpvRayQueryIntersectionMax = 0x7fffffff,
1118} SpvRayQueryIntersection;
1119
1120typedef enum SpvRayQueryCommittedIntersectionType_ {
1121 SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
1122 SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
1123 SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
1124 SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
1125} SpvRayQueryCommittedIntersectionType;
1126
1127typedef enum SpvRayQueryCandidateIntersectionType_ {
1128 SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
1129 SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
1130 SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
1131} SpvRayQueryCandidateIntersectionType;
1132
1133typedef enum SpvFragmentShadingRateShift_ {
1134 SpvFragmentShadingRateVertical2PixelsShift = 0,
1135 SpvFragmentShadingRateVertical4PixelsShift = 1,
1136 SpvFragmentShadingRateHorizontal2PixelsShift = 2,
1137 SpvFragmentShadingRateHorizontal4PixelsShift = 3,
1138 SpvFragmentShadingRateMax = 0x7fffffff,
1139} SpvFragmentShadingRateShift;
1140
1141typedef enum SpvFragmentShadingRateMask_ {
1142 SpvFragmentShadingRateMaskNone = 0,
1143 SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
1144 SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
1145 SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
1146 SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
1147} SpvFragmentShadingRateMask;
1148
1149typedef enum SpvFPDenormMode_ {
1150 SpvFPDenormModePreserve = 0,
1151 SpvFPDenormModeFlushToZero = 1,
1152 SpvFPDenormModeMax = 0x7fffffff,
1153} SpvFPDenormMode;
1154
1155typedef enum SpvFPOperationMode_ {
1156 SpvFPOperationModeIEEE = 0,
1157 SpvFPOperationModeALT = 1,
1158 SpvFPOperationModeMax = 0x7fffffff,
1159} SpvFPOperationMode;
1160
1161typedef enum SpvQuantizationModes_ {
1162 SpvQuantizationModesTRN = 0,
1163 SpvQuantizationModesTRN_ZERO = 1,
1164 SpvQuantizationModesRND = 2,
1165 SpvQuantizationModesRND_ZERO = 3,
1166 SpvQuantizationModesRND_INF = 4,
1167 SpvQuantizationModesRND_MIN_INF = 5,
1168 SpvQuantizationModesRND_CONV = 6,
1169 SpvQuantizationModesRND_CONV_ODD = 7,
1170 SpvQuantizationModesMax = 0x7fffffff,
1171} SpvQuantizationModes;
1172
1173typedef enum SpvOverflowModes_ {
1174 SpvOverflowModesWRAP = 0,
1175 SpvOverflowModesSAT = 1,
1176 SpvOverflowModesSAT_ZERO = 2,
1177 SpvOverflowModesSAT_SYM = 3,
1178 SpvOverflowModesMax = 0x7fffffff,
1179} SpvOverflowModes;
1180
1181typedef enum SpvPackedVectorFormat_ {
1182 SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
1183 SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
1184 SpvPackedVectorFormatMax = 0x7fffffff,
1185} SpvPackedVectorFormat;
1186
1187typedef enum SpvOp_ {
1188 SpvOpNop = 0,
1189 SpvOpUndef = 1,
1190 SpvOpSourceContinued = 2,
1191 SpvOpSource = 3,
1192 SpvOpSourceExtension = 4,
1193 SpvOpName = 5,
1194 SpvOpMemberName = 6,
1195 SpvOpString = 7,
1196 SpvOpLine = 8,
1197 SpvOpExtension = 10,
1198 SpvOpExtInstImport = 11,
1199 SpvOpExtInst = 12,
1200 SpvOpMemoryModel = 14,
1201 SpvOpEntryPoint = 15,
1202 SpvOpExecutionMode = 16,
1203 SpvOpCapability = 17,
1204 SpvOpTypeVoid = 19,
1205 SpvOpTypeBool = 20,
1206 SpvOpTypeInt = 21,
1207 SpvOpTypeFloat = 22,
1208 SpvOpTypeVector = 23,
1209 SpvOpTypeMatrix = 24,
1210 SpvOpTypeImage = 25,
1211 SpvOpTypeSampler = 26,
1212 SpvOpTypeSampledImage = 27,
1213 SpvOpTypeArray = 28,
1214 SpvOpTypeRuntimeArray = 29,
1215 SpvOpTypeStruct = 30,
1216 SpvOpTypeOpaque = 31,
1217 SpvOpTypePointer = 32,
1218 SpvOpTypeFunction = 33,
1219 SpvOpTypeEvent = 34,
1220 SpvOpTypeDeviceEvent = 35,
1221 SpvOpTypeReserveId = 36,
1222 SpvOpTypeQueue = 37,
1223 SpvOpTypePipe = 38,
1224 SpvOpTypeForwardPointer = 39,
1225 SpvOpConstantTrue = 41,
1226 SpvOpConstantFalse = 42,
1227 SpvOpConstant = 43,
1228 SpvOpConstantComposite = 44,
1229 SpvOpConstantSampler = 45,
1230 SpvOpConstantNull = 46,
1231 SpvOpSpecConstantTrue = 48,
1232 SpvOpSpecConstantFalse = 49,
1233 SpvOpSpecConstant = 50,
1234 SpvOpSpecConstantComposite = 51,
1235 SpvOpSpecConstantOp = 52,
1236 SpvOpFunction = 54,
1237 SpvOpFunctionParameter = 55,
1238 SpvOpFunctionEnd = 56,
1239 SpvOpFunctionCall = 57,
1240 SpvOpVariable = 59,
1241 SpvOpImageTexelPointer = 60,
1242 SpvOpLoad = 61,
1243 SpvOpStore = 62,
1244 SpvOpCopyMemory = 63,
1245 SpvOpCopyMemorySized = 64,
1246 SpvOpAccessChain = 65,
1247 SpvOpInBoundsAccessChain = 66,
1248 SpvOpPtrAccessChain = 67,
1249 SpvOpArrayLength = 68,
1250 SpvOpGenericPtrMemSemantics = 69,
1251 SpvOpInBoundsPtrAccessChain = 70,
1252 SpvOpDecorate = 71,
1253 SpvOpMemberDecorate = 72,
1254 SpvOpDecorationGroup = 73,
1255 SpvOpGroupDecorate = 74,
1256 SpvOpGroupMemberDecorate = 75,
1257 SpvOpVectorExtractDynamic = 77,
1258 SpvOpVectorInsertDynamic = 78,
1259 SpvOpVectorShuffle = 79,
1260 SpvOpCompositeConstruct = 80,
1261 SpvOpCompositeExtract = 81,
1262 SpvOpCompositeInsert = 82,
1263 SpvOpCopyObject = 83,
1264 SpvOpTranspose = 84,
1265 SpvOpSampledImage = 86,
1266 SpvOpImageSampleImplicitLod = 87,
1267 SpvOpImageSampleExplicitLod = 88,
1268 SpvOpImageSampleDrefImplicitLod = 89,
1269 SpvOpImageSampleDrefExplicitLod = 90,
1270 SpvOpImageSampleProjImplicitLod = 91,
1271 SpvOpImageSampleProjExplicitLod = 92,
1272 SpvOpImageSampleProjDrefImplicitLod = 93,
1273 SpvOpImageSampleProjDrefExplicitLod = 94,
1274 SpvOpImageFetch = 95,
1275 SpvOpImageGather = 96,
1276 SpvOpImageDrefGather = 97,
1277 SpvOpImageRead = 98,
1278 SpvOpImageWrite = 99,
1279 SpvOpImage = 100,
1280 SpvOpImageQueryFormat = 101,
1281 SpvOpImageQueryOrder = 102,
1282 SpvOpImageQuerySizeLod = 103,
1283 SpvOpImageQuerySize = 104,
1284 SpvOpImageQueryLod = 105,
1285 SpvOpImageQueryLevels = 106,
1286 SpvOpImageQuerySamples = 107,
1287 SpvOpConvertFToU = 109,
1288 SpvOpConvertFToS = 110,
1289 SpvOpConvertSToF = 111,
1290 SpvOpConvertUToF = 112,
1291 SpvOpUConvert = 113,
1292 SpvOpSConvert = 114,
1293 SpvOpFConvert = 115,
1294 SpvOpQuantizeToF16 = 116,
1295 SpvOpConvertPtrToU = 117,
1296 SpvOpSatConvertSToU = 118,
1297 SpvOpSatConvertUToS = 119,
1298 SpvOpConvertUToPtr = 120,
1299 SpvOpPtrCastToGeneric = 121,
1300 SpvOpGenericCastToPtr = 122,
1301 SpvOpGenericCastToPtrExplicit = 123,
1302 SpvOpBitcast = 124,
1303 SpvOpSNegate = 126,
1304 SpvOpFNegate = 127,
1305 SpvOpIAdd = 128,
1306 SpvOpFAdd = 129,
1307 SpvOpISub = 130,
1308 SpvOpFSub = 131,
1309 SpvOpIMul = 132,
1310 SpvOpFMul = 133,
1311 SpvOpUDiv = 134,
1312 SpvOpSDiv = 135,
1313 SpvOpFDiv = 136,
1314 SpvOpUMod = 137,
1315 SpvOpSRem = 138,
1316 SpvOpSMod = 139,
1317 SpvOpFRem = 140,
1318 SpvOpFMod = 141,
1319 SpvOpVectorTimesScalar = 142,
1320 SpvOpMatrixTimesScalar = 143,
1321 SpvOpVectorTimesMatrix = 144,
1322 SpvOpMatrixTimesVector = 145,
1323 SpvOpMatrixTimesMatrix = 146,
1324 SpvOpOuterProduct = 147,
1325 SpvOpDot = 148,
1326 SpvOpIAddCarry = 149,
1327 SpvOpISubBorrow = 150,
1328 SpvOpUMulExtended = 151,
1329 SpvOpSMulExtended = 152,
1330 SpvOpAny = 154,
1331 SpvOpAll = 155,
1332 SpvOpIsNan = 156,
1333 SpvOpIsInf = 157,
1334 SpvOpIsFinite = 158,
1335 SpvOpIsNormal = 159,
1336 SpvOpSignBitSet = 160,
1337 SpvOpLessOrGreater = 161,
1338 SpvOpOrdered = 162,
1339 SpvOpUnordered = 163,
1340 SpvOpLogicalEqual = 164,
1341 SpvOpLogicalNotEqual = 165,
1342 SpvOpLogicalOr = 166,
1343 SpvOpLogicalAnd = 167,
1344 SpvOpLogicalNot = 168,
1345 SpvOpSelect = 169,
1346 SpvOpIEqual = 170,
1347 SpvOpINotEqual = 171,
1348 SpvOpUGreaterThan = 172,
1349 SpvOpSGreaterThan = 173,
1350 SpvOpUGreaterThanEqual = 174,
1351 SpvOpSGreaterThanEqual = 175,
1352 SpvOpULessThan = 176,
1353 SpvOpSLessThan = 177,
1354 SpvOpULessThanEqual = 178,
1355 SpvOpSLessThanEqual = 179,
1356 SpvOpFOrdEqual = 180,
1357 SpvOpFUnordEqual = 181,
1358 SpvOpFOrdNotEqual = 182,
1359 SpvOpFUnordNotEqual = 183,
1360 SpvOpFOrdLessThan = 184,
1361 SpvOpFUnordLessThan = 185,
1362 SpvOpFOrdGreaterThan = 186,
1363 SpvOpFUnordGreaterThan = 187,
1364 SpvOpFOrdLessThanEqual = 188,
1365 SpvOpFUnordLessThanEqual = 189,
1366 SpvOpFOrdGreaterThanEqual = 190,
1367 SpvOpFUnordGreaterThanEqual = 191,
1368 SpvOpShiftRightLogical = 194,
1369 SpvOpShiftRightArithmetic = 195,
1370 SpvOpShiftLeftLogical = 196,
1371 SpvOpBitwiseOr = 197,
1372 SpvOpBitwiseXor = 198,
1373 SpvOpBitwiseAnd = 199,
1374 SpvOpNot = 200,
1375 SpvOpBitFieldInsert = 201,
1376 SpvOpBitFieldSExtract = 202,
1377 SpvOpBitFieldUExtract = 203,
1378 SpvOpBitReverse = 204,
1379 SpvOpBitCount = 205,
1380 SpvOpDPdx = 207,
1381 SpvOpDPdy = 208,
1382 SpvOpFwidth = 209,
1383 SpvOpDPdxFine = 210,
1384 SpvOpDPdyFine = 211,
1385 SpvOpFwidthFine = 212,
1386 SpvOpDPdxCoarse = 213,
1387 SpvOpDPdyCoarse = 214,
1388 SpvOpFwidthCoarse = 215,
1389 SpvOpEmitVertex = 218,
1390 SpvOpEndPrimitive = 219,
1391 SpvOpEmitStreamVertex = 220,
1392 SpvOpEndStreamPrimitive = 221,
1393 SpvOpControlBarrier = 224,
1394 SpvOpMemoryBarrier = 225,
1395 SpvOpAtomicLoad = 227,
1396 SpvOpAtomicStore = 228,
1397 SpvOpAtomicExchange = 229,
1398 SpvOpAtomicCompareExchange = 230,
1399 SpvOpAtomicCompareExchangeWeak = 231,
1400 SpvOpAtomicIIncrement = 232,
1401 SpvOpAtomicIDecrement = 233,
1402 SpvOpAtomicIAdd = 234,
1403 SpvOpAtomicISub = 235,
1404 SpvOpAtomicSMin = 236,
1405 SpvOpAtomicUMin = 237,
1406 SpvOpAtomicSMax = 238,
1407 SpvOpAtomicUMax = 239,
1408 SpvOpAtomicAnd = 240,
1409 SpvOpAtomicOr = 241,
1410 SpvOpAtomicXor = 242,
1411 SpvOpPhi = 245,
1412 SpvOpLoopMerge = 246,
1413 SpvOpSelectionMerge = 247,
1414 SpvOpLabel = 248,
1415 SpvOpBranch = 249,
1416 SpvOpBranchConditional = 250,
1417 SpvOpSwitch = 251,
1418 SpvOpKill = 252,
1419 SpvOpReturn = 253,
1420 SpvOpReturnValue = 254,
1421 SpvOpUnreachable = 255,
1422 SpvOpLifetimeStart = 256,
1423 SpvOpLifetimeStop = 257,
1424 SpvOpGroupAsyncCopy = 259,
1425 SpvOpGroupWaitEvents = 260,
1426 SpvOpGroupAll = 261,
1427 SpvOpGroupAny = 262,
1428 SpvOpGroupBroadcast = 263,
1429 SpvOpGroupIAdd = 264,
1430 SpvOpGroupFAdd = 265,
1431 SpvOpGroupFMin = 266,
1432 SpvOpGroupUMin = 267,
1433 SpvOpGroupSMin = 268,
1434 SpvOpGroupFMax = 269,
1435 SpvOpGroupUMax = 270,
1436 SpvOpGroupSMax = 271,
1437 SpvOpReadPipe = 274,
1438 SpvOpWritePipe = 275,
1439 SpvOpReservedReadPipe = 276,
1440 SpvOpReservedWritePipe = 277,
1441 SpvOpReserveReadPipePackets = 278,
1442 SpvOpReserveWritePipePackets = 279,
1443 SpvOpCommitReadPipe = 280,
1444 SpvOpCommitWritePipe = 281,
1445 SpvOpIsValidReserveId = 282,
1446 SpvOpGetNumPipePackets = 283,
1447 SpvOpGetMaxPipePackets = 284,
1448 SpvOpGroupReserveReadPipePackets = 285,
1449 SpvOpGroupReserveWritePipePackets = 286,
1450 SpvOpGroupCommitReadPipe = 287,
1451 SpvOpGroupCommitWritePipe = 288,
1452 SpvOpEnqueueMarker = 291,
1453 SpvOpEnqueueKernel = 292,
1454 SpvOpGetKernelNDrangeSubGroupCount = 293,
1455 SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1456 SpvOpGetKernelWorkGroupSize = 295,
1457 SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1458 SpvOpRetainEvent = 297,
1459 SpvOpReleaseEvent = 298,
1460 SpvOpCreateUserEvent = 299,
1461 SpvOpIsValidEvent = 300,
1462 SpvOpSetUserEventStatus = 301,
1463 SpvOpCaptureEventProfilingInfo = 302,
1464 SpvOpGetDefaultQueue = 303,
1465 SpvOpBuildNDRange = 304,
1466 SpvOpImageSparseSampleImplicitLod = 305,
1467 SpvOpImageSparseSampleExplicitLod = 306,
1468 SpvOpImageSparseSampleDrefImplicitLod = 307,
1469 SpvOpImageSparseSampleDrefExplicitLod = 308,
1470 SpvOpImageSparseSampleProjImplicitLod = 309,
1471 SpvOpImageSparseSampleProjExplicitLod = 310,
1472 SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1473 SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1474 SpvOpImageSparseFetch = 313,
1475 SpvOpImageSparseGather = 314,
1476 SpvOpImageSparseDrefGather = 315,
1477 SpvOpImageSparseTexelsResident = 316,
1478 SpvOpNoLine = 317,
1479 SpvOpAtomicFlagTestAndSet = 318,
1480 SpvOpAtomicFlagClear = 319,
1481 SpvOpImageSparseRead = 320,
1482 SpvOpSizeOf = 321,
1483 SpvOpTypePipeStorage = 322,
1484 SpvOpConstantPipeStorage = 323,
1485 SpvOpCreatePipeFromPipeStorage = 324,
1486 SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1487 SpvOpGetKernelMaxNumSubgroups = 326,
1488 SpvOpTypeNamedBarrier = 327,
1489 SpvOpNamedBarrierInitialize = 328,
1490 SpvOpMemoryNamedBarrier = 329,
1491 SpvOpModuleProcessed = 330,
1492 SpvOpExecutionModeId = 331,
1493 SpvOpDecorateId = 332,
1494 SpvOpGroupNonUniformElect = 333,
1495 SpvOpGroupNonUniformAll = 334,
1496 SpvOpGroupNonUniformAny = 335,
1497 SpvOpGroupNonUniformAllEqual = 336,
1498 SpvOpGroupNonUniformBroadcast = 337,
1499 SpvOpGroupNonUniformBroadcastFirst = 338,
1500 SpvOpGroupNonUniformBallot = 339,
1501 SpvOpGroupNonUniformInverseBallot = 340,
1502 SpvOpGroupNonUniformBallotBitExtract = 341,
1503 SpvOpGroupNonUniformBallotBitCount = 342,
1504 SpvOpGroupNonUniformBallotFindLSB = 343,
1505 SpvOpGroupNonUniformBallotFindMSB = 344,
1506 SpvOpGroupNonUniformShuffle = 345,
1507 SpvOpGroupNonUniformShuffleXor = 346,
1508 SpvOpGroupNonUniformShuffleUp = 347,
1509 SpvOpGroupNonUniformShuffleDown = 348,
1510 SpvOpGroupNonUniformIAdd = 349,
1511 SpvOpGroupNonUniformFAdd = 350,
1512 SpvOpGroupNonUniformIMul = 351,
1513 SpvOpGroupNonUniformFMul = 352,
1514 SpvOpGroupNonUniformSMin = 353,
1515 SpvOpGroupNonUniformUMin = 354,
1516 SpvOpGroupNonUniformFMin = 355,
1517 SpvOpGroupNonUniformSMax = 356,
1518 SpvOpGroupNonUniformUMax = 357,
1519 SpvOpGroupNonUniformFMax = 358,
1520 SpvOpGroupNonUniformBitwiseAnd = 359,
1521 SpvOpGroupNonUniformBitwiseOr = 360,
1522 SpvOpGroupNonUniformBitwiseXor = 361,
1523 SpvOpGroupNonUniformLogicalAnd = 362,
1524 SpvOpGroupNonUniformLogicalOr = 363,
1525 SpvOpGroupNonUniformLogicalXor = 364,
1526 SpvOpGroupNonUniformQuadBroadcast = 365,
1527 SpvOpGroupNonUniformQuadSwap = 366,
1528 SpvOpCopyLogical = 400,
1529 SpvOpPtrEqual = 401,
1530 SpvOpPtrNotEqual = 402,
1531 SpvOpPtrDiff = 403,
1532 SpvOpTerminateInvocation = 4416,
1533 SpvOpSubgroupBallotKHR = 4421,
1534 SpvOpSubgroupFirstInvocationKHR = 4422,
1535 SpvOpSubgroupAllKHR = 4428,
1536 SpvOpSubgroupAnyKHR = 4429,
1537 SpvOpSubgroupAllEqualKHR = 4430,
1538 SpvOpSubgroupReadInvocationKHR = 4432,
1539 SpvOpTraceRayKHR = 4445,
1540 SpvOpExecuteCallableKHR = 4446,
1541 SpvOpConvertUToAccelerationStructureKHR = 4447,
1542 SpvOpIgnoreIntersectionKHR = 4448,
1543 SpvOpTerminateRayKHR = 4449,
1544 SpvOpSDot = 4450,
1545 SpvOpSDotKHR = 4450,
1546 SpvOpUDot = 4451,
1547 SpvOpUDotKHR = 4451,
1548 SpvOpSUDot = 4452,
1549 SpvOpSUDotKHR = 4452,
1550 SpvOpSDotAccSat = 4453,
1551 SpvOpSDotAccSatKHR = 4453,
1552 SpvOpUDotAccSat = 4454,
1553 SpvOpUDotAccSatKHR = 4454,
1554 SpvOpSUDotAccSat = 4455,
1555 SpvOpSUDotAccSatKHR = 4455,
1556 SpvOpTypeRayQueryKHR = 4472,
1557 SpvOpRayQueryInitializeKHR = 4473,
1558 SpvOpRayQueryTerminateKHR = 4474,
1559 SpvOpRayQueryGenerateIntersectionKHR = 4475,
1560 SpvOpRayQueryConfirmIntersectionKHR = 4476,
1561 SpvOpRayQueryProceedKHR = 4477,
1562 SpvOpRayQueryGetIntersectionTypeKHR = 4479,
1563 SpvOpGroupIAddNonUniformAMD = 5000,
1564 SpvOpGroupFAddNonUniformAMD = 5001,
1565 SpvOpGroupFMinNonUniformAMD = 5002,
1566 SpvOpGroupUMinNonUniformAMD = 5003,
1567 SpvOpGroupSMinNonUniformAMD = 5004,
1568 SpvOpGroupFMaxNonUniformAMD = 5005,
1569 SpvOpGroupUMaxNonUniformAMD = 5006,
1570 SpvOpGroupSMaxNonUniformAMD = 5007,
1571 SpvOpFragmentMaskFetchAMD = 5011,
1572 SpvOpFragmentFetchAMD = 5012,
1573 SpvOpReadClockKHR = 5056,
1574 SpvOpImageSampleFootprintNV = 5283,
1575 SpvOpGroupNonUniformPartitionNV = 5296,
1576 SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1577 SpvOpReportIntersectionKHR = 5334,
1578 SpvOpReportIntersectionNV = 5334,
1579 SpvOpIgnoreIntersectionNV = 5335,
1580 SpvOpTerminateRayNV = 5336,
1581 SpvOpTraceNV = 5337,
1582 SpvOpTraceMotionNV = 5338,
1583 SpvOpTraceRayMotionNV = 5339,
1584 SpvOpTypeAccelerationStructureKHR = 5341,
1585 SpvOpTypeAccelerationStructureNV = 5341,
1586 SpvOpExecuteCallableNV = 5344,
1587 SpvOpTypeCooperativeMatrixNV = 5358,
1588 SpvOpCooperativeMatrixLoadNV = 5359,
1589 SpvOpCooperativeMatrixStoreNV = 5360,
1590 SpvOpCooperativeMatrixMulAddNV = 5361,
1591 SpvOpCooperativeMatrixLengthNV = 5362,
1592 SpvOpBeginInvocationInterlockEXT = 5364,
1593 SpvOpEndInvocationInterlockEXT = 5365,
1594 SpvOpDemoteToHelperInvocation = 5380,
1595 SpvOpDemoteToHelperInvocationEXT = 5380,
1596 SpvOpIsHelperInvocationEXT = 5381,
1597 SpvOpConvertUToImageNV = 5391,
1598 SpvOpConvertUToSamplerNV = 5392,
1599 SpvOpConvertImageToUNV = 5393,
1600 SpvOpConvertSamplerToUNV = 5394,
1601 SpvOpConvertUToSampledImageNV = 5395,
1602 SpvOpConvertSampledImageToUNV = 5396,
1603 SpvOpSamplerImageAddressingModeNV = 5397,
1604 SpvOpSubgroupShuffleINTEL = 5571,
1605 SpvOpSubgroupShuffleDownINTEL = 5572,
1606 SpvOpSubgroupShuffleUpINTEL = 5573,
1607 SpvOpSubgroupShuffleXorINTEL = 5574,
1608 SpvOpSubgroupBlockReadINTEL = 5575,
1609 SpvOpSubgroupBlockWriteINTEL = 5576,
1610 SpvOpSubgroupImageBlockReadINTEL = 5577,
1611 SpvOpSubgroupImageBlockWriteINTEL = 5578,
1612 SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
1613 SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
1614 SpvOpUCountLeadingZerosINTEL = 5585,
1615 SpvOpUCountTrailingZerosINTEL = 5586,
1616 SpvOpAbsISubINTEL = 5587,
1617 SpvOpAbsUSubINTEL = 5588,
1618 SpvOpIAddSatINTEL = 5589,
1619 SpvOpUAddSatINTEL = 5590,
1620 SpvOpIAverageINTEL = 5591,
1621 SpvOpUAverageINTEL = 5592,
1622 SpvOpIAverageRoundedINTEL = 5593,
1623 SpvOpUAverageRoundedINTEL = 5594,
1624 SpvOpISubSatINTEL = 5595,
1625 SpvOpUSubSatINTEL = 5596,
1626 SpvOpIMul32x16INTEL = 5597,
1627 SpvOpUMul32x16INTEL = 5598,
1628 SpvOpConstantFunctionPointerINTEL = 5600,
1629 SpvOpFunctionPointerCallINTEL = 5601,
1630 SpvOpAsmTargetINTEL = 5609,
1631 SpvOpAsmINTEL = 5610,
1632 SpvOpAsmCallINTEL = 5611,
1633 SpvOpAtomicFMinEXT = 5614,
1634 SpvOpAtomicFMaxEXT = 5615,
1635 SpvOpAssumeTrueKHR = 5630,
1636 SpvOpExpectKHR = 5631,
1637 SpvOpDecorateString = 5632,
1638 SpvOpDecorateStringGOOGLE = 5632,
1639 SpvOpMemberDecorateString = 5633,
1640 SpvOpMemberDecorateStringGOOGLE = 5633,
1641 SpvOpVmeImageINTEL = 5699,
1642 SpvOpTypeVmeImageINTEL = 5700,
1643 SpvOpTypeAvcImePayloadINTEL = 5701,
1644 SpvOpTypeAvcRefPayloadINTEL = 5702,
1645 SpvOpTypeAvcSicPayloadINTEL = 5703,
1646 SpvOpTypeAvcMcePayloadINTEL = 5704,
1647 SpvOpTypeAvcMceResultINTEL = 5705,
1648 SpvOpTypeAvcImeResultINTEL = 5706,
1649 SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1650 SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1651 SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1652 SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1653 SpvOpTypeAvcRefResultINTEL = 5711,
1654 SpvOpTypeAvcSicResultINTEL = 5712,
1655 SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1656 SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1657 SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1658 SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1659 SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1660 SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1661 SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1662 SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1663 SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1664 SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1665 SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1666 SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1667 SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1668 SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1669 SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1670 SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1671 SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1672 SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1673 SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1674 SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1675 SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1676 SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1677 SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1678 SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1679 SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1680 SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1681 SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1682 SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1683 SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1684 SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1685 SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1686 SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1687 SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1688 SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1689 SpvOpSubgroupAvcImeInitializeINTEL = 5747,
1690 SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1691 SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1692 SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1693 SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1694 SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1695 SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1696 SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1697 SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1698 SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1699 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1700 SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1701 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1702 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1703 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1704 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1705 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1706 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1707 SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1708 SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1709 SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1710 SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1711 SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1712 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
1713 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
1714 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
1715 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
1716 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1717 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
1718 SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1719 SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1720 SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1721 SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1722 SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1723 SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
1724 SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
1725 SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1726 SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1727 SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1728 SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1729 SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1730 SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1731 SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1732 SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1733 SpvOpSubgroupAvcSicInitializeINTEL = 5791,
1734 SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
1735 SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1736 SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1737 SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1738 SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1739 SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1740 SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1741 SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1742 SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1743 SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1744 SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1745 SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1746 SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1747 SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1748 SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1749 SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1750 SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1751 SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1752 SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1753 SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
1754 SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
1755 SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
1756 SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
1757 SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
1758 SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
1759 SpvOpVariableLengthArrayINTEL = 5818,
1760 SpvOpSaveMemoryINTEL = 5819,
1761 SpvOpRestoreMemoryINTEL = 5820,
1762 SpvOpArbitraryFloatSinCosPiINTEL = 5840,
1763 SpvOpArbitraryFloatCastINTEL = 5841,
1764 SpvOpArbitraryFloatCastFromIntINTEL = 5842,
1765 SpvOpArbitraryFloatCastToIntINTEL = 5843,
1766 SpvOpArbitraryFloatAddINTEL = 5846,
1767 SpvOpArbitraryFloatSubINTEL = 5847,
1768 SpvOpArbitraryFloatMulINTEL = 5848,
1769 SpvOpArbitraryFloatDivINTEL = 5849,
1770 SpvOpArbitraryFloatGTINTEL = 5850,
1771 SpvOpArbitraryFloatGEINTEL = 5851,
1772 SpvOpArbitraryFloatLTINTEL = 5852,
1773 SpvOpArbitraryFloatLEINTEL = 5853,
1774 SpvOpArbitraryFloatEQINTEL = 5854,
1775 SpvOpArbitraryFloatRecipINTEL = 5855,
1776 SpvOpArbitraryFloatRSqrtINTEL = 5856,
1777 SpvOpArbitraryFloatCbrtINTEL = 5857,
1778 SpvOpArbitraryFloatHypotINTEL = 5858,
1779 SpvOpArbitraryFloatSqrtINTEL = 5859,
1780 SpvOpArbitraryFloatLogINTEL = 5860,
1781 SpvOpArbitraryFloatLog2INTEL = 5861,
1782 SpvOpArbitraryFloatLog10INTEL = 5862,
1783 SpvOpArbitraryFloatLog1pINTEL = 5863,
1784 SpvOpArbitraryFloatExpINTEL = 5864,
1785 SpvOpArbitraryFloatExp2INTEL = 5865,
1786 SpvOpArbitraryFloatExp10INTEL = 5866,
1787 SpvOpArbitraryFloatExpm1INTEL = 5867,
1788 SpvOpArbitraryFloatSinINTEL = 5868,
1789 SpvOpArbitraryFloatCosINTEL = 5869,
1790 SpvOpArbitraryFloatSinCosINTEL = 5870,
1791 SpvOpArbitraryFloatSinPiINTEL = 5871,
1792 SpvOpArbitraryFloatCosPiINTEL = 5872,
1793 SpvOpArbitraryFloatASinINTEL = 5873,
1794 SpvOpArbitraryFloatASinPiINTEL = 5874,
1795 SpvOpArbitraryFloatACosINTEL = 5875,
1796 SpvOpArbitraryFloatACosPiINTEL = 5876,
1797 SpvOpArbitraryFloatATanINTEL = 5877,
1798 SpvOpArbitraryFloatATanPiINTEL = 5878,
1799 SpvOpArbitraryFloatATan2INTEL = 5879,
1800 SpvOpArbitraryFloatPowINTEL = 5880,
1801 SpvOpArbitraryFloatPowRINTEL = 5881,
1802 SpvOpArbitraryFloatPowNINTEL = 5882,
1803 SpvOpLoopControlINTEL = 5887,
1804 SpvOpFixedSqrtINTEL = 5923,
1805 SpvOpFixedRecipINTEL = 5924,
1806 SpvOpFixedRsqrtINTEL = 5925,
1807 SpvOpFixedSinINTEL = 5926,
1808 SpvOpFixedCosINTEL = 5927,
1809 SpvOpFixedSinCosINTEL = 5928,
1810 SpvOpFixedSinPiINTEL = 5929,
1811 SpvOpFixedCosPiINTEL = 5930,
1812 SpvOpFixedSinCosPiINTEL = 5931,
1813 SpvOpFixedLogINTEL = 5932,
1814 SpvOpFixedExpINTEL = 5933,
1815 SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
1816 SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
1817 SpvOpReadPipeBlockingINTEL = 5946,
1818 SpvOpWritePipeBlockingINTEL = 5947,
1819 SpvOpFPGARegINTEL = 5949,
1820 SpvOpRayQueryGetRayTMinKHR = 6016,
1821 SpvOpRayQueryGetRayFlagsKHR = 6017,
1822 SpvOpRayQueryGetIntersectionTKHR = 6018,
1823 SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
1824 SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
1825 SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
1826 SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
1827 SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
1828 SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
1829 SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
1830 SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
1831 SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
1832 SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
1833 SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
1834 SpvOpRayQueryGetWorldRayOriginKHR = 6030,
1835 SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
1836 SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
1837 SpvOpAtomicFAddEXT = 6035,
1838 SpvOpTypeBufferSurfaceINTEL = 6086,
1839 SpvOpTypeStructContinuedINTEL = 6090,
1840 SpvOpConstantCompositeContinuedINTEL = 6091,
1841 SpvOpSpecConstantCompositeContinuedINTEL = 6092,
1842 SpvOpMax = 0x7fffffff,
1843} SpvOp;
1844
1845#ifdef SPV_ENABLE_UTILITY_CODE
1846inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
1847 *hasResult = *hasResultType = false;
1848 switch (opcode) {
1849 default: /* unknown opcode */ break;
1850 case SpvOpNop: *hasResult = false; *hasResultType = false; break;
1851 case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
1852 case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
1853 case SpvOpSource: *hasResult = false; *hasResultType = false; break;
1854 case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
1855 case SpvOpName: *hasResult = false; *hasResultType = false; break;
1856 case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
1857 case SpvOpString: *hasResult = true; *hasResultType = false; break;
1858 case SpvOpLine: *hasResult = false; *hasResultType = false; break;
1859 case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
1860 case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
1861 case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
1862 case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
1863 case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
1864 case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
1865 case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
1866 case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
1867 case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
1868 case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
1869 case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
1870 case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
1871 case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
1872 case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
1873 case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
1874 case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
1875 case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
1876 case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
1877 case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
1878 case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
1879 case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
1880 case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
1881 case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
1882 case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
1883 case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
1884 case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
1885 case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
1886 case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
1887 case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
1888 case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
1889 case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
1890 case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
1891 case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
1892 case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
1893 case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
1894 case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
1895 case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
1896 case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
1897 case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
1898 case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
1899 case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
1900 case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
1901 case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
1902 case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
1903 case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
1904 case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
1905 case SpvOpStore: *hasResult = false; *hasResultType = false; break;
1906 case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
1907 case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
1908 case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
1909 case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
1910 case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1911 case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
1912 case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
1913 case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1914 case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
1915 case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
1916 case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
1917 case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
1918 case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
1919 case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
1920 case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
1921 case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
1922 case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
1923 case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
1924 case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
1925 case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
1926 case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
1927 case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
1928 case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1929 case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1930 case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1931 case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1932 case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1933 case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1934 case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1935 case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1936 case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
1937 case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
1938 case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
1939 case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
1940 case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
1941 case SpvOpImage: *hasResult = true; *hasResultType = true; break;
1942 case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
1943 case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
1944 case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
1945 case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
1946 case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
1947 case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
1948 case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
1949 case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
1950 case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
1951 case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
1952 case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
1953 case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
1954 case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
1955 case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
1956 case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
1957 case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
1958 case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
1959 case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
1960 case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
1961 case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
1962 case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
1963 case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
1964 case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
1965 case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
1966 case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
1967 case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
1968 case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
1969 case SpvOpISub: *hasResult = true; *hasResultType = true; break;
1970 case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
1971 case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
1972 case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
1973 case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
1974 case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
1975 case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
1976 case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
1977 case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
1978 case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
1979 case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
1980 case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
1981 case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
1982 case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
1983 case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
1984 case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
1985 case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
1986 case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
1987 case SpvOpDot: *hasResult = true; *hasResultType = true; break;
1988 case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
1989 case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
1990 case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
1991 case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
1992 case SpvOpAny: *hasResult = true; *hasResultType = true; break;
1993 case SpvOpAll: *hasResult = true; *hasResultType = true; break;
1994 case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
1995 case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
1996 case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
1997 case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
1998 case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
1999 case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
2000 case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
2001 case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
2002 case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
2003 case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
2004 case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
2005 case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
2006 case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
2007 case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
2008 case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
2009 case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
2010 case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
2011 case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
2012 case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2013 case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2014 case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
2015 case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
2016 case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
2017 case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
2018 case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
2019 case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
2020 case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
2021 case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
2022 case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
2023 case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
2024 case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
2025 case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
2026 case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
2027 case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
2028 case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2029 case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2030 case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
2031 case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
2032 case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
2033 case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
2034 case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
2035 case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2036 case SpvOpNot: *hasResult = true; *hasResultType = true; break;
2037 case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
2038 case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
2039 case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
2040 case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
2041 case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
2042 case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
2043 case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
2044 case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
2045 case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
2046 case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
2047 case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
2048 case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
2049 case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
2050 case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
2051 case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
2052 case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
2053 case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
2054 case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
2055 case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
2056 case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
2057 case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
2058 case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
2059 case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
2060 case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
2061 case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
2062 case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
2063 case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
2064 case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
2065 case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
2066 case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
2067 case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
2068 case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
2069 case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
2070 case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
2071 case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
2072 case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
2073 case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
2074 case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
2075 case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
2076 case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
2077 case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
2078 case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
2079 case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
2080 case SpvOpKill: *hasResult = false; *hasResultType = false; break;
2081 case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
2082 case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
2083 case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
2084 case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
2085 case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
2086 case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
2087 case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
2088 case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
2089 case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
2090 case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
2091 case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
2092 case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
2093 case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
2094 case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
2095 case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
2096 case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
2097 case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
2098 case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
2099 case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
2100 case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
2101 case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
2102 case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
2103 case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2104 case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2105 case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2106 case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2107 case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
2108 case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
2109 case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
2110 case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2111 case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2112 case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2113 case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2114 case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
2115 case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
2116 case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
2117 case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
2118 case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
2119 case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
2120 case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
2121 case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
2122 case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
2123 case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
2124 case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
2125 case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
2126 case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
2127 case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
2128 case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2129 case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2130 case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2131 case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2132 case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2133 case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2134 case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2135 case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2136 case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
2137 case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
2138 case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
2139 case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
2140 case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
2141 case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
2142 case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
2143 case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
2144 case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
2145 case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
2146 case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
2147 case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
2148 case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
2149 case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
2150 case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
2151 case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
2152 case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
2153 case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
2154 case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
2155 case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
2156 case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
2157 case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
2158 case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
2159 case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
2160 case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
2161 case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
2162 case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
2163 case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
2164 case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
2165 case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
2166 case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
2167 case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
2168 case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
2169 case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
2170 case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
2171 case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
2172 case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
2173 case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
2174 case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
2175 case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
2176 case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
2177 case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
2178 case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
2179 case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
2180 case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
2181 case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
2182 case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2183 case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
2184 case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
2185 case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
2186 case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
2187 case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
2188 case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
2189 case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
2190 case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
2191 case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
2192 case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
2193 case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
2194 case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
2195 case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
2196 case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
2197 case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
2198 case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
2199 case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
2200 case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
2201 case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
2202 case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
2203 case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
2204 case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2205 case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
2206 case SpvOpSDot: *hasResult = true; *hasResultType = true; break;
2207 case SpvOpUDot: *hasResult = true; *hasResultType = true; break;
2208 case SpvOpSUDot: *hasResult = true; *hasResultType = true; break;
2209 case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
2210 case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
2211 case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
2212 case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
2213 case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
2214 case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
2215 case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2216 case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2217 case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
2218 case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
2219 case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2220 case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2221 case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2222 case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2223 case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2224 case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2225 case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2226 case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2227 case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
2228 case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
2229 case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
2230 case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
2231 case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
2232 case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
2233 case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
2234 case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
2235 case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
2236 case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
2237 case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
2238 case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2239 case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
2240 case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
2241 case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
2242 case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
2243 case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
2244 case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
2245 case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
2246 case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2247 case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2248 case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
2249 case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2250 case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
2251 case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
2252 case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
2253 case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
2254 case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
2255 case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
2256 case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
2257 case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
2258 case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
2259 case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
2260 case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
2261 case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2262 case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2263 case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2264 case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2265 case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2266 case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2267 case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2268 case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2269 case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
2270 case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
2271 case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2272 case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2273 case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
2274 case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
2275 case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2276 case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2277 case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
2278 case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
2279 case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2280 case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2281 case SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
2282 case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
2283 case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
2284 case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
2285 case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
2286 case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
2287 case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
2288 case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
2289 case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break;
2290 case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
2291 case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
2292 case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
2293 case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
2294 case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2295 case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2296 case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2297 case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2298 case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
2299 case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
2300 case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2301 case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2302 case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2303 case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2304 case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
2305 case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
2306 case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2307 case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2308 case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2309 case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2310 case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2311 case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2312 case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2313 case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2314 case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2315 case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2316 case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2317 case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2318 case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2319 case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2320 case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2321 case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
2322 case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2323 case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2324 case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2325 case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2326 case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
2327 case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2328 case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
2329 case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2330 case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
2331 case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2332 case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2333 case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2334 case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2335 case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2336 case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
2337 case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2338 case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2339 case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2340 case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2341 case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2342 case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2343 case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
2344 case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
2345 case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2346 case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2347 case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2348 case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2349 case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
2350 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2351 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2352 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2353 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2354 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2355 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2356 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2357 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2358 case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2359 case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2360 case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2361 case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2362 case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2363 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2364 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2365 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2366 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2367 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2368 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2369 case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
2370 case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
2371 case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
2372 case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
2373 case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2374 case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2375 case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2376 case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2377 case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2378 case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2379 case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2380 case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2381 case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2382 case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2383 case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2384 case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2385 case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
2386 case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
2387 case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
2388 case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
2389 case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2390 case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2391 case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2392 case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2393 case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2394 case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
2395 case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
2396 case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
2397 case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2398 case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2399 case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2400 case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2401 case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2402 case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
2403 case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2404 case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2405 case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
2406 case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
2407 case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2408 case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2409 case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
2410 case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
2411 case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
2412 case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
2413 case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2414 case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
2415 case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
2416 case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
2417 case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
2418 case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
2419 case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
2420 case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
2421 case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
2422 case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
2423 case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
2424 case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
2425 case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
2426 case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
2427 case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2428 case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
2429 case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
2430 case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2431 case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
2432 case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
2433 case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
2434 case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
2435 case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
2436 case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
2437 case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
2438 case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
2439 case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
2440 case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
2441 case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2442 case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2443 case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2444 case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
2445 case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
2446 case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
2447 case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
2448 case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
2449 case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
2450 case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
2451 case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
2452 case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
2453 case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
2454 case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
2455 case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2456 case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
2457 case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
2458 case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
2459 case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
2460 case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2461 case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2462 case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2463 case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2464 case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
2465 case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
2466 case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
2467 case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
2468 case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2469 case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2470 case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
2471 case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
2472 case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
2473 case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
2474 case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
2475 case SpvOpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
2476 case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
2477 case SpvOpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
2478 case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
2479 case SpvOpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
2480 case SpvOpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
2481 case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
2482 case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2483 case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2484 case SpvOpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2485 case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2486 case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
2487 case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
2488 case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
2489 case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
2490 case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2491 case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2492 case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2493 }
2494}
2495#endif /* SPV_ENABLE_UTILITY_CODE */
2496
2497#endif
2498
2499