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