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