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