spirv: Update JSON and Headers to 1.4
[mesa.git] / src / compiler / spirv / spirv.h
1 /*
2 ** Copyright (c) 2014-2019 The Khronos Group Inc.
3 **
4 ** Permission is hereby granted, free of charge, to any person obtaining a copy
5 ** of this software and/or associated documentation files (the "Materials"),
6 ** to deal in the Materials without restriction, including without limitation
7 ** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 ** and/or sell copies of the Materials, and to permit persons to whom the
9 ** Materials are furnished to do so, subject to the following conditions:
10 **
11 ** The above copyright notice and this permission notice shall be included in
12 ** all copies or substantial portions of the Materials.
13 **
14 ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15 ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16 ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17 **
18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24 ** IN THE MATERIALS.
25 */
26
27 /*
28 ** This header is automatically generated by the same tool that creates
29 ** the Binary Section of the SPIR-V specification.
30 */
31
32 /*
33 ** Enumeration tokens for SPIR-V, in various styles:
34 ** C, C++, C++11, JSON, Lua, Python, C#, D
35 **
36 ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
37 ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
38 ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
39 ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
40 ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
41 ** - C# will use enum classes in the Specification class located in the "Spv" namespace,
42 ** e.g.: Spv.Specification.SourceLanguage.GLSL
43 ** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
44 **
45 ** Some tokens act like mask values, which can be OR'd together,
46 ** while others are mutually exclusive. The mask-like ones have
47 ** "Mask" in their name, and a parallel enum that has the shift
48 ** amount (1 << x) for each corresponding enumerant.
49 */
50
51 #ifndef spirv_H
52 #define spirv_H
53
54 typedef unsigned int SpvId;
55
56 #define SPV_VERSION 0x10400
57 #define SPV_REVISION 1
58
59 static const unsigned int SpvMagicNumber = 0x07230203;
60 static const unsigned int SpvVersion = 0x00010400;
61 static const unsigned int SpvRevision = 1;
62 static const unsigned int SpvOpCodeMask = 0xffff;
63 static const unsigned int SpvWordCountShift = 16;
64
65 typedef enum SpvSourceLanguage_ {
66 SpvSourceLanguageUnknown = 0,
67 SpvSourceLanguageESSL = 1,
68 SpvSourceLanguageGLSL = 2,
69 SpvSourceLanguageOpenCL_C = 3,
70 SpvSourceLanguageOpenCL_CPP = 4,
71 SpvSourceLanguageHLSL = 5,
72 SpvSourceLanguageMax = 0x7fffffff,
73 } SpvSourceLanguage;
74
75 typedef enum SpvExecutionModel_ {
76 SpvExecutionModelVertex = 0,
77 SpvExecutionModelTessellationControl = 1,
78 SpvExecutionModelTessellationEvaluation = 2,
79 SpvExecutionModelGeometry = 3,
80 SpvExecutionModelFragment = 4,
81 SpvExecutionModelGLCompute = 5,
82 SpvExecutionModelKernel = 6,
83 SpvExecutionModelTaskNV = 5267,
84 SpvExecutionModelMeshNV = 5268,
85 SpvExecutionModelRayGenerationNV = 5313,
86 SpvExecutionModelIntersectionNV = 5314,
87 SpvExecutionModelAnyHitNV = 5315,
88 SpvExecutionModelClosestHitNV = 5316,
89 SpvExecutionModelMissNV = 5317,
90 SpvExecutionModelCallableNV = 5318,
91 SpvExecutionModelMax = 0x7fffffff,
92 } SpvExecutionModel;
93
94 typedef enum SpvAddressingModel_ {
95 SpvAddressingModelLogical = 0,
96 SpvAddressingModelPhysical32 = 1,
97 SpvAddressingModelPhysical64 = 2,
98 SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
99 SpvAddressingModelMax = 0x7fffffff,
100 } SpvAddressingModel;
101
102 typedef enum SpvMemoryModel_ {
103 SpvMemoryModelSimple = 0,
104 SpvMemoryModelGLSL450 = 1,
105 SpvMemoryModelOpenCL = 2,
106 SpvMemoryModelVulkanKHR = 3,
107 SpvMemoryModelMax = 0x7fffffff,
108 } SpvMemoryModel;
109
110 typedef enum SpvExecutionMode_ {
111 SpvExecutionModeInvocations = 0,
112 SpvExecutionModeSpacingEqual = 1,
113 SpvExecutionModeSpacingFractionalEven = 2,
114 SpvExecutionModeSpacingFractionalOdd = 3,
115 SpvExecutionModeVertexOrderCw = 4,
116 SpvExecutionModeVertexOrderCcw = 5,
117 SpvExecutionModePixelCenterInteger = 6,
118 SpvExecutionModeOriginUpperLeft = 7,
119 SpvExecutionModeOriginLowerLeft = 8,
120 SpvExecutionModeEarlyFragmentTests = 9,
121 SpvExecutionModePointMode = 10,
122 SpvExecutionModeXfb = 11,
123 SpvExecutionModeDepthReplacing = 12,
124 SpvExecutionModeDepthGreater = 14,
125 SpvExecutionModeDepthLess = 15,
126 SpvExecutionModeDepthUnchanged = 16,
127 SpvExecutionModeLocalSize = 17,
128 SpvExecutionModeLocalSizeHint = 18,
129 SpvExecutionModeInputPoints = 19,
130 SpvExecutionModeInputLines = 20,
131 SpvExecutionModeInputLinesAdjacency = 21,
132 SpvExecutionModeTriangles = 22,
133 SpvExecutionModeInputTrianglesAdjacency = 23,
134 SpvExecutionModeQuads = 24,
135 SpvExecutionModeIsolines = 25,
136 SpvExecutionModeOutputVertices = 26,
137 SpvExecutionModeOutputPoints = 27,
138 SpvExecutionModeOutputLineStrip = 28,
139 SpvExecutionModeOutputTriangleStrip = 29,
140 SpvExecutionModeVecTypeHint = 30,
141 SpvExecutionModeContractionOff = 31,
142 SpvExecutionModeInitializer = 33,
143 SpvExecutionModeFinalizer = 34,
144 SpvExecutionModeSubgroupSize = 35,
145 SpvExecutionModeSubgroupsPerWorkgroup = 36,
146 SpvExecutionModeSubgroupsPerWorkgroupId = 37,
147 SpvExecutionModeLocalSizeId = 38,
148 SpvExecutionModeLocalSizeHintId = 39,
149 SpvExecutionModePostDepthCoverage = 4446,
150 SpvExecutionModeDenormPreserve = 4459,
151 SpvExecutionModeDenormFlushToZero = 4460,
152 SpvExecutionModeSignedZeroInfNanPreserve = 4461,
153 SpvExecutionModeRoundingModeRTE = 4462,
154 SpvExecutionModeRoundingModeRTZ = 4463,
155 SpvExecutionModeStencilRefReplacingEXT = 5027,
156 SpvExecutionModeOutputLinesNV = 5269,
157 SpvExecutionModeOutputPrimitivesNV = 5270,
158 SpvExecutionModeDerivativeGroupQuadsNV = 5289,
159 SpvExecutionModeDerivativeGroupLinearNV = 5290,
160 SpvExecutionModeOutputTrianglesNV = 5298,
161 SpvExecutionModeMax = 0x7fffffff,
162 } SpvExecutionMode;
163
164 typedef enum SpvStorageClass_ {
165 SpvStorageClassUniformConstant = 0,
166 SpvStorageClassInput = 1,
167 SpvStorageClassUniform = 2,
168 SpvStorageClassOutput = 3,
169 SpvStorageClassWorkgroup = 4,
170 SpvStorageClassCrossWorkgroup = 5,
171 SpvStorageClassPrivate = 6,
172 SpvStorageClassFunction = 7,
173 SpvStorageClassGeneric = 8,
174 SpvStorageClassPushConstant = 9,
175 SpvStorageClassAtomicCounter = 10,
176 SpvStorageClassImage = 11,
177 SpvStorageClassStorageBuffer = 12,
178 SpvStorageClassCallableDataNV = 5328,
179 SpvStorageClassIncomingCallableDataNV = 5329,
180 SpvStorageClassRayPayloadNV = 5338,
181 SpvStorageClassHitAttributeNV = 5339,
182 SpvStorageClassIncomingRayPayloadNV = 5342,
183 SpvStorageClassShaderRecordBufferNV = 5343,
184 SpvStorageClassPhysicalStorageBufferEXT = 5349,
185 SpvStorageClassMax = 0x7fffffff,
186 } SpvStorageClass;
187
188 typedef enum SpvDim_ {
189 SpvDim1D = 0,
190 SpvDim2D = 1,
191 SpvDim3D = 2,
192 SpvDimCube = 3,
193 SpvDimRect = 4,
194 SpvDimBuffer = 5,
195 SpvDimSubpassData = 6,
196 SpvDimMax = 0x7fffffff,
197 } SpvDim;
198
199 typedef enum SpvSamplerAddressingMode_ {
200 SpvSamplerAddressingModeNone = 0,
201 SpvSamplerAddressingModeClampToEdge = 1,
202 SpvSamplerAddressingModeClamp = 2,
203 SpvSamplerAddressingModeRepeat = 3,
204 SpvSamplerAddressingModeRepeatMirrored = 4,
205 SpvSamplerAddressingModeMax = 0x7fffffff,
206 } SpvSamplerAddressingMode;
207
208 typedef enum SpvSamplerFilterMode_ {
209 SpvSamplerFilterModeNearest = 0,
210 SpvSamplerFilterModeLinear = 1,
211 SpvSamplerFilterModeMax = 0x7fffffff,
212 } SpvSamplerFilterMode;
213
214 typedef enum SpvImageFormat_ {
215 SpvImageFormatUnknown = 0,
216 SpvImageFormatRgba32f = 1,
217 SpvImageFormatRgba16f = 2,
218 SpvImageFormatR32f = 3,
219 SpvImageFormatRgba8 = 4,
220 SpvImageFormatRgba8Snorm = 5,
221 SpvImageFormatRg32f = 6,
222 SpvImageFormatRg16f = 7,
223 SpvImageFormatR11fG11fB10f = 8,
224 SpvImageFormatR16f = 9,
225 SpvImageFormatRgba16 = 10,
226 SpvImageFormatRgb10A2 = 11,
227 SpvImageFormatRg16 = 12,
228 SpvImageFormatRg8 = 13,
229 SpvImageFormatR16 = 14,
230 SpvImageFormatR8 = 15,
231 SpvImageFormatRgba16Snorm = 16,
232 SpvImageFormatRg16Snorm = 17,
233 SpvImageFormatRg8Snorm = 18,
234 SpvImageFormatR16Snorm = 19,
235 SpvImageFormatR8Snorm = 20,
236 SpvImageFormatRgba32i = 21,
237 SpvImageFormatRgba16i = 22,
238 SpvImageFormatRgba8i = 23,
239 SpvImageFormatR32i = 24,
240 SpvImageFormatRg32i = 25,
241 SpvImageFormatRg16i = 26,
242 SpvImageFormatRg8i = 27,
243 SpvImageFormatR16i = 28,
244 SpvImageFormatR8i = 29,
245 SpvImageFormatRgba32ui = 30,
246 SpvImageFormatRgba16ui = 31,
247 SpvImageFormatRgba8ui = 32,
248 SpvImageFormatR32ui = 33,
249 SpvImageFormatRgb10a2ui = 34,
250 SpvImageFormatRg32ui = 35,
251 SpvImageFormatRg16ui = 36,
252 SpvImageFormatRg8ui = 37,
253 SpvImageFormatR16ui = 38,
254 SpvImageFormatR8ui = 39,
255 SpvImageFormatMax = 0x7fffffff,
256 } SpvImageFormat;
257
258 typedef enum SpvImageChannelOrder_ {
259 SpvImageChannelOrderR = 0,
260 SpvImageChannelOrderA = 1,
261 SpvImageChannelOrderRG = 2,
262 SpvImageChannelOrderRA = 3,
263 SpvImageChannelOrderRGB = 4,
264 SpvImageChannelOrderRGBA = 5,
265 SpvImageChannelOrderBGRA = 6,
266 SpvImageChannelOrderARGB = 7,
267 SpvImageChannelOrderIntensity = 8,
268 SpvImageChannelOrderLuminance = 9,
269 SpvImageChannelOrderRx = 10,
270 SpvImageChannelOrderRGx = 11,
271 SpvImageChannelOrderRGBx = 12,
272 SpvImageChannelOrderDepth = 13,
273 SpvImageChannelOrderDepthStencil = 14,
274 SpvImageChannelOrdersRGB = 15,
275 SpvImageChannelOrdersRGBx = 16,
276 SpvImageChannelOrdersRGBA = 17,
277 SpvImageChannelOrdersBGRA = 18,
278 SpvImageChannelOrderABGR = 19,
279 SpvImageChannelOrderMax = 0x7fffffff,
280 } SpvImageChannelOrder;
281
282 typedef enum SpvImageChannelDataType_ {
283 SpvImageChannelDataTypeSnormInt8 = 0,
284 SpvImageChannelDataTypeSnormInt16 = 1,
285 SpvImageChannelDataTypeUnormInt8 = 2,
286 SpvImageChannelDataTypeUnormInt16 = 3,
287 SpvImageChannelDataTypeUnormShort565 = 4,
288 SpvImageChannelDataTypeUnormShort555 = 5,
289 SpvImageChannelDataTypeUnormInt101010 = 6,
290 SpvImageChannelDataTypeSignedInt8 = 7,
291 SpvImageChannelDataTypeSignedInt16 = 8,
292 SpvImageChannelDataTypeSignedInt32 = 9,
293 SpvImageChannelDataTypeUnsignedInt8 = 10,
294 SpvImageChannelDataTypeUnsignedInt16 = 11,
295 SpvImageChannelDataTypeUnsignedInt32 = 12,
296 SpvImageChannelDataTypeHalfFloat = 13,
297 SpvImageChannelDataTypeFloat = 14,
298 SpvImageChannelDataTypeUnormInt24 = 15,
299 SpvImageChannelDataTypeUnormInt101010_2 = 16,
300 SpvImageChannelDataTypeMax = 0x7fffffff,
301 } SpvImageChannelDataType;
302
303 typedef enum SpvImageOperandsShift_ {
304 SpvImageOperandsBiasShift = 0,
305 SpvImageOperandsLodShift = 1,
306 SpvImageOperandsGradShift = 2,
307 SpvImageOperandsConstOffsetShift = 3,
308 SpvImageOperandsOffsetShift = 4,
309 SpvImageOperandsConstOffsetsShift = 5,
310 SpvImageOperandsSampleShift = 6,
311 SpvImageOperandsMinLodShift = 7,
312 SpvImageOperandsMakeTexelAvailableKHRShift = 8,
313 SpvImageOperandsMakeTexelVisibleKHRShift = 9,
314 SpvImageOperandsNonPrivateTexelKHRShift = 10,
315 SpvImageOperandsVolatileTexelKHRShift = 11,
316 SpvImageOperandsSignExtendShift = 12,
317 SpvImageOperandsZeroExtendShift = 13,
318 SpvImageOperandsMax = 0x7fffffff,
319 } SpvImageOperandsShift;
320
321 typedef enum SpvImageOperandsMask_ {
322 SpvImageOperandsMaskNone = 0,
323 SpvImageOperandsBiasMask = 0x00000001,
324 SpvImageOperandsLodMask = 0x00000002,
325 SpvImageOperandsGradMask = 0x00000004,
326 SpvImageOperandsConstOffsetMask = 0x00000008,
327 SpvImageOperandsOffsetMask = 0x00000010,
328 SpvImageOperandsConstOffsetsMask = 0x00000020,
329 SpvImageOperandsSampleMask = 0x00000040,
330 SpvImageOperandsMinLodMask = 0x00000080,
331 SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
332 SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
333 SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
334 SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
335 SpvImageOperandsSignExtendMask = 0x00001000,
336 SpvImageOperandsZeroExtendMask = 0x00002000,
337 } SpvImageOperandsMask;
338
339 typedef enum SpvFPFastMathModeShift_ {
340 SpvFPFastMathModeNotNaNShift = 0,
341 SpvFPFastMathModeNotInfShift = 1,
342 SpvFPFastMathModeNSZShift = 2,
343 SpvFPFastMathModeAllowRecipShift = 3,
344 SpvFPFastMathModeFastShift = 4,
345 SpvFPFastMathModeMax = 0x7fffffff,
346 } SpvFPFastMathModeShift;
347
348 typedef enum SpvFPFastMathModeMask_ {
349 SpvFPFastMathModeMaskNone = 0,
350 SpvFPFastMathModeNotNaNMask = 0x00000001,
351 SpvFPFastMathModeNotInfMask = 0x00000002,
352 SpvFPFastMathModeNSZMask = 0x00000004,
353 SpvFPFastMathModeAllowRecipMask = 0x00000008,
354 SpvFPFastMathModeFastMask = 0x00000010,
355 } SpvFPFastMathModeMask;
356
357 typedef enum SpvFPRoundingMode_ {
358 SpvFPRoundingModeRTE = 0,
359 SpvFPRoundingModeRTZ = 1,
360 SpvFPRoundingModeRTP = 2,
361 SpvFPRoundingModeRTN = 3,
362 SpvFPRoundingModeMax = 0x7fffffff,
363 } SpvFPRoundingMode;
364
365 typedef enum SpvLinkageType_ {
366 SpvLinkageTypeExport = 0,
367 SpvLinkageTypeImport = 1,
368 SpvLinkageTypeMax = 0x7fffffff,
369 } SpvLinkageType;
370
371 typedef enum SpvAccessQualifier_ {
372 SpvAccessQualifierReadOnly = 0,
373 SpvAccessQualifierWriteOnly = 1,
374 SpvAccessQualifierReadWrite = 2,
375 SpvAccessQualifierMax = 0x7fffffff,
376 } SpvAccessQualifier;
377
378 typedef enum SpvFunctionParameterAttribute_ {
379 SpvFunctionParameterAttributeZext = 0,
380 SpvFunctionParameterAttributeSext = 1,
381 SpvFunctionParameterAttributeByVal = 2,
382 SpvFunctionParameterAttributeSret = 3,
383 SpvFunctionParameterAttributeNoAlias = 4,
384 SpvFunctionParameterAttributeNoCapture = 5,
385 SpvFunctionParameterAttributeNoWrite = 6,
386 SpvFunctionParameterAttributeNoReadWrite = 7,
387 SpvFunctionParameterAttributeMax = 0x7fffffff,
388 } SpvFunctionParameterAttribute;
389
390 typedef enum SpvDecoration_ {
391 SpvDecorationRelaxedPrecision = 0,
392 SpvDecorationSpecId = 1,
393 SpvDecorationBlock = 2,
394 SpvDecorationBufferBlock = 3,
395 SpvDecorationRowMajor = 4,
396 SpvDecorationColMajor = 5,
397 SpvDecorationArrayStride = 6,
398 SpvDecorationMatrixStride = 7,
399 SpvDecorationGLSLShared = 8,
400 SpvDecorationGLSLPacked = 9,
401 SpvDecorationCPacked = 10,
402 SpvDecorationBuiltIn = 11,
403 SpvDecorationNoPerspective = 13,
404 SpvDecorationFlat = 14,
405 SpvDecorationPatch = 15,
406 SpvDecorationCentroid = 16,
407 SpvDecorationSample = 17,
408 SpvDecorationInvariant = 18,
409 SpvDecorationRestrict = 19,
410 SpvDecorationAliased = 20,
411 SpvDecorationVolatile = 21,
412 SpvDecorationConstant = 22,
413 SpvDecorationCoherent = 23,
414 SpvDecorationNonWritable = 24,
415 SpvDecorationNonReadable = 25,
416 SpvDecorationUniform = 26,
417 SpvDecorationUniformId = 27,
418 SpvDecorationSaturatedConversion = 28,
419 SpvDecorationStream = 29,
420 SpvDecorationLocation = 30,
421 SpvDecorationComponent = 31,
422 SpvDecorationIndex = 32,
423 SpvDecorationBinding = 33,
424 SpvDecorationDescriptorSet = 34,
425 SpvDecorationOffset = 35,
426 SpvDecorationXfbBuffer = 36,
427 SpvDecorationXfbStride = 37,
428 SpvDecorationFuncParamAttr = 38,
429 SpvDecorationFPRoundingMode = 39,
430 SpvDecorationFPFastMathMode = 40,
431 SpvDecorationLinkageAttributes = 41,
432 SpvDecorationNoContraction = 42,
433 SpvDecorationInputAttachmentIndex = 43,
434 SpvDecorationAlignment = 44,
435 SpvDecorationMaxByteOffset = 45,
436 SpvDecorationAlignmentId = 46,
437 SpvDecorationMaxByteOffsetId = 47,
438 SpvDecorationNoSignedWrap = 4469,
439 SpvDecorationNoUnsignedWrap = 4470,
440 SpvDecorationExplicitInterpAMD = 4999,
441 SpvDecorationOverrideCoverageNV = 5248,
442 SpvDecorationPassthroughNV = 5250,
443 SpvDecorationViewportRelativeNV = 5252,
444 SpvDecorationSecondaryViewportRelativeNV = 5256,
445 SpvDecorationPerPrimitiveNV = 5271,
446 SpvDecorationPerViewNV = 5272,
447 SpvDecorationPerTaskNV = 5273,
448 SpvDecorationPerVertexNV = 5285,
449 SpvDecorationNonUniformEXT = 5300,
450 SpvDecorationRestrictPointerEXT = 5355,
451 SpvDecorationAliasedPointerEXT = 5356,
452 SpvDecorationCounterBuffer = 5634,
453 SpvDecorationHlslCounterBufferGOOGLE = 5634,
454 SpvDecorationHlslSemanticGOOGLE = 5635,
455 SpvDecorationUserSemantic = 5635,
456 SpvDecorationMax = 0x7fffffff,
457 } SpvDecoration;
458
459 typedef enum SpvBuiltIn_ {
460 SpvBuiltInPosition = 0,
461 SpvBuiltInPointSize = 1,
462 SpvBuiltInClipDistance = 3,
463 SpvBuiltInCullDistance = 4,
464 SpvBuiltInVertexId = 5,
465 SpvBuiltInInstanceId = 6,
466 SpvBuiltInPrimitiveId = 7,
467 SpvBuiltInInvocationId = 8,
468 SpvBuiltInLayer = 9,
469 SpvBuiltInViewportIndex = 10,
470 SpvBuiltInTessLevelOuter = 11,
471 SpvBuiltInTessLevelInner = 12,
472 SpvBuiltInTessCoord = 13,
473 SpvBuiltInPatchVertices = 14,
474 SpvBuiltInFragCoord = 15,
475 SpvBuiltInPointCoord = 16,
476 SpvBuiltInFrontFacing = 17,
477 SpvBuiltInSampleId = 18,
478 SpvBuiltInSamplePosition = 19,
479 SpvBuiltInSampleMask = 20,
480 SpvBuiltInFragDepth = 22,
481 SpvBuiltInHelperInvocation = 23,
482 SpvBuiltInNumWorkgroups = 24,
483 SpvBuiltInWorkgroupSize = 25,
484 SpvBuiltInWorkgroupId = 26,
485 SpvBuiltInLocalInvocationId = 27,
486 SpvBuiltInGlobalInvocationId = 28,
487 SpvBuiltInLocalInvocationIndex = 29,
488 SpvBuiltInWorkDim = 30,
489 SpvBuiltInGlobalSize = 31,
490 SpvBuiltInEnqueuedWorkgroupSize = 32,
491 SpvBuiltInGlobalOffset = 33,
492 SpvBuiltInGlobalLinearId = 34,
493 SpvBuiltInSubgroupSize = 36,
494 SpvBuiltInSubgroupMaxSize = 37,
495 SpvBuiltInNumSubgroups = 38,
496 SpvBuiltInNumEnqueuedSubgroups = 39,
497 SpvBuiltInSubgroupId = 40,
498 SpvBuiltInSubgroupLocalInvocationId = 41,
499 SpvBuiltInVertexIndex = 42,
500 SpvBuiltInInstanceIndex = 43,
501 SpvBuiltInSubgroupEqMask = 4416,
502 SpvBuiltInSubgroupEqMaskKHR = 4416,
503 SpvBuiltInSubgroupGeMask = 4417,
504 SpvBuiltInSubgroupGeMaskKHR = 4417,
505 SpvBuiltInSubgroupGtMask = 4418,
506 SpvBuiltInSubgroupGtMaskKHR = 4418,
507 SpvBuiltInSubgroupLeMask = 4419,
508 SpvBuiltInSubgroupLeMaskKHR = 4419,
509 SpvBuiltInSubgroupLtMask = 4420,
510 SpvBuiltInSubgroupLtMaskKHR = 4420,
511 SpvBuiltInBaseVertex = 4424,
512 SpvBuiltInBaseInstance = 4425,
513 SpvBuiltInDrawIndex = 4426,
514 SpvBuiltInDeviceIndex = 4438,
515 SpvBuiltInViewIndex = 4440,
516 SpvBuiltInBaryCoordNoPerspAMD = 4992,
517 SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
518 SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
519 SpvBuiltInBaryCoordSmoothAMD = 4995,
520 SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
521 SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
522 SpvBuiltInBaryCoordPullModelAMD = 4998,
523 SpvBuiltInFragStencilRefEXT = 5014,
524 SpvBuiltInViewportMaskNV = 5253,
525 SpvBuiltInSecondaryPositionNV = 5257,
526 SpvBuiltInSecondaryViewportMaskNV = 5258,
527 SpvBuiltInPositionPerViewNV = 5261,
528 SpvBuiltInViewportMaskPerViewNV = 5262,
529 SpvBuiltInFullyCoveredEXT = 5264,
530 SpvBuiltInTaskCountNV = 5274,
531 SpvBuiltInPrimitiveCountNV = 5275,
532 SpvBuiltInPrimitiveIndicesNV = 5276,
533 SpvBuiltInClipDistancePerViewNV = 5277,
534 SpvBuiltInCullDistancePerViewNV = 5278,
535 SpvBuiltInLayerPerViewNV = 5279,
536 SpvBuiltInMeshViewCountNV = 5280,
537 SpvBuiltInMeshViewIndicesNV = 5281,
538 SpvBuiltInBaryCoordNV = 5286,
539 SpvBuiltInBaryCoordNoPerspNV = 5287,
540 SpvBuiltInFragSizeEXT = 5292,
541 SpvBuiltInFragmentSizeNV = 5292,
542 SpvBuiltInFragInvocationCountEXT = 5293,
543 SpvBuiltInInvocationsPerPixelNV = 5293,
544 SpvBuiltInLaunchIdNV = 5319,
545 SpvBuiltInLaunchSizeNV = 5320,
546 SpvBuiltInWorldRayOriginNV = 5321,
547 SpvBuiltInWorldRayDirectionNV = 5322,
548 SpvBuiltInObjectRayOriginNV = 5323,
549 SpvBuiltInObjectRayDirectionNV = 5324,
550 SpvBuiltInRayTminNV = 5325,
551 SpvBuiltInRayTmaxNV = 5326,
552 SpvBuiltInInstanceCustomIndexNV = 5327,
553 SpvBuiltInObjectToWorldNV = 5330,
554 SpvBuiltInWorldToObjectNV = 5331,
555 SpvBuiltInHitTNV = 5332,
556 SpvBuiltInHitKindNV = 5333,
557 SpvBuiltInIncomingRayFlagsNV = 5351,
558 SpvBuiltInMax = 0x7fffffff,
559 } SpvBuiltIn;
560
561 typedef enum SpvSelectionControlShift_ {
562 SpvSelectionControlFlattenShift = 0,
563 SpvSelectionControlDontFlattenShift = 1,
564 SpvSelectionControlMax = 0x7fffffff,
565 } SpvSelectionControlShift;
566
567 typedef enum SpvSelectionControlMask_ {
568 SpvSelectionControlMaskNone = 0,
569 SpvSelectionControlFlattenMask = 0x00000001,
570 SpvSelectionControlDontFlattenMask = 0x00000002,
571 } SpvSelectionControlMask;
572
573 typedef enum SpvLoopControlShift_ {
574 SpvLoopControlUnrollShift = 0,
575 SpvLoopControlDontUnrollShift = 1,
576 SpvLoopControlDependencyInfiniteShift = 2,
577 SpvLoopControlDependencyLengthShift = 3,
578 SpvLoopControlMinIterationsShift = 4,
579 SpvLoopControlMaxIterationsShift = 5,
580 SpvLoopControlIterationMultipleShift = 6,
581 SpvLoopControlPeelCountShift = 7,
582 SpvLoopControlPartialCountShift = 8,
583 SpvLoopControlMax = 0x7fffffff,
584 } SpvLoopControlShift;
585
586 typedef enum SpvLoopControlMask_ {
587 SpvLoopControlMaskNone = 0,
588 SpvLoopControlUnrollMask = 0x00000001,
589 SpvLoopControlDontUnrollMask = 0x00000002,
590 SpvLoopControlDependencyInfiniteMask = 0x00000004,
591 SpvLoopControlDependencyLengthMask = 0x00000008,
592 SpvLoopControlMinIterationsMask = 0x00000010,
593 SpvLoopControlMaxIterationsMask = 0x00000020,
594 SpvLoopControlIterationMultipleMask = 0x00000040,
595 SpvLoopControlPeelCountMask = 0x00000080,
596 SpvLoopControlPartialCountMask = 0x00000100,
597 } SpvLoopControlMask;
598
599 typedef enum SpvFunctionControlShift_ {
600 SpvFunctionControlInlineShift = 0,
601 SpvFunctionControlDontInlineShift = 1,
602 SpvFunctionControlPureShift = 2,
603 SpvFunctionControlConstShift = 3,
604 SpvFunctionControlMax = 0x7fffffff,
605 } SpvFunctionControlShift;
606
607 typedef enum SpvFunctionControlMask_ {
608 SpvFunctionControlMaskNone = 0,
609 SpvFunctionControlInlineMask = 0x00000001,
610 SpvFunctionControlDontInlineMask = 0x00000002,
611 SpvFunctionControlPureMask = 0x00000004,
612 SpvFunctionControlConstMask = 0x00000008,
613 } SpvFunctionControlMask;
614
615 typedef enum SpvMemorySemanticsShift_ {
616 SpvMemorySemanticsAcquireShift = 1,
617 SpvMemorySemanticsReleaseShift = 2,
618 SpvMemorySemanticsAcquireReleaseShift = 3,
619 SpvMemorySemanticsSequentiallyConsistentShift = 4,
620 SpvMemorySemanticsUniformMemoryShift = 6,
621 SpvMemorySemanticsSubgroupMemoryShift = 7,
622 SpvMemorySemanticsWorkgroupMemoryShift = 8,
623 SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
624 SpvMemorySemanticsAtomicCounterMemoryShift = 10,
625 SpvMemorySemanticsImageMemoryShift = 11,
626 SpvMemorySemanticsOutputMemoryKHRShift = 12,
627 SpvMemorySemanticsMakeAvailableKHRShift = 13,
628 SpvMemorySemanticsMakeVisibleKHRShift = 14,
629 SpvMemorySemanticsMax = 0x7fffffff,
630 } SpvMemorySemanticsShift;
631
632 typedef enum SpvMemorySemanticsMask_ {
633 SpvMemorySemanticsMaskNone = 0,
634 SpvMemorySemanticsAcquireMask = 0x00000002,
635 SpvMemorySemanticsReleaseMask = 0x00000004,
636 SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
637 SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
638 SpvMemorySemanticsUniformMemoryMask = 0x00000040,
639 SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
640 SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
641 SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
642 SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
643 SpvMemorySemanticsImageMemoryMask = 0x00000800,
644 SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
645 SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
646 SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
647 } SpvMemorySemanticsMask;
648
649 typedef enum SpvMemoryAccessShift_ {
650 SpvMemoryAccessVolatileShift = 0,
651 SpvMemoryAccessAlignedShift = 1,
652 SpvMemoryAccessNontemporalShift = 2,
653 SpvMemoryAccessMakePointerAvailableKHRShift = 3,
654 SpvMemoryAccessMakePointerVisibleKHRShift = 4,
655 SpvMemoryAccessNonPrivatePointerKHRShift = 5,
656 SpvMemoryAccessMax = 0x7fffffff,
657 } SpvMemoryAccessShift;
658
659 typedef enum SpvMemoryAccessMask_ {
660 SpvMemoryAccessMaskNone = 0,
661 SpvMemoryAccessVolatileMask = 0x00000001,
662 SpvMemoryAccessAlignedMask = 0x00000002,
663 SpvMemoryAccessNontemporalMask = 0x00000004,
664 SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
665 SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
666 SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
667 } SpvMemoryAccessMask;
668
669 typedef enum SpvScope_ {
670 SpvScopeCrossDevice = 0,
671 SpvScopeDevice = 1,
672 SpvScopeWorkgroup = 2,
673 SpvScopeSubgroup = 3,
674 SpvScopeInvocation = 4,
675 SpvScopeQueueFamilyKHR = 5,
676 SpvScopeMax = 0x7fffffff,
677 } SpvScope;
678
679 typedef enum SpvGroupOperation_ {
680 SpvGroupOperationReduce = 0,
681 SpvGroupOperationInclusiveScan = 1,
682 SpvGroupOperationExclusiveScan = 2,
683 SpvGroupOperationClusteredReduce = 3,
684 SpvGroupOperationPartitionedReduceNV = 6,
685 SpvGroupOperationPartitionedInclusiveScanNV = 7,
686 SpvGroupOperationPartitionedExclusiveScanNV = 8,
687 SpvGroupOperationMax = 0x7fffffff,
688 } SpvGroupOperation;
689
690 typedef enum SpvKernelEnqueueFlags_ {
691 SpvKernelEnqueueFlagsNoWait = 0,
692 SpvKernelEnqueueFlagsWaitKernel = 1,
693 SpvKernelEnqueueFlagsWaitWorkGroup = 2,
694 SpvKernelEnqueueFlagsMax = 0x7fffffff,
695 } SpvKernelEnqueueFlags;
696
697 typedef enum SpvKernelProfilingInfoShift_ {
698 SpvKernelProfilingInfoCmdExecTimeShift = 0,
699 SpvKernelProfilingInfoMax = 0x7fffffff,
700 } SpvKernelProfilingInfoShift;
701
702 typedef enum SpvKernelProfilingInfoMask_ {
703 SpvKernelProfilingInfoMaskNone = 0,
704 SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
705 } SpvKernelProfilingInfoMask;
706
707 typedef enum SpvCapability_ {
708 SpvCapabilityMatrix = 0,
709 SpvCapabilityShader = 1,
710 SpvCapabilityGeometry = 2,
711 SpvCapabilityTessellation = 3,
712 SpvCapabilityAddresses = 4,
713 SpvCapabilityLinkage = 5,
714 SpvCapabilityKernel = 6,
715 SpvCapabilityVector16 = 7,
716 SpvCapabilityFloat16Buffer = 8,
717 SpvCapabilityFloat16 = 9,
718 SpvCapabilityFloat64 = 10,
719 SpvCapabilityInt64 = 11,
720 SpvCapabilityInt64Atomics = 12,
721 SpvCapabilityImageBasic = 13,
722 SpvCapabilityImageReadWrite = 14,
723 SpvCapabilityImageMipmap = 15,
724 SpvCapabilityPipes = 17,
725 SpvCapabilityGroups = 18,
726 SpvCapabilityDeviceEnqueue = 19,
727 SpvCapabilityLiteralSampler = 20,
728 SpvCapabilityAtomicStorage = 21,
729 SpvCapabilityInt16 = 22,
730 SpvCapabilityTessellationPointSize = 23,
731 SpvCapabilityGeometryPointSize = 24,
732 SpvCapabilityImageGatherExtended = 25,
733 SpvCapabilityStorageImageMultisample = 27,
734 SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
735 SpvCapabilitySampledImageArrayDynamicIndexing = 29,
736 SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
737 SpvCapabilityStorageImageArrayDynamicIndexing = 31,
738 SpvCapabilityClipDistance = 32,
739 SpvCapabilityCullDistance = 33,
740 SpvCapabilityImageCubeArray = 34,
741 SpvCapabilitySampleRateShading = 35,
742 SpvCapabilityImageRect = 36,
743 SpvCapabilitySampledRect = 37,
744 SpvCapabilityGenericPointer = 38,
745 SpvCapabilityInt8 = 39,
746 SpvCapabilityInputAttachment = 40,
747 SpvCapabilitySparseResidency = 41,
748 SpvCapabilityMinLod = 42,
749 SpvCapabilitySampled1D = 43,
750 SpvCapabilityImage1D = 44,
751 SpvCapabilitySampledCubeArray = 45,
752 SpvCapabilitySampledBuffer = 46,
753 SpvCapabilityImageBuffer = 47,
754 SpvCapabilityImageMSArray = 48,
755 SpvCapabilityStorageImageExtendedFormats = 49,
756 SpvCapabilityImageQuery = 50,
757 SpvCapabilityDerivativeControl = 51,
758 SpvCapabilityInterpolationFunction = 52,
759 SpvCapabilityTransformFeedback = 53,
760 SpvCapabilityGeometryStreams = 54,
761 SpvCapabilityStorageImageReadWithoutFormat = 55,
762 SpvCapabilityStorageImageWriteWithoutFormat = 56,
763 SpvCapabilityMultiViewport = 57,
764 SpvCapabilitySubgroupDispatch = 58,
765 SpvCapabilityNamedBarrier = 59,
766 SpvCapabilityPipeStorage = 60,
767 SpvCapabilityGroupNonUniform = 61,
768 SpvCapabilityGroupNonUniformVote = 62,
769 SpvCapabilityGroupNonUniformArithmetic = 63,
770 SpvCapabilityGroupNonUniformBallot = 64,
771 SpvCapabilityGroupNonUniformShuffle = 65,
772 SpvCapabilityGroupNonUniformShuffleRelative = 66,
773 SpvCapabilityGroupNonUniformClustered = 67,
774 SpvCapabilityGroupNonUniformQuad = 68,
775 SpvCapabilitySubgroupBallotKHR = 4423,
776 SpvCapabilityDrawParameters = 4427,
777 SpvCapabilitySubgroupVoteKHR = 4431,
778 SpvCapabilityStorageBuffer16BitAccess = 4433,
779 SpvCapabilityStorageUniformBufferBlock16 = 4433,
780 SpvCapabilityStorageUniform16 = 4434,
781 SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
782 SpvCapabilityStoragePushConstant16 = 4435,
783 SpvCapabilityStorageInputOutput16 = 4436,
784 SpvCapabilityDeviceGroup = 4437,
785 SpvCapabilityMultiView = 4439,
786 SpvCapabilityVariablePointersStorageBuffer = 4441,
787 SpvCapabilityVariablePointers = 4442,
788 SpvCapabilityAtomicStorageOps = 4445,
789 SpvCapabilitySampleMaskPostDepthCoverage = 4447,
790 SpvCapabilityStorageBuffer8BitAccess = 4448,
791 SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
792 SpvCapabilityStoragePushConstant8 = 4450,
793 SpvCapabilityDenormPreserve = 4464,
794 SpvCapabilityDenormFlushToZero = 4465,
795 SpvCapabilitySignedZeroInfNanPreserve = 4466,
796 SpvCapabilityRoundingModeRTE = 4467,
797 SpvCapabilityRoundingModeRTZ = 4468,
798 SpvCapabilityFloat16ImageAMD = 5008,
799 SpvCapabilityImageGatherBiasLodAMD = 5009,
800 SpvCapabilityFragmentMaskAMD = 5010,
801 SpvCapabilityStencilExportEXT = 5013,
802 SpvCapabilityImageReadWriteLodAMD = 5015,
803 SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
804 SpvCapabilityGeometryShaderPassthroughNV = 5251,
805 SpvCapabilityShaderViewportIndexLayerEXT = 5254,
806 SpvCapabilityShaderViewportIndexLayerNV = 5254,
807 SpvCapabilityShaderViewportMaskNV = 5255,
808 SpvCapabilityShaderStereoViewNV = 5259,
809 SpvCapabilityPerViewAttributesNV = 5260,
810 SpvCapabilityFragmentFullyCoveredEXT = 5265,
811 SpvCapabilityMeshShadingNV = 5266,
812 SpvCapabilityImageFootprintNV = 5282,
813 SpvCapabilityFragmentBarycentricNV = 5284,
814 SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
815 SpvCapabilityFragmentDensityEXT = 5291,
816 SpvCapabilityShadingRateNV = 5291,
817 SpvCapabilityGroupNonUniformPartitionedNV = 5297,
818 SpvCapabilityShaderNonUniformEXT = 5301,
819 SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
820 SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
821 SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
822 SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
823 SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
824 SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
825 SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
826 SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
827 SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
828 SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
829 SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
830 SpvCapabilityRayTracingNV = 5340,
831 SpvCapabilityVulkanMemoryModelKHR = 5345,
832 SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
833 SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
834 SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
835 SpvCapabilityCooperativeMatrixNV = 5357,
836 SpvCapabilitySubgroupShuffleINTEL = 5568,
837 SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
838 SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
839 SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
840 SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
841 SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
842 SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
843 SpvCapabilityMax = 0x7fffffff,
844 } SpvCapability;
845
846 typedef enum SpvOp_ {
847 SpvOpNop = 0,
848 SpvOpUndef = 1,
849 SpvOpSourceContinued = 2,
850 SpvOpSource = 3,
851 SpvOpSourceExtension = 4,
852 SpvOpName = 5,
853 SpvOpMemberName = 6,
854 SpvOpString = 7,
855 SpvOpLine = 8,
856 SpvOpExtension = 10,
857 SpvOpExtInstImport = 11,
858 SpvOpExtInst = 12,
859 SpvOpMemoryModel = 14,
860 SpvOpEntryPoint = 15,
861 SpvOpExecutionMode = 16,
862 SpvOpCapability = 17,
863 SpvOpTypeVoid = 19,
864 SpvOpTypeBool = 20,
865 SpvOpTypeInt = 21,
866 SpvOpTypeFloat = 22,
867 SpvOpTypeVector = 23,
868 SpvOpTypeMatrix = 24,
869 SpvOpTypeImage = 25,
870 SpvOpTypeSampler = 26,
871 SpvOpTypeSampledImage = 27,
872 SpvOpTypeArray = 28,
873 SpvOpTypeRuntimeArray = 29,
874 SpvOpTypeStruct = 30,
875 SpvOpTypeOpaque = 31,
876 SpvOpTypePointer = 32,
877 SpvOpTypeFunction = 33,
878 SpvOpTypeEvent = 34,
879 SpvOpTypeDeviceEvent = 35,
880 SpvOpTypeReserveId = 36,
881 SpvOpTypeQueue = 37,
882 SpvOpTypePipe = 38,
883 SpvOpTypeForwardPointer = 39,
884 SpvOpConstantTrue = 41,
885 SpvOpConstantFalse = 42,
886 SpvOpConstant = 43,
887 SpvOpConstantComposite = 44,
888 SpvOpConstantSampler = 45,
889 SpvOpConstantNull = 46,
890 SpvOpSpecConstantTrue = 48,
891 SpvOpSpecConstantFalse = 49,
892 SpvOpSpecConstant = 50,
893 SpvOpSpecConstantComposite = 51,
894 SpvOpSpecConstantOp = 52,
895 SpvOpFunction = 54,
896 SpvOpFunctionParameter = 55,
897 SpvOpFunctionEnd = 56,
898 SpvOpFunctionCall = 57,
899 SpvOpVariable = 59,
900 SpvOpImageTexelPointer = 60,
901 SpvOpLoad = 61,
902 SpvOpStore = 62,
903 SpvOpCopyMemory = 63,
904 SpvOpCopyMemorySized = 64,
905 SpvOpAccessChain = 65,
906 SpvOpInBoundsAccessChain = 66,
907 SpvOpPtrAccessChain = 67,
908 SpvOpArrayLength = 68,
909 SpvOpGenericPtrMemSemantics = 69,
910 SpvOpInBoundsPtrAccessChain = 70,
911 SpvOpDecorate = 71,
912 SpvOpMemberDecorate = 72,
913 SpvOpDecorationGroup = 73,
914 SpvOpGroupDecorate = 74,
915 SpvOpGroupMemberDecorate = 75,
916 SpvOpVectorExtractDynamic = 77,
917 SpvOpVectorInsertDynamic = 78,
918 SpvOpVectorShuffle = 79,
919 SpvOpCompositeConstruct = 80,
920 SpvOpCompositeExtract = 81,
921 SpvOpCompositeInsert = 82,
922 SpvOpCopyObject = 83,
923 SpvOpTranspose = 84,
924 SpvOpSampledImage = 86,
925 SpvOpImageSampleImplicitLod = 87,
926 SpvOpImageSampleExplicitLod = 88,
927 SpvOpImageSampleDrefImplicitLod = 89,
928 SpvOpImageSampleDrefExplicitLod = 90,
929 SpvOpImageSampleProjImplicitLod = 91,
930 SpvOpImageSampleProjExplicitLod = 92,
931 SpvOpImageSampleProjDrefImplicitLod = 93,
932 SpvOpImageSampleProjDrefExplicitLod = 94,
933 SpvOpImageFetch = 95,
934 SpvOpImageGather = 96,
935 SpvOpImageDrefGather = 97,
936 SpvOpImageRead = 98,
937 SpvOpImageWrite = 99,
938 SpvOpImage = 100,
939 SpvOpImageQueryFormat = 101,
940 SpvOpImageQueryOrder = 102,
941 SpvOpImageQuerySizeLod = 103,
942 SpvOpImageQuerySize = 104,
943 SpvOpImageQueryLod = 105,
944 SpvOpImageQueryLevels = 106,
945 SpvOpImageQuerySamples = 107,
946 SpvOpConvertFToU = 109,
947 SpvOpConvertFToS = 110,
948 SpvOpConvertSToF = 111,
949 SpvOpConvertUToF = 112,
950 SpvOpUConvert = 113,
951 SpvOpSConvert = 114,
952 SpvOpFConvert = 115,
953 SpvOpQuantizeToF16 = 116,
954 SpvOpConvertPtrToU = 117,
955 SpvOpSatConvertSToU = 118,
956 SpvOpSatConvertUToS = 119,
957 SpvOpConvertUToPtr = 120,
958 SpvOpPtrCastToGeneric = 121,
959 SpvOpGenericCastToPtr = 122,
960 SpvOpGenericCastToPtrExplicit = 123,
961 SpvOpBitcast = 124,
962 SpvOpSNegate = 126,
963 SpvOpFNegate = 127,
964 SpvOpIAdd = 128,
965 SpvOpFAdd = 129,
966 SpvOpISub = 130,
967 SpvOpFSub = 131,
968 SpvOpIMul = 132,
969 SpvOpFMul = 133,
970 SpvOpUDiv = 134,
971 SpvOpSDiv = 135,
972 SpvOpFDiv = 136,
973 SpvOpUMod = 137,
974 SpvOpSRem = 138,
975 SpvOpSMod = 139,
976 SpvOpFRem = 140,
977 SpvOpFMod = 141,
978 SpvOpVectorTimesScalar = 142,
979 SpvOpMatrixTimesScalar = 143,
980 SpvOpVectorTimesMatrix = 144,
981 SpvOpMatrixTimesVector = 145,
982 SpvOpMatrixTimesMatrix = 146,
983 SpvOpOuterProduct = 147,
984 SpvOpDot = 148,
985 SpvOpIAddCarry = 149,
986 SpvOpISubBorrow = 150,
987 SpvOpUMulExtended = 151,
988 SpvOpSMulExtended = 152,
989 SpvOpAny = 154,
990 SpvOpAll = 155,
991 SpvOpIsNan = 156,
992 SpvOpIsInf = 157,
993 SpvOpIsFinite = 158,
994 SpvOpIsNormal = 159,
995 SpvOpSignBitSet = 160,
996 SpvOpLessOrGreater = 161,
997 SpvOpOrdered = 162,
998 SpvOpUnordered = 163,
999 SpvOpLogicalEqual = 164,
1000 SpvOpLogicalNotEqual = 165,
1001 SpvOpLogicalOr = 166,
1002 SpvOpLogicalAnd = 167,
1003 SpvOpLogicalNot = 168,
1004 SpvOpSelect = 169,
1005 SpvOpIEqual = 170,
1006 SpvOpINotEqual = 171,
1007 SpvOpUGreaterThan = 172,
1008 SpvOpSGreaterThan = 173,
1009 SpvOpUGreaterThanEqual = 174,
1010 SpvOpSGreaterThanEqual = 175,
1011 SpvOpULessThan = 176,
1012 SpvOpSLessThan = 177,
1013 SpvOpULessThanEqual = 178,
1014 SpvOpSLessThanEqual = 179,
1015 SpvOpFOrdEqual = 180,
1016 SpvOpFUnordEqual = 181,
1017 SpvOpFOrdNotEqual = 182,
1018 SpvOpFUnordNotEqual = 183,
1019 SpvOpFOrdLessThan = 184,
1020 SpvOpFUnordLessThan = 185,
1021 SpvOpFOrdGreaterThan = 186,
1022 SpvOpFUnordGreaterThan = 187,
1023 SpvOpFOrdLessThanEqual = 188,
1024 SpvOpFUnordLessThanEqual = 189,
1025 SpvOpFOrdGreaterThanEqual = 190,
1026 SpvOpFUnordGreaterThanEqual = 191,
1027 SpvOpShiftRightLogical = 194,
1028 SpvOpShiftRightArithmetic = 195,
1029 SpvOpShiftLeftLogical = 196,
1030 SpvOpBitwiseOr = 197,
1031 SpvOpBitwiseXor = 198,
1032 SpvOpBitwiseAnd = 199,
1033 SpvOpNot = 200,
1034 SpvOpBitFieldInsert = 201,
1035 SpvOpBitFieldSExtract = 202,
1036 SpvOpBitFieldUExtract = 203,
1037 SpvOpBitReverse = 204,
1038 SpvOpBitCount = 205,
1039 SpvOpDPdx = 207,
1040 SpvOpDPdy = 208,
1041 SpvOpFwidth = 209,
1042 SpvOpDPdxFine = 210,
1043 SpvOpDPdyFine = 211,
1044 SpvOpFwidthFine = 212,
1045 SpvOpDPdxCoarse = 213,
1046 SpvOpDPdyCoarse = 214,
1047 SpvOpFwidthCoarse = 215,
1048 SpvOpEmitVertex = 218,
1049 SpvOpEndPrimitive = 219,
1050 SpvOpEmitStreamVertex = 220,
1051 SpvOpEndStreamPrimitive = 221,
1052 SpvOpControlBarrier = 224,
1053 SpvOpMemoryBarrier = 225,
1054 SpvOpAtomicLoad = 227,
1055 SpvOpAtomicStore = 228,
1056 SpvOpAtomicExchange = 229,
1057 SpvOpAtomicCompareExchange = 230,
1058 SpvOpAtomicCompareExchangeWeak = 231,
1059 SpvOpAtomicIIncrement = 232,
1060 SpvOpAtomicIDecrement = 233,
1061 SpvOpAtomicIAdd = 234,
1062 SpvOpAtomicISub = 235,
1063 SpvOpAtomicSMin = 236,
1064 SpvOpAtomicUMin = 237,
1065 SpvOpAtomicSMax = 238,
1066 SpvOpAtomicUMax = 239,
1067 SpvOpAtomicAnd = 240,
1068 SpvOpAtomicOr = 241,
1069 SpvOpAtomicXor = 242,
1070 SpvOpPhi = 245,
1071 SpvOpLoopMerge = 246,
1072 SpvOpSelectionMerge = 247,
1073 SpvOpLabel = 248,
1074 SpvOpBranch = 249,
1075 SpvOpBranchConditional = 250,
1076 SpvOpSwitch = 251,
1077 SpvOpKill = 252,
1078 SpvOpReturn = 253,
1079 SpvOpReturnValue = 254,
1080 SpvOpUnreachable = 255,
1081 SpvOpLifetimeStart = 256,
1082 SpvOpLifetimeStop = 257,
1083 SpvOpGroupAsyncCopy = 259,
1084 SpvOpGroupWaitEvents = 260,
1085 SpvOpGroupAll = 261,
1086 SpvOpGroupAny = 262,
1087 SpvOpGroupBroadcast = 263,
1088 SpvOpGroupIAdd = 264,
1089 SpvOpGroupFAdd = 265,
1090 SpvOpGroupFMin = 266,
1091 SpvOpGroupUMin = 267,
1092 SpvOpGroupSMin = 268,
1093 SpvOpGroupFMax = 269,
1094 SpvOpGroupUMax = 270,
1095 SpvOpGroupSMax = 271,
1096 SpvOpReadPipe = 274,
1097 SpvOpWritePipe = 275,
1098 SpvOpReservedReadPipe = 276,
1099 SpvOpReservedWritePipe = 277,
1100 SpvOpReserveReadPipePackets = 278,
1101 SpvOpReserveWritePipePackets = 279,
1102 SpvOpCommitReadPipe = 280,
1103 SpvOpCommitWritePipe = 281,
1104 SpvOpIsValidReserveId = 282,
1105 SpvOpGetNumPipePackets = 283,
1106 SpvOpGetMaxPipePackets = 284,
1107 SpvOpGroupReserveReadPipePackets = 285,
1108 SpvOpGroupReserveWritePipePackets = 286,
1109 SpvOpGroupCommitReadPipe = 287,
1110 SpvOpGroupCommitWritePipe = 288,
1111 SpvOpEnqueueMarker = 291,
1112 SpvOpEnqueueKernel = 292,
1113 SpvOpGetKernelNDrangeSubGroupCount = 293,
1114 SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1115 SpvOpGetKernelWorkGroupSize = 295,
1116 SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1117 SpvOpRetainEvent = 297,
1118 SpvOpReleaseEvent = 298,
1119 SpvOpCreateUserEvent = 299,
1120 SpvOpIsValidEvent = 300,
1121 SpvOpSetUserEventStatus = 301,
1122 SpvOpCaptureEventProfilingInfo = 302,
1123 SpvOpGetDefaultQueue = 303,
1124 SpvOpBuildNDRange = 304,
1125 SpvOpImageSparseSampleImplicitLod = 305,
1126 SpvOpImageSparseSampleExplicitLod = 306,
1127 SpvOpImageSparseSampleDrefImplicitLod = 307,
1128 SpvOpImageSparseSampleDrefExplicitLod = 308,
1129 SpvOpImageSparseSampleProjImplicitLod = 309,
1130 SpvOpImageSparseSampleProjExplicitLod = 310,
1131 SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1132 SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1133 SpvOpImageSparseFetch = 313,
1134 SpvOpImageSparseGather = 314,
1135 SpvOpImageSparseDrefGather = 315,
1136 SpvOpImageSparseTexelsResident = 316,
1137 SpvOpNoLine = 317,
1138 SpvOpAtomicFlagTestAndSet = 318,
1139 SpvOpAtomicFlagClear = 319,
1140 SpvOpImageSparseRead = 320,
1141 SpvOpSizeOf = 321,
1142 SpvOpTypePipeStorage = 322,
1143 SpvOpConstantPipeStorage = 323,
1144 SpvOpCreatePipeFromPipeStorage = 324,
1145 SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1146 SpvOpGetKernelMaxNumSubgroups = 326,
1147 SpvOpTypeNamedBarrier = 327,
1148 SpvOpNamedBarrierInitialize = 328,
1149 SpvOpMemoryNamedBarrier = 329,
1150 SpvOpModuleProcessed = 330,
1151 SpvOpExecutionModeId = 331,
1152 SpvOpDecorateId = 332,
1153 SpvOpGroupNonUniformElect = 333,
1154 SpvOpGroupNonUniformAll = 334,
1155 SpvOpGroupNonUniformAny = 335,
1156 SpvOpGroupNonUniformAllEqual = 336,
1157 SpvOpGroupNonUniformBroadcast = 337,
1158 SpvOpGroupNonUniformBroadcastFirst = 338,
1159 SpvOpGroupNonUniformBallot = 339,
1160 SpvOpGroupNonUniformInverseBallot = 340,
1161 SpvOpGroupNonUniformBallotBitExtract = 341,
1162 SpvOpGroupNonUniformBallotBitCount = 342,
1163 SpvOpGroupNonUniformBallotFindLSB = 343,
1164 SpvOpGroupNonUniformBallotFindMSB = 344,
1165 SpvOpGroupNonUniformShuffle = 345,
1166 SpvOpGroupNonUniformShuffleXor = 346,
1167 SpvOpGroupNonUniformShuffleUp = 347,
1168 SpvOpGroupNonUniformShuffleDown = 348,
1169 SpvOpGroupNonUniformIAdd = 349,
1170 SpvOpGroupNonUniformFAdd = 350,
1171 SpvOpGroupNonUniformIMul = 351,
1172 SpvOpGroupNonUniformFMul = 352,
1173 SpvOpGroupNonUniformSMin = 353,
1174 SpvOpGroupNonUniformUMin = 354,
1175 SpvOpGroupNonUniformFMin = 355,
1176 SpvOpGroupNonUniformSMax = 356,
1177 SpvOpGroupNonUniformUMax = 357,
1178 SpvOpGroupNonUniformFMax = 358,
1179 SpvOpGroupNonUniformBitwiseAnd = 359,
1180 SpvOpGroupNonUniformBitwiseOr = 360,
1181 SpvOpGroupNonUniformBitwiseXor = 361,
1182 SpvOpGroupNonUniformLogicalAnd = 362,
1183 SpvOpGroupNonUniformLogicalOr = 363,
1184 SpvOpGroupNonUniformLogicalXor = 364,
1185 SpvOpGroupNonUniformQuadBroadcast = 365,
1186 SpvOpGroupNonUniformQuadSwap = 366,
1187 SpvOpCopyLogical = 400,
1188 SpvOpPtrEqual = 401,
1189 SpvOpPtrNotEqual = 402,
1190 SpvOpPtrDiff = 403,
1191 SpvOpSubgroupBallotKHR = 4421,
1192 SpvOpSubgroupFirstInvocationKHR = 4422,
1193 SpvOpSubgroupAllKHR = 4428,
1194 SpvOpSubgroupAnyKHR = 4429,
1195 SpvOpSubgroupAllEqualKHR = 4430,
1196 SpvOpSubgroupReadInvocationKHR = 4432,
1197 SpvOpGroupIAddNonUniformAMD = 5000,
1198 SpvOpGroupFAddNonUniformAMD = 5001,
1199 SpvOpGroupFMinNonUniformAMD = 5002,
1200 SpvOpGroupUMinNonUniformAMD = 5003,
1201 SpvOpGroupSMinNonUniformAMD = 5004,
1202 SpvOpGroupFMaxNonUniformAMD = 5005,
1203 SpvOpGroupUMaxNonUniformAMD = 5006,
1204 SpvOpGroupSMaxNonUniformAMD = 5007,
1205 SpvOpFragmentMaskFetchAMD = 5011,
1206 SpvOpFragmentFetchAMD = 5012,
1207 SpvOpImageSampleFootprintNV = 5283,
1208 SpvOpGroupNonUniformPartitionNV = 5296,
1209 SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1210 SpvOpReportIntersectionNV = 5334,
1211 SpvOpIgnoreIntersectionNV = 5335,
1212 SpvOpTerminateRayNV = 5336,
1213 SpvOpTraceNV = 5337,
1214 SpvOpTypeAccelerationStructureNV = 5341,
1215 SpvOpExecuteCallableNV = 5344,
1216 SpvOpTypeCooperativeMatrixNV = 5358,
1217 SpvOpCooperativeMatrixLoadNV = 5359,
1218 SpvOpCooperativeMatrixStoreNV = 5360,
1219 SpvOpCooperativeMatrixMulAddNV = 5361,
1220 SpvOpCooperativeMatrixLengthNV = 5362,
1221 SpvOpSubgroupShuffleINTEL = 5571,
1222 SpvOpSubgroupShuffleDownINTEL = 5572,
1223 SpvOpSubgroupShuffleUpINTEL = 5573,
1224 SpvOpSubgroupShuffleXorINTEL = 5574,
1225 SpvOpSubgroupBlockReadINTEL = 5575,
1226 SpvOpSubgroupBlockWriteINTEL = 5576,
1227 SpvOpSubgroupImageBlockReadINTEL = 5577,
1228 SpvOpSubgroupImageBlockWriteINTEL = 5578,
1229 SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
1230 SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
1231 SpvOpDecorateString = 5632,
1232 SpvOpDecorateStringGOOGLE = 5632,
1233 SpvOpMemberDecorateString = 5633,
1234 SpvOpMemberDecorateStringGOOGLE = 5633,
1235 SpvOpVmeImageINTEL = 5699,
1236 SpvOpTypeVmeImageINTEL = 5700,
1237 SpvOpTypeAvcImePayloadINTEL = 5701,
1238 SpvOpTypeAvcRefPayloadINTEL = 5702,
1239 SpvOpTypeAvcSicPayloadINTEL = 5703,
1240 SpvOpTypeAvcMcePayloadINTEL = 5704,
1241 SpvOpTypeAvcMceResultINTEL = 5705,
1242 SpvOpTypeAvcImeResultINTEL = 5706,
1243 SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1244 SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1245 SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1246 SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1247 SpvOpTypeAvcRefResultINTEL = 5711,
1248 SpvOpTypeAvcSicResultINTEL = 5712,
1249 SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1250 SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1251 SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1252 SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1253 SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1254 SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1255 SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1256 SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1257 SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1258 SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1259 SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1260 SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1261 SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1262 SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1263 SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1264 SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1265 SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1266 SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1267 SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1268 SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1269 SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1270 SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1271 SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1272 SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1273 SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1274 SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1275 SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1276 SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1277 SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1278 SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1279 SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1280 SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1281 SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1282 SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1283 SpvOpSubgroupAvcImeInitializeINTEL = 5747,
1284 SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1285 SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1286 SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1287 SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1288 SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1289 SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1290 SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1291 SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1292 SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1293 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1294 SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1295 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1296 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1297 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1298 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1299 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1300 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1301 SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1302 SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1303 SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1304 SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1305 SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1306 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
1307 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
1308 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
1309 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
1310 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1311 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
1312 SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1313 SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1314 SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1315 SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1316 SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1317 SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
1318 SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
1319 SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1320 SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1321 SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1322 SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1323 SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1324 SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1325 SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1326 SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1327 SpvOpSubgroupAvcSicInitializeINTEL = 5791,
1328 SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
1329 SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1330 SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1331 SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1332 SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1333 SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1334 SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1335 SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1336 SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1337 SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1338 SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1339 SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1340 SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1341 SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1342 SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1343 SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1344 SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1345 SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1346 SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1347 SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
1348 SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
1349 SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
1350 SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
1351 SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
1352 SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
1353 SpvOpMax = 0x7fffffff,
1354 } SpvOp;
1355
1356 #ifdef SPV_ENABLE_UTILITY_CODE
1357 inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
1358 *hasResult = *hasResultType = false;
1359 switch (opcode) {
1360 default: /* unknown opcode */ break;
1361 case SpvOpNop: *hasResult = false; *hasResultType = false; break;
1362 case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
1363 case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
1364 case SpvOpSource: *hasResult = false; *hasResultType = false; break;
1365 case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
1366 case SpvOpName: *hasResult = false; *hasResultType = false; break;
1367 case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
1368 case SpvOpString: *hasResult = true; *hasResultType = false; break;
1369 case SpvOpLine: *hasResult = false; *hasResultType = false; break;
1370 case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
1371 case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
1372 case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
1373 case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
1374 case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
1375 case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
1376 case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
1377 case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
1378 case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
1379 case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
1380 case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
1381 case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
1382 case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
1383 case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
1384 case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
1385 case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
1386 case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
1387 case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
1388 case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
1389 case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
1390 case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
1391 case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
1392 case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
1393 case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
1394 case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
1395 case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
1396 case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
1397 case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
1398 case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
1399 case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
1400 case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
1401 case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
1402 case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
1403 case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
1404 case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
1405 case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
1406 case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
1407 case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
1408 case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
1409 case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
1410 case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
1411 case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
1412 case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
1413 case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
1414 case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
1415 case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
1416 case SpvOpStore: *hasResult = false; *hasResultType = false; break;
1417 case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
1418 case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
1419 case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
1420 case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
1421 case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1422 case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
1423 case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
1424 case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1425 case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
1426 case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
1427 case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
1428 case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
1429 case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
1430 case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
1431 case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
1432 case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
1433 case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
1434 case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
1435 case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
1436 case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
1437 case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
1438 case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
1439 case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1440 case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1441 case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1442 case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1443 case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1444 case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1445 case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1446 case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1447 case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
1448 case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
1449 case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
1450 case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
1451 case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
1452 case SpvOpImage: *hasResult = true; *hasResultType = true; break;
1453 case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
1454 case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
1455 case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
1456 case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
1457 case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
1458 case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
1459 case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
1460 case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
1461 case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
1462 case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
1463 case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
1464 case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
1465 case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
1466 case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
1467 case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
1468 case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
1469 case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
1470 case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
1471 case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
1472 case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
1473 case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
1474 case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
1475 case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
1476 case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
1477 case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
1478 case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
1479 case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
1480 case SpvOpISub: *hasResult = true; *hasResultType = true; break;
1481 case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
1482 case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
1483 case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
1484 case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
1485 case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
1486 case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
1487 case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
1488 case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
1489 case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
1490 case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
1491 case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
1492 case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
1493 case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
1494 case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
1495 case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
1496 case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
1497 case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
1498 case SpvOpDot: *hasResult = true; *hasResultType = true; break;
1499 case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
1500 case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
1501 case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
1502 case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
1503 case SpvOpAny: *hasResult = true; *hasResultType = true; break;
1504 case SpvOpAll: *hasResult = true; *hasResultType = true; break;
1505 case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
1506 case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
1507 case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
1508 case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
1509 case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
1510 case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
1511 case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
1512 case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
1513 case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
1514 case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
1515 case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
1516 case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
1517 case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
1518 case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
1519 case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
1520 case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
1521 case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
1522 case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
1523 case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1524 case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1525 case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
1526 case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
1527 case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
1528 case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
1529 case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
1530 case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
1531 case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
1532 case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
1533 case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
1534 case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
1535 case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
1536 case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
1537 case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
1538 case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
1539 case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1540 case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1541 case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
1542 case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
1543 case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
1544 case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
1545 case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
1546 case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
1547 case SpvOpNot: *hasResult = true; *hasResultType = true; break;
1548 case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
1549 case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
1550 case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
1551 case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
1552 case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
1553 case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
1554 case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
1555 case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
1556 case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
1557 case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
1558 case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
1559 case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
1560 case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
1561 case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
1562 case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
1563 case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
1564 case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
1565 case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
1566 case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
1567 case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
1568 case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
1569 case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
1570 case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
1571 case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
1572 case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
1573 case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
1574 case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
1575 case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
1576 case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
1577 case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
1578 case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
1579 case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
1580 case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
1581 case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
1582 case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
1583 case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
1584 case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
1585 case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
1586 case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
1587 case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
1588 case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
1589 case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
1590 case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
1591 case SpvOpKill: *hasResult = false; *hasResultType = false; break;
1592 case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
1593 case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
1594 case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
1595 case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
1596 case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
1597 case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
1598 case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
1599 case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
1600 case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
1601 case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
1602 case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
1603 case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
1604 case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
1605 case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
1606 case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
1607 case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
1608 case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
1609 case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
1610 case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
1611 case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
1612 case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
1613 case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
1614 case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
1615 case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
1616 case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
1617 case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
1618 case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
1619 case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
1620 case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
1621 case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
1622 case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
1623 case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
1624 case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
1625 case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
1626 case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
1627 case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
1628 case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
1629 case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
1630 case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
1631 case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
1632 case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
1633 case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
1634 case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
1635 case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
1636 case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
1637 case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
1638 case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
1639 case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1640 case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1641 case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1642 case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1643 case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1644 case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1645 case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1646 case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1647 case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
1648 case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
1649 case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
1650 case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
1651 case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
1652 case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
1653 case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
1654 case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
1655 case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
1656 case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
1657 case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
1658 case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
1659 case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
1660 case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
1661 case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
1662 case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
1663 case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
1664 case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
1665 case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
1666 case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
1667 case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
1668 case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
1669 case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
1670 case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
1671 case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
1672 case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
1673 case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
1674 case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
1675 case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
1676 case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
1677 case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
1678 case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
1679 case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
1680 case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
1681 case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
1682 case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
1683 case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
1684 case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
1685 case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
1686 case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
1687 case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
1688 case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
1689 case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
1690 case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
1691 case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
1692 case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
1693 case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
1694 case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
1695 case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
1696 case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
1697 case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
1698 case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
1699 case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
1700 case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
1701 case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
1702 case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
1703 case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
1704 case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
1705 case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
1706 case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
1707 case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
1708 case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
1709 case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
1710 case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
1711 case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1712 case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1713 case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1714 case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1715 case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1716 case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1717 case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1718 case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1719 case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
1720 case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
1721 case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
1722 case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
1723 case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
1724 case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
1725 case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
1726 case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
1727 case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
1728 case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
1729 case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
1730 case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
1731 case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
1732 case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
1733 case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
1734 case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
1735 case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
1736 case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
1737 case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
1738 case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
1739 case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
1740 case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
1741 case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
1742 case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
1743 case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
1744 case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
1745 case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
1746 case SpvOpDecorateStringGOOGLE: *hasResult = false; *hasResultType = false; break;
1747 case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
1748 case SpvOpMemberDecorateStringGOOGLE: *hasResult = false; *hasResultType = false; break;
1749 case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
1750 case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
1751 case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
1752 case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
1753 case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
1754 case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
1755 case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
1756 case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
1757 case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
1758 case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
1759 case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
1760 case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
1761 case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
1762 case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
1763 case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1764 case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1765 case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1766 case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1767 case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1768 case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1769 case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1770 case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1771 case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1772 case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1773 case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1774 case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
1775 case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1776 case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1777 case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1778 case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
1779 case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
1780 case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
1781 case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
1782 case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1783 case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
1784 case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
1785 case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
1786 case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
1787 case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
1788 case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
1789 case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1790 case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1791 case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
1792 case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
1793 case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
1794 case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
1795 case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
1796 case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
1797 case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1798 case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1799 case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1800 case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
1801 case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
1802 case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1803 case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
1804 case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
1805 case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
1806 case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
1807 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1808 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1809 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1810 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1811 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1812 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1813 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
1814 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
1815 case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
1816 case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1817 case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1818 case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1819 case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1820 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
1821 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1822 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
1823 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
1824 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1825 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
1826 case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
1827 case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
1828 case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
1829 case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
1830 case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
1831 case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1832 case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1833 case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1834 case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
1835 case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
1836 case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1837 case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1838 case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1839 case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
1840 case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
1841 case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1842 case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
1843 case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
1844 case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
1845 case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
1846 case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1847 case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1848 case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
1849 case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
1850 case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
1851 case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
1852 case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
1853 case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
1854 case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1855 case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1856 case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1857 case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
1858 case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
1859 case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
1860 case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
1861 case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
1862 case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
1863 case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
1864 case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
1865 case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
1866 case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
1867 }
1868 }
1869 #endif /* SPV_ENABLE_UTILITY_CODE */
1870
1871 #endif
1872