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