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