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