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