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