1 // Copyright (c) 2014-2020 The Khronos Group Inc.
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and/or associated documentation files (the "Materials"),
5 // to deal in the Materials without restriction, including without limitation
6 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 // and/or sell copies of the Materials, and to permit persons to whom the
8 // Materials are furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in
11 // all copies or substantial portions of the Materials.
12 //
13 // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
14 // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
15 // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
16 //
17 // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
23 // IN THE MATERIALS.
24
25 // This header is automatically generated by the same tool that creates
26 // the Binary Section of the SPIR-V specification.
27
28 // Enumeration tokens for SPIR-V, in various styles:
29 // C, C++, C++11, JSON, Lua, Python, C#, D, Beef
30 //
31 // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
32 // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
33 // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
34 // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
35 // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
36 // - C# will use enum classes in the Specification class located in the "Spv" namespace,
37 // e.g.: Spv.Specification.SourceLanguage.GLSL
38 // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
39 // - Beef will use enum classes in the Specification class located in the "Spv" namespace,
40 // e.g.: Spv.Specification.SourceLanguage.GLSL
41 //
42 // Some tokens act like mask values, which can be OR'd together,
43 // while others are mutually exclusive. The mask-like ones have
44 // "Mask" in their name, and a parallel enum that has the shift
45 // amount (1 << x) for each corresponding enumerant.
46
47 #ifndef spirv_HPP
48 #define spirv_HPP
49
50 namespace spv {
51
52 typedef unsigned int Id;
53
54 #define SPV_VERSION 0x10600
55 #define SPV_REVISION 1
56
57 static const unsigned int MagicNumber = 0x07230203;
58 static const unsigned int Version = 0x00010600;
59 static const unsigned int Revision = 1;
60 static const unsigned int OpCodeMask = 0xffff;
61 static const unsigned int WordCountShift = 16;
62
63 enum SourceLanguage {
64 SourceLanguageUnknown = 0,
65 SourceLanguageESSL = 1,
66 SourceLanguageGLSL = 2,
67 SourceLanguageOpenCL_C = 3,
68 SourceLanguageOpenCL_CPP = 4,
69 SourceLanguageHLSL = 5,
70 SourceLanguageCPP_for_OpenCL = 6,
71 SourceLanguageSYCL = 7,
72 SourceLanguageHERO_C = 8,
73 SourceLanguageNZSL = 9,
74 SourceLanguageWGSL = 10,
75 SourceLanguageSlang = 11,
76 SourceLanguageMax = 0x7fffffff,
77 };
78
79 enum ExecutionModel {
80 ExecutionModelVertex = 0,
81 ExecutionModelTessellationControl = 1,
82 ExecutionModelTessellationEvaluation = 2,
83 ExecutionModelGeometry = 3,
84 ExecutionModelFragment = 4,
85 ExecutionModelGLCompute = 5,
86 ExecutionModelKernel = 6,
87 ExecutionModelTaskNV = 5267,
88 ExecutionModelMeshNV = 5268,
89 ExecutionModelRayGenerationKHR = 5313,
90 ExecutionModelRayGenerationNV = 5313,
91 ExecutionModelIntersectionKHR = 5314,
92 ExecutionModelIntersectionNV = 5314,
93 ExecutionModelAnyHitKHR = 5315,
94 ExecutionModelAnyHitNV = 5315,
95 ExecutionModelClosestHitKHR = 5316,
96 ExecutionModelClosestHitNV = 5316,
97 ExecutionModelMissKHR = 5317,
98 ExecutionModelMissNV = 5317,
99 ExecutionModelCallableKHR = 5318,
100 ExecutionModelCallableNV = 5318,
101 ExecutionModelTaskEXT = 5364,
102 ExecutionModelMeshEXT = 5365,
103 ExecutionModelMax = 0x7fffffff,
104 };
105
106 enum AddressingModel {
107 AddressingModelLogical = 0,
108 AddressingModelPhysical32 = 1,
109 AddressingModelPhysical64 = 2,
110 AddressingModelPhysicalStorageBuffer64 = 5348,
111 AddressingModelPhysicalStorageBuffer64EXT = 5348,
112 AddressingModelMax = 0x7fffffff,
113 };
114
115 enum MemoryModel {
116 MemoryModelSimple = 0,
117 MemoryModelGLSL450 = 1,
118 MemoryModelOpenCL = 2,
119 MemoryModelVulkan = 3,
120 MemoryModelVulkanKHR = 3,
121 MemoryModelMax = 0x7fffffff,
122 };
123
124 enum ExecutionMode {
125 ExecutionModeInvocations = 0,
126 ExecutionModeSpacingEqual = 1,
127 ExecutionModeSpacingFractionalEven = 2,
128 ExecutionModeSpacingFractionalOdd = 3,
129 ExecutionModeVertexOrderCw = 4,
130 ExecutionModeVertexOrderCcw = 5,
131 ExecutionModePixelCenterInteger = 6,
132 ExecutionModeOriginUpperLeft = 7,
133 ExecutionModeOriginLowerLeft = 8,
134 ExecutionModeEarlyFragmentTests = 9,
135 ExecutionModePointMode = 10,
136 ExecutionModeXfb = 11,
137 ExecutionModeDepthReplacing = 12,
138 ExecutionModeDepthGreater = 14,
139 ExecutionModeDepthLess = 15,
140 ExecutionModeDepthUnchanged = 16,
141 ExecutionModeLocalSize = 17,
142 ExecutionModeLocalSizeHint = 18,
143 ExecutionModeInputPoints = 19,
144 ExecutionModeInputLines = 20,
145 ExecutionModeInputLinesAdjacency = 21,
146 ExecutionModeTriangles = 22,
147 ExecutionModeInputTrianglesAdjacency = 23,
148 ExecutionModeQuads = 24,
149 ExecutionModeIsolines = 25,
150 ExecutionModeOutputVertices = 26,
151 ExecutionModeOutputPoints = 27,
152 ExecutionModeOutputLineStrip = 28,
153 ExecutionModeOutputTriangleStrip = 29,
154 ExecutionModeVecTypeHint = 30,
155 ExecutionModeContractionOff = 31,
156 ExecutionModeInitializer = 33,
157 ExecutionModeFinalizer = 34,
158 ExecutionModeSubgroupSize = 35,
159 ExecutionModeSubgroupsPerWorkgroup = 36,
160 ExecutionModeSubgroupsPerWorkgroupId = 37,
161 ExecutionModeLocalSizeId = 38,
162 ExecutionModeLocalSizeHintId = 39,
163 ExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
164 ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
165 ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
166 ExecutionModeSubgroupUniformControlFlowKHR = 4421,
167 ExecutionModePostDepthCoverage = 4446,
168 ExecutionModeDenormPreserve = 4459,
169 ExecutionModeDenormFlushToZero = 4460,
170 ExecutionModeSignedZeroInfNanPreserve = 4461,
171 ExecutionModeRoundingModeRTE = 4462,
172 ExecutionModeRoundingModeRTZ = 4463,
173 ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
174 ExecutionModeStencilRefReplacingEXT = 5027,
175 ExecutionModeCoalescingAMDX = 5069,
176 ExecutionModeMaxNodeRecursionAMDX = 5071,
177 ExecutionModeStaticNumWorkgroupsAMDX = 5072,
178 ExecutionModeShaderIndexAMDX = 5073,
179 ExecutionModeMaxNumWorkgroupsAMDX = 5077,
180 ExecutionModeStencilRefUnchangedFrontAMD = 5079,
181 ExecutionModeStencilRefGreaterFrontAMD = 5080,
182 ExecutionModeStencilRefLessFrontAMD = 5081,
183 ExecutionModeStencilRefUnchangedBackAMD = 5082,
184 ExecutionModeStencilRefGreaterBackAMD = 5083,
185 ExecutionModeStencilRefLessBackAMD = 5084,
186 ExecutionModeOutputLinesEXT = 5269,
187 ExecutionModeOutputLinesNV = 5269,
188 ExecutionModeOutputPrimitivesEXT = 5270,
189 ExecutionModeOutputPrimitivesNV = 5270,
190 ExecutionModeDerivativeGroupQuadsNV = 5289,
191 ExecutionModeDerivativeGroupLinearNV = 5290,
192 ExecutionModeOutputTrianglesEXT = 5298,
193 ExecutionModeOutputTrianglesNV = 5298,
194 ExecutionModePixelInterlockOrderedEXT = 5366,
195 ExecutionModePixelInterlockUnorderedEXT = 5367,
196 ExecutionModeSampleInterlockOrderedEXT = 5368,
197 ExecutionModeSampleInterlockUnorderedEXT = 5369,
198 ExecutionModeShadingRateInterlockOrderedEXT = 5370,
199 ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
200 ExecutionModeSharedLocalMemorySizeINTEL = 5618,
201 ExecutionModeRoundingModeRTPINTEL = 5620,
202 ExecutionModeRoundingModeRTNINTEL = 5621,
203 ExecutionModeFloatingPointModeALTINTEL = 5622,
204 ExecutionModeFloatingPointModeIEEEINTEL = 5623,
205 ExecutionModeMaxWorkgroupSizeINTEL = 5893,
206 ExecutionModeMaxWorkDimINTEL = 5894,
207 ExecutionModeNoGlobalOffsetINTEL = 5895,
208 ExecutionModeNumSIMDWorkitemsINTEL = 5896,
209 ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
210 ExecutionModeStreamingInterfaceINTEL = 6154,
211 ExecutionModeRegisterMapInterfaceINTEL = 6160,
212 ExecutionModeNamedBarrierCountINTEL = 6417,
213 ExecutionModeMax = 0x7fffffff,
214 };
215
216 enum StorageClass {
217 StorageClassUniformConstant = 0,
218 StorageClassInput = 1,
219 StorageClassUniform = 2,
220 StorageClassOutput = 3,
221 StorageClassWorkgroup = 4,
222 StorageClassCrossWorkgroup = 5,
223 StorageClassPrivate = 6,
224 StorageClassFunction = 7,
225 StorageClassGeneric = 8,
226 StorageClassPushConstant = 9,
227 StorageClassAtomicCounter = 10,
228 StorageClassImage = 11,
229 StorageClassStorageBuffer = 12,
230 StorageClassTileImageEXT = 4172,
231 StorageClassNodePayloadAMDX = 5068,
232 StorageClassNodeOutputPayloadAMDX = 5076,
233 StorageClassCallableDataKHR = 5328,
234 StorageClassCallableDataNV = 5328,
235 StorageClassIncomingCallableDataKHR = 5329,
236 StorageClassIncomingCallableDataNV = 5329,
237 StorageClassRayPayloadKHR = 5338,
238 StorageClassRayPayloadNV = 5338,
239 StorageClassHitAttributeKHR = 5339,
240 StorageClassHitAttributeNV = 5339,
241 StorageClassIncomingRayPayloadKHR = 5342,
242 StorageClassIncomingRayPayloadNV = 5342,
243 StorageClassShaderRecordBufferKHR = 5343,
244 StorageClassShaderRecordBufferNV = 5343,
245 StorageClassPhysicalStorageBuffer = 5349,
246 StorageClassPhysicalStorageBufferEXT = 5349,
247 StorageClassHitObjectAttributeNV = 5385,
248 StorageClassTaskPayloadWorkgroupEXT = 5402,
249 StorageClassCodeSectionINTEL = 5605,
250 StorageClassDeviceOnlyINTEL = 5936,
251 StorageClassHostOnlyINTEL = 5937,
252 StorageClassMax = 0x7fffffff,
253 };
254
255 enum Dim {
256 Dim1D = 0,
257 Dim2D = 1,
258 Dim3D = 2,
259 DimCube = 3,
260 DimRect = 4,
261 DimBuffer = 5,
262 DimSubpassData = 6,
263 DimTileImageDataEXT = 4173,
264 DimMax = 0x7fffffff,
265 };
266
267 enum SamplerAddressingMode {
268 SamplerAddressingModeNone = 0,
269 SamplerAddressingModeClampToEdge = 1,
270 SamplerAddressingModeClamp = 2,
271 SamplerAddressingModeRepeat = 3,
272 SamplerAddressingModeRepeatMirrored = 4,
273 SamplerAddressingModeMax = 0x7fffffff,
274 };
275
276 enum SamplerFilterMode {
277 SamplerFilterModeNearest = 0,
278 SamplerFilterModeLinear = 1,
279 SamplerFilterModeMax = 0x7fffffff,
280 };
281
282 enum ImageFormat {
283 ImageFormatUnknown = 0,
284 ImageFormatRgba32f = 1,
285 ImageFormatRgba16f = 2,
286 ImageFormatR32f = 3,
287 ImageFormatRgba8 = 4,
288 ImageFormatRgba8Snorm = 5,
289 ImageFormatRg32f = 6,
290 ImageFormatRg16f = 7,
291 ImageFormatR11fG11fB10f = 8,
292 ImageFormatR16f = 9,
293 ImageFormatRgba16 = 10,
294 ImageFormatRgb10A2 = 11,
295 ImageFormatRg16 = 12,
296 ImageFormatRg8 = 13,
297 ImageFormatR16 = 14,
298 ImageFormatR8 = 15,
299 ImageFormatRgba16Snorm = 16,
300 ImageFormatRg16Snorm = 17,
301 ImageFormatRg8Snorm = 18,
302 ImageFormatR16Snorm = 19,
303 ImageFormatR8Snorm = 20,
304 ImageFormatRgba32i = 21,
305 ImageFormatRgba16i = 22,
306 ImageFormatRgba8i = 23,
307 ImageFormatR32i = 24,
308 ImageFormatRg32i = 25,
309 ImageFormatRg16i = 26,
310 ImageFormatRg8i = 27,
311 ImageFormatR16i = 28,
312 ImageFormatR8i = 29,
313 ImageFormatRgba32ui = 30,
314 ImageFormatRgba16ui = 31,
315 ImageFormatRgba8ui = 32,
316 ImageFormatR32ui = 33,
317 ImageFormatRgb10a2ui = 34,
318 ImageFormatRg32ui = 35,
319 ImageFormatRg16ui = 36,
320 ImageFormatRg8ui = 37,
321 ImageFormatR16ui = 38,
322 ImageFormatR8ui = 39,
323 ImageFormatR64ui = 40,
324 ImageFormatR64i = 41,
325 ImageFormatMax = 0x7fffffff,
326 };
327
328 enum ImageChannelOrder {
329 ImageChannelOrderR = 0,
330 ImageChannelOrderA = 1,
331 ImageChannelOrderRG = 2,
332 ImageChannelOrderRA = 3,
333 ImageChannelOrderRGB = 4,
334 ImageChannelOrderRGBA = 5,
335 ImageChannelOrderBGRA = 6,
336 ImageChannelOrderARGB = 7,
337 ImageChannelOrderIntensity = 8,
338 ImageChannelOrderLuminance = 9,
339 ImageChannelOrderRx = 10,
340 ImageChannelOrderRGx = 11,
341 ImageChannelOrderRGBx = 12,
342 ImageChannelOrderDepth = 13,
343 ImageChannelOrderDepthStencil = 14,
344 ImageChannelOrdersRGB = 15,
345 ImageChannelOrdersRGBx = 16,
346 ImageChannelOrdersRGBA = 17,
347 ImageChannelOrdersBGRA = 18,
348 ImageChannelOrderABGR = 19,
349 ImageChannelOrderMax = 0x7fffffff,
350 };
351
352 enum ImageChannelDataType {
353 ImageChannelDataTypeSnormInt8 = 0,
354 ImageChannelDataTypeSnormInt16 = 1,
355 ImageChannelDataTypeUnormInt8 = 2,
356 ImageChannelDataTypeUnormInt16 = 3,
357 ImageChannelDataTypeUnormShort565 = 4,
358 ImageChannelDataTypeUnormShort555 = 5,
359 ImageChannelDataTypeUnormInt101010 = 6,
360 ImageChannelDataTypeSignedInt8 = 7,
361 ImageChannelDataTypeSignedInt16 = 8,
362 ImageChannelDataTypeSignedInt32 = 9,
363 ImageChannelDataTypeUnsignedInt8 = 10,
364 ImageChannelDataTypeUnsignedInt16 = 11,
365 ImageChannelDataTypeUnsignedInt32 = 12,
366 ImageChannelDataTypeHalfFloat = 13,
367 ImageChannelDataTypeFloat = 14,
368 ImageChannelDataTypeUnormInt24 = 15,
369 ImageChannelDataTypeUnormInt101010_2 = 16,
370 ImageChannelDataTypeUnsignedIntRaw10EXT = 19,
371 ImageChannelDataTypeUnsignedIntRaw12EXT = 20,
372 ImageChannelDataTypeMax = 0x7fffffff,
373 };
374
375 enum ImageOperandsShift {
376 ImageOperandsBiasShift = 0,
377 ImageOperandsLodShift = 1,
378 ImageOperandsGradShift = 2,
379 ImageOperandsConstOffsetShift = 3,
380 ImageOperandsOffsetShift = 4,
381 ImageOperandsConstOffsetsShift = 5,
382 ImageOperandsSampleShift = 6,
383 ImageOperandsMinLodShift = 7,
384 ImageOperandsMakeTexelAvailableShift = 8,
385 ImageOperandsMakeTexelAvailableKHRShift = 8,
386 ImageOperandsMakeTexelVisibleShift = 9,
387 ImageOperandsMakeTexelVisibleKHRShift = 9,
388 ImageOperandsNonPrivateTexelShift = 10,
389 ImageOperandsNonPrivateTexelKHRShift = 10,
390 ImageOperandsVolatileTexelShift = 11,
391 ImageOperandsVolatileTexelKHRShift = 11,
392 ImageOperandsSignExtendShift = 12,
393 ImageOperandsZeroExtendShift = 13,
394 ImageOperandsNontemporalShift = 14,
395 ImageOperandsOffsetsShift = 16,
396 ImageOperandsMax = 0x7fffffff,
397 };
398
399 enum ImageOperandsMask {
400 ImageOperandsMaskNone = 0,
401 ImageOperandsBiasMask = 0x00000001,
402 ImageOperandsLodMask = 0x00000002,
403 ImageOperandsGradMask = 0x00000004,
404 ImageOperandsConstOffsetMask = 0x00000008,
405 ImageOperandsOffsetMask = 0x00000010,
406 ImageOperandsConstOffsetsMask = 0x00000020,
407 ImageOperandsSampleMask = 0x00000040,
408 ImageOperandsMinLodMask = 0x00000080,
409 ImageOperandsMakeTexelAvailableMask = 0x00000100,
410 ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
411 ImageOperandsMakeTexelVisibleMask = 0x00000200,
412 ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
413 ImageOperandsNonPrivateTexelMask = 0x00000400,
414 ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
415 ImageOperandsVolatileTexelMask = 0x00000800,
416 ImageOperandsVolatileTexelKHRMask = 0x00000800,
417 ImageOperandsSignExtendMask = 0x00001000,
418 ImageOperandsZeroExtendMask = 0x00002000,
419 ImageOperandsNontemporalMask = 0x00004000,
420 ImageOperandsOffsetsMask = 0x00010000,
421 };
422
423 enum FPFastMathModeShift {
424 FPFastMathModeNotNaNShift = 0,
425 FPFastMathModeNotInfShift = 1,
426 FPFastMathModeNSZShift = 2,
427 FPFastMathModeAllowRecipShift = 3,
428 FPFastMathModeFastShift = 4,
429 FPFastMathModeAllowContractFastINTELShift = 16,
430 FPFastMathModeAllowReassocINTELShift = 17,
431 FPFastMathModeMax = 0x7fffffff,
432 };
433
434 enum FPFastMathModeMask {
435 FPFastMathModeMaskNone = 0,
436 FPFastMathModeNotNaNMask = 0x00000001,
437 FPFastMathModeNotInfMask = 0x00000002,
438 FPFastMathModeNSZMask = 0x00000004,
439 FPFastMathModeAllowRecipMask = 0x00000008,
440 FPFastMathModeFastMask = 0x00000010,
441 FPFastMathModeAllowContractFastINTELMask = 0x00010000,
442 FPFastMathModeAllowReassocINTELMask = 0x00020000,
443 };
444
445 enum FPRoundingMode {
446 FPRoundingModeRTE = 0,
447 FPRoundingModeRTZ = 1,
448 FPRoundingModeRTP = 2,
449 FPRoundingModeRTN = 3,
450 FPRoundingModeMax = 0x7fffffff,
451 };
452
453 enum LinkageType {
454 LinkageTypeExport = 0,
455 LinkageTypeImport = 1,
456 LinkageTypeLinkOnceODR = 2,
457 LinkageTypeMax = 0x7fffffff,
458 };
459
460 enum AccessQualifier {
461 AccessQualifierReadOnly = 0,
462 AccessQualifierWriteOnly = 1,
463 AccessQualifierReadWrite = 2,
464 AccessQualifierMax = 0x7fffffff,
465 };
466
467 enum FunctionParameterAttribute {
468 FunctionParameterAttributeZext = 0,
469 FunctionParameterAttributeSext = 1,
470 FunctionParameterAttributeByVal = 2,
471 FunctionParameterAttributeSret = 3,
472 FunctionParameterAttributeNoAlias = 4,
473 FunctionParameterAttributeNoCapture = 5,
474 FunctionParameterAttributeNoWrite = 6,
475 FunctionParameterAttributeNoReadWrite = 7,
476 FunctionParameterAttributeRuntimeAlignedINTEL = 5940,
477 FunctionParameterAttributeMax = 0x7fffffff,
478 };
479
480 enum Decoration {
481 DecorationRelaxedPrecision = 0,
482 DecorationSpecId = 1,
483 DecorationBlock = 2,
484 DecorationBufferBlock = 3,
485 DecorationRowMajor = 4,
486 DecorationColMajor = 5,
487 DecorationArrayStride = 6,
488 DecorationMatrixStride = 7,
489 DecorationGLSLShared = 8,
490 DecorationGLSLPacked = 9,
491 DecorationCPacked = 10,
492 DecorationBuiltIn = 11,
493 DecorationNoPerspective = 13,
494 DecorationFlat = 14,
495 DecorationPatch = 15,
496 DecorationCentroid = 16,
497 DecorationSample = 17,
498 DecorationInvariant = 18,
499 DecorationRestrict = 19,
500 DecorationAliased = 20,
501 DecorationVolatile = 21,
502 DecorationConstant = 22,
503 DecorationCoherent = 23,
504 DecorationNonWritable = 24,
505 DecorationNonReadable = 25,
506 DecorationUniform = 26,
507 DecorationUniformId = 27,
508 DecorationSaturatedConversion = 28,
509 DecorationStream = 29,
510 DecorationLocation = 30,
511 DecorationComponent = 31,
512 DecorationIndex = 32,
513 DecorationBinding = 33,
514 DecorationDescriptorSet = 34,
515 DecorationOffset = 35,
516 DecorationXfbBuffer = 36,
517 DecorationXfbStride = 37,
518 DecorationFuncParamAttr = 38,
519 DecorationFPRoundingMode = 39,
520 DecorationFPFastMathMode = 40,
521 DecorationLinkageAttributes = 41,
522 DecorationNoContraction = 42,
523 DecorationInputAttachmentIndex = 43,
524 DecorationAlignment = 44,
525 DecorationMaxByteOffset = 45,
526 DecorationAlignmentId = 46,
527 DecorationMaxByteOffsetId = 47,
528 DecorationNoSignedWrap = 4469,
529 DecorationNoUnsignedWrap = 4470,
530 DecorationWeightTextureQCOM = 4487,
531 DecorationBlockMatchTextureQCOM = 4488,
532 DecorationExplicitInterpAMD = 4999,
533 DecorationNodeSharesPayloadLimitsWithAMDX = 5019,
534 DecorationNodeMaxPayloadsAMDX = 5020,
535 DecorationTrackFinishWritingAMDX = 5078,
536 DecorationPayloadNodeNameAMDX = 5091,
537 DecorationOverrideCoverageNV = 5248,
538 DecorationPassthroughNV = 5250,
539 DecorationViewportRelativeNV = 5252,
540 DecorationSecondaryViewportRelativeNV = 5256,
541 DecorationPerPrimitiveEXT = 5271,
542 DecorationPerPrimitiveNV = 5271,
543 DecorationPerViewNV = 5272,
544 DecorationPerTaskNV = 5273,
545 DecorationPerVertexKHR = 5285,
546 DecorationPerVertexNV = 5285,
547 DecorationNonUniform = 5300,
548 DecorationNonUniformEXT = 5300,
549 DecorationRestrictPointer = 5355,
550 DecorationRestrictPointerEXT = 5355,
551 DecorationAliasedPointer = 5356,
552 DecorationAliasedPointerEXT = 5356,
553 DecorationHitObjectShaderRecordBufferNV = 5386,
554 DecorationBindlessSamplerNV = 5398,
555 DecorationBindlessImageNV = 5399,
556 DecorationBoundSamplerNV = 5400,
557 DecorationBoundImageNV = 5401,
558 DecorationSIMTCallINTEL = 5599,
559 DecorationReferencedIndirectlyINTEL = 5602,
560 DecorationClobberINTEL = 5607,
561 DecorationSideEffectsINTEL = 5608,
562 DecorationVectorComputeVariableINTEL = 5624,
563 DecorationFuncParamIOKindINTEL = 5625,
564 DecorationVectorComputeFunctionINTEL = 5626,
565 DecorationStackCallINTEL = 5627,
566 DecorationGlobalVariableOffsetINTEL = 5628,
567 DecorationCounterBuffer = 5634,
568 DecorationHlslCounterBufferGOOGLE = 5634,
569 DecorationHlslSemanticGOOGLE = 5635,
570 DecorationUserSemantic = 5635,
571 DecorationUserTypeGOOGLE = 5636,
572 DecorationFunctionRoundingModeINTEL = 5822,
573 DecorationFunctionDenormModeINTEL = 5823,
574 DecorationRegisterINTEL = 5825,
575 DecorationMemoryINTEL = 5826,
576 DecorationNumbanksINTEL = 5827,
577 DecorationBankwidthINTEL = 5828,
578 DecorationMaxPrivateCopiesINTEL = 5829,
579 DecorationSinglepumpINTEL = 5830,
580 DecorationDoublepumpINTEL = 5831,
581 DecorationMaxReplicatesINTEL = 5832,
582 DecorationSimpleDualPortINTEL = 5833,
583 DecorationMergeINTEL = 5834,
584 DecorationBankBitsINTEL = 5835,
585 DecorationForcePow2DepthINTEL = 5836,
586 DecorationStridesizeINTEL = 5883,
587 DecorationWordsizeINTEL = 5884,
588 DecorationTrueDualPortINTEL = 5885,
589 DecorationBurstCoalesceINTEL = 5899,
590 DecorationCacheSizeINTEL = 5900,
591 DecorationDontStaticallyCoalesceINTEL = 5901,
592 DecorationPrefetchINTEL = 5902,
593 DecorationStallEnableINTEL = 5905,
594 DecorationFuseLoopsInFunctionINTEL = 5907,
595 DecorationMathOpDSPModeINTEL = 5909,
596 DecorationAliasScopeINTEL = 5914,
597 DecorationNoAliasINTEL = 5915,
598 DecorationInitiationIntervalINTEL = 5917,
599 DecorationMaxConcurrencyINTEL = 5918,
600 DecorationPipelineEnableINTEL = 5919,
601 DecorationBufferLocationINTEL = 5921,
602 DecorationIOPipeStorageINTEL = 5944,
603 DecorationFunctionFloatingPointModeINTEL = 6080,
604 DecorationSingleElementVectorINTEL = 6085,
605 DecorationVectorComputeCallableFunctionINTEL = 6087,
606 DecorationMediaBlockIOINTEL = 6140,
607 DecorationStallFreeINTEL = 6151,
608 DecorationFPMaxErrorDecorationINTEL = 6170,
609 DecorationLatencyControlLabelINTEL = 6172,
610 DecorationLatencyControlConstraintINTEL = 6173,
611 DecorationConduitKernelArgumentINTEL = 6175,
612 DecorationRegisterMapKernelArgumentINTEL = 6176,
613 DecorationMMHostInterfaceAddressWidthINTEL = 6177,
614 DecorationMMHostInterfaceDataWidthINTEL = 6178,
615 DecorationMMHostInterfaceLatencyINTEL = 6179,
616 DecorationMMHostInterfaceReadWriteModeINTEL = 6180,
617 DecorationMMHostInterfaceMaxBurstINTEL = 6181,
618 DecorationMMHostInterfaceWaitRequestINTEL = 6182,
619 DecorationStableKernelArgumentINTEL = 6183,
620 DecorationHostAccessINTEL = 6188,
621 DecorationInitModeINTEL = 6190,
622 DecorationImplementInRegisterMapINTEL = 6191,
623 DecorationCacheControlLoadINTEL = 6442,
624 DecorationCacheControlStoreINTEL = 6443,
625 DecorationMax = 0x7fffffff,
626 };
627
628 enum BuiltIn {
629 BuiltInPosition = 0,
630 BuiltInPointSize = 1,
631 BuiltInClipDistance = 3,
632 BuiltInCullDistance = 4,
633 BuiltInVertexId = 5,
634 BuiltInInstanceId = 6,
635 BuiltInPrimitiveId = 7,
636 BuiltInInvocationId = 8,
637 BuiltInLayer = 9,
638 BuiltInViewportIndex = 10,
639 BuiltInTessLevelOuter = 11,
640 BuiltInTessLevelInner = 12,
641 BuiltInTessCoord = 13,
642 BuiltInPatchVertices = 14,
643 BuiltInFragCoord = 15,
644 BuiltInPointCoord = 16,
645 BuiltInFrontFacing = 17,
646 BuiltInSampleId = 18,
647 BuiltInSamplePosition = 19,
648 BuiltInSampleMask = 20,
649 BuiltInFragDepth = 22,
650 BuiltInHelperInvocation = 23,
651 BuiltInNumWorkgroups = 24,
652 BuiltInWorkgroupSize = 25,
653 BuiltInWorkgroupId = 26,
654 BuiltInLocalInvocationId = 27,
655 BuiltInGlobalInvocationId = 28,
656 BuiltInLocalInvocationIndex = 29,
657 BuiltInWorkDim = 30,
658 BuiltInGlobalSize = 31,
659 BuiltInEnqueuedWorkgroupSize = 32,
660 BuiltInGlobalOffset = 33,
661 BuiltInGlobalLinearId = 34,
662 BuiltInSubgroupSize = 36,
663 BuiltInSubgroupMaxSize = 37,
664 BuiltInNumSubgroups = 38,
665 BuiltInNumEnqueuedSubgroups = 39,
666 BuiltInSubgroupId = 40,
667 BuiltInSubgroupLocalInvocationId = 41,
668 BuiltInVertexIndex = 42,
669 BuiltInInstanceIndex = 43,
670 BuiltInCoreIDARM = 4160,
671 BuiltInCoreCountARM = 4161,
672 BuiltInCoreMaxIDARM = 4162,
673 BuiltInWarpIDARM = 4163,
674 BuiltInWarpMaxIDARM = 4164,
675 BuiltInSubgroupEqMask = 4416,
676 BuiltInSubgroupEqMaskKHR = 4416,
677 BuiltInSubgroupGeMask = 4417,
678 BuiltInSubgroupGeMaskKHR = 4417,
679 BuiltInSubgroupGtMask = 4418,
680 BuiltInSubgroupGtMaskKHR = 4418,
681 BuiltInSubgroupLeMask = 4419,
682 BuiltInSubgroupLeMaskKHR = 4419,
683 BuiltInSubgroupLtMask = 4420,
684 BuiltInSubgroupLtMaskKHR = 4420,
685 BuiltInBaseVertex = 4424,
686 BuiltInBaseInstance = 4425,
687 BuiltInDrawIndex = 4426,
688 BuiltInPrimitiveShadingRateKHR = 4432,
689 BuiltInDeviceIndex = 4438,
690 BuiltInViewIndex = 4440,
691 BuiltInShadingRateKHR = 4444,
692 BuiltInBaryCoordNoPerspAMD = 4992,
693 BuiltInBaryCoordNoPerspCentroidAMD = 4993,
694 BuiltInBaryCoordNoPerspSampleAMD = 4994,
695 BuiltInBaryCoordSmoothAMD = 4995,
696 BuiltInBaryCoordSmoothCentroidAMD = 4996,
697 BuiltInBaryCoordSmoothSampleAMD = 4997,
698 BuiltInBaryCoordPullModelAMD = 4998,
699 BuiltInFragStencilRefEXT = 5014,
700 BuiltInCoalescedInputCountAMDX = 5021,
701 BuiltInShaderIndexAMDX = 5073,
702 BuiltInViewportMaskNV = 5253,
703 BuiltInSecondaryPositionNV = 5257,
704 BuiltInSecondaryViewportMaskNV = 5258,
705 BuiltInPositionPerViewNV = 5261,
706 BuiltInViewportMaskPerViewNV = 5262,
707 BuiltInFullyCoveredEXT = 5264,
708 BuiltInTaskCountNV = 5274,
709 BuiltInPrimitiveCountNV = 5275,
710 BuiltInPrimitiveIndicesNV = 5276,
711 BuiltInClipDistancePerViewNV = 5277,
712 BuiltInCullDistancePerViewNV = 5278,
713 BuiltInLayerPerViewNV = 5279,
714 BuiltInMeshViewCountNV = 5280,
715 BuiltInMeshViewIndicesNV = 5281,
716 BuiltInBaryCoordKHR = 5286,
717 BuiltInBaryCoordNV = 5286,
718 BuiltInBaryCoordNoPerspKHR = 5287,
719 BuiltInBaryCoordNoPerspNV = 5287,
720 BuiltInFragSizeEXT = 5292,
721 BuiltInFragmentSizeNV = 5292,
722 BuiltInFragInvocationCountEXT = 5293,
723 BuiltInInvocationsPerPixelNV = 5293,
724 BuiltInPrimitivePointIndicesEXT = 5294,
725 BuiltInPrimitiveLineIndicesEXT = 5295,
726 BuiltInPrimitiveTriangleIndicesEXT = 5296,
727 BuiltInCullPrimitiveEXT = 5299,
728 BuiltInLaunchIdKHR = 5319,
729 BuiltInLaunchIdNV = 5319,
730 BuiltInLaunchSizeKHR = 5320,
731 BuiltInLaunchSizeNV = 5320,
732 BuiltInWorldRayOriginKHR = 5321,
733 BuiltInWorldRayOriginNV = 5321,
734 BuiltInWorldRayDirectionKHR = 5322,
735 BuiltInWorldRayDirectionNV = 5322,
736 BuiltInObjectRayOriginKHR = 5323,
737 BuiltInObjectRayOriginNV = 5323,
738 BuiltInObjectRayDirectionKHR = 5324,
739 BuiltInObjectRayDirectionNV = 5324,
740 BuiltInRayTminKHR = 5325,
741 BuiltInRayTminNV = 5325,
742 BuiltInRayTmaxKHR = 5326,
743 BuiltInRayTmaxNV = 5326,
744 BuiltInInstanceCustomIndexKHR = 5327,
745 BuiltInInstanceCustomIndexNV = 5327,
746 BuiltInObjectToWorldKHR = 5330,
747 BuiltInObjectToWorldNV = 5330,
748 BuiltInWorldToObjectKHR = 5331,
749 BuiltInWorldToObjectNV = 5331,
750 BuiltInHitTNV = 5332,
751 BuiltInHitKindKHR = 5333,
752 BuiltInHitKindNV = 5333,
753 BuiltInCurrentRayTimeNV = 5334,
754 BuiltInHitTriangleVertexPositionsKHR = 5335,
755 BuiltInHitMicroTriangleVertexPositionsNV = 5337,
756 BuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
757 BuiltInIncomingRayFlagsKHR = 5351,
758 BuiltInIncomingRayFlagsNV = 5351,
759 BuiltInRayGeometryIndexKHR = 5352,
760 BuiltInWarpsPerSMNV = 5374,
761 BuiltInSMCountNV = 5375,
762 BuiltInWarpIDNV = 5376,
763 BuiltInSMIDNV = 5377,
764 BuiltInHitKindFrontFacingMicroTriangleNV = 5405,
765 BuiltInHitKindBackFacingMicroTriangleNV = 5406,
766 BuiltInCullMaskKHR = 6021,
767 BuiltInMax = 0x7fffffff,
768 };
769
770 enum SelectionControlShift {
771 SelectionControlFlattenShift = 0,
772 SelectionControlDontFlattenShift = 1,
773 SelectionControlMax = 0x7fffffff,
774 };
775
776 enum SelectionControlMask {
777 SelectionControlMaskNone = 0,
778 SelectionControlFlattenMask = 0x00000001,
779 SelectionControlDontFlattenMask = 0x00000002,
780 };
781
782 enum LoopControlShift {
783 LoopControlUnrollShift = 0,
784 LoopControlDontUnrollShift = 1,
785 LoopControlDependencyInfiniteShift = 2,
786 LoopControlDependencyLengthShift = 3,
787 LoopControlMinIterationsShift = 4,
788 LoopControlMaxIterationsShift = 5,
789 LoopControlIterationMultipleShift = 6,
790 LoopControlPeelCountShift = 7,
791 LoopControlPartialCountShift = 8,
792 LoopControlInitiationIntervalINTELShift = 16,
793 LoopControlMaxConcurrencyINTELShift = 17,
794 LoopControlDependencyArrayINTELShift = 18,
795 LoopControlPipelineEnableINTELShift = 19,
796 LoopControlLoopCoalesceINTELShift = 20,
797 LoopControlMaxInterleavingINTELShift = 21,
798 LoopControlSpeculatedIterationsINTELShift = 22,
799 LoopControlNoFusionINTELShift = 23,
800 LoopControlLoopCountINTELShift = 24,
801 LoopControlMaxReinvocationDelayINTELShift = 25,
802 LoopControlMax = 0x7fffffff,
803 };
804
805 enum LoopControlMask {
806 LoopControlMaskNone = 0,
807 LoopControlUnrollMask = 0x00000001,
808 LoopControlDontUnrollMask = 0x00000002,
809 LoopControlDependencyInfiniteMask = 0x00000004,
810 LoopControlDependencyLengthMask = 0x00000008,
811 LoopControlMinIterationsMask = 0x00000010,
812 LoopControlMaxIterationsMask = 0x00000020,
813 LoopControlIterationMultipleMask = 0x00000040,
814 LoopControlPeelCountMask = 0x00000080,
815 LoopControlPartialCountMask = 0x00000100,
816 LoopControlInitiationIntervalINTELMask = 0x00010000,
817 LoopControlMaxConcurrencyINTELMask = 0x00020000,
818 LoopControlDependencyArrayINTELMask = 0x00040000,
819 LoopControlPipelineEnableINTELMask = 0x00080000,
820 LoopControlLoopCoalesceINTELMask = 0x00100000,
821 LoopControlMaxInterleavingINTELMask = 0x00200000,
822 LoopControlSpeculatedIterationsINTELMask = 0x00400000,
823 LoopControlNoFusionINTELMask = 0x00800000,
824 LoopControlLoopCountINTELMask = 0x01000000,
825 LoopControlMaxReinvocationDelayINTELMask = 0x02000000,
826 };
827
828 enum FunctionControlShift {
829 FunctionControlInlineShift = 0,
830 FunctionControlDontInlineShift = 1,
831 FunctionControlPureShift = 2,
832 FunctionControlConstShift = 3,
833 FunctionControlOptNoneINTELShift = 16,
834 FunctionControlMax = 0x7fffffff,
835 };
836
837 enum FunctionControlMask {
838 FunctionControlMaskNone = 0,
839 FunctionControlInlineMask = 0x00000001,
840 FunctionControlDontInlineMask = 0x00000002,
841 FunctionControlPureMask = 0x00000004,
842 FunctionControlConstMask = 0x00000008,
843 FunctionControlOptNoneINTELMask = 0x00010000,
844 };
845
846 enum MemorySemanticsShift {
847 MemorySemanticsAcquireShift = 1,
848 MemorySemanticsReleaseShift = 2,
849 MemorySemanticsAcquireReleaseShift = 3,
850 MemorySemanticsSequentiallyConsistentShift = 4,
851 MemorySemanticsUniformMemoryShift = 6,
852 MemorySemanticsSubgroupMemoryShift = 7,
853 MemorySemanticsWorkgroupMemoryShift = 8,
854 MemorySemanticsCrossWorkgroupMemoryShift = 9,
855 MemorySemanticsAtomicCounterMemoryShift = 10,
856 MemorySemanticsImageMemoryShift = 11,
857 MemorySemanticsOutputMemoryShift = 12,
858 MemorySemanticsOutputMemoryKHRShift = 12,
859 MemorySemanticsMakeAvailableShift = 13,
860 MemorySemanticsMakeAvailableKHRShift = 13,
861 MemorySemanticsMakeVisibleShift = 14,
862 MemorySemanticsMakeVisibleKHRShift = 14,
863 MemorySemanticsVolatileShift = 15,
864 MemorySemanticsMax = 0x7fffffff,
865 };
866
867 enum MemorySemanticsMask {
868 MemorySemanticsMaskNone = 0,
869 MemorySemanticsAcquireMask = 0x00000002,
870 MemorySemanticsReleaseMask = 0x00000004,
871 MemorySemanticsAcquireReleaseMask = 0x00000008,
872 MemorySemanticsSequentiallyConsistentMask = 0x00000010,
873 MemorySemanticsUniformMemoryMask = 0x00000040,
874 MemorySemanticsSubgroupMemoryMask = 0x00000080,
875 MemorySemanticsWorkgroupMemoryMask = 0x00000100,
876 MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
877 MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
878 MemorySemanticsImageMemoryMask = 0x00000800,
879 MemorySemanticsOutputMemoryMask = 0x00001000,
880 MemorySemanticsOutputMemoryKHRMask = 0x00001000,
881 MemorySemanticsMakeAvailableMask = 0x00002000,
882 MemorySemanticsMakeAvailableKHRMask = 0x00002000,
883 MemorySemanticsMakeVisibleMask = 0x00004000,
884 MemorySemanticsMakeVisibleKHRMask = 0x00004000,
885 MemorySemanticsVolatileMask = 0x00008000,
886 };
887
888 enum MemoryAccessShift {
889 MemoryAccessVolatileShift = 0,
890 MemoryAccessAlignedShift = 1,
891 MemoryAccessNontemporalShift = 2,
892 MemoryAccessMakePointerAvailableShift = 3,
893 MemoryAccessMakePointerAvailableKHRShift = 3,
894 MemoryAccessMakePointerVisibleShift = 4,
895 MemoryAccessMakePointerVisibleKHRShift = 4,
896 MemoryAccessNonPrivatePointerShift = 5,
897 MemoryAccessNonPrivatePointerKHRShift = 5,
898 MemoryAccessAliasScopeINTELMaskShift = 16,
899 MemoryAccessNoAliasINTELMaskShift = 17,
900 MemoryAccessMax = 0x7fffffff,
901 };
902
903 enum MemoryAccessMask {
904 MemoryAccessMaskNone = 0,
905 MemoryAccessVolatileMask = 0x00000001,
906 MemoryAccessAlignedMask = 0x00000002,
907 MemoryAccessNontemporalMask = 0x00000004,
908 MemoryAccessMakePointerAvailableMask = 0x00000008,
909 MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
910 MemoryAccessMakePointerVisibleMask = 0x00000010,
911 MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
912 MemoryAccessNonPrivatePointerMask = 0x00000020,
913 MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
914 MemoryAccessAliasScopeINTELMaskMask = 0x00010000,
915 MemoryAccessNoAliasINTELMaskMask = 0x00020000,
916 };
917
918 enum Scope {
919 ScopeCrossDevice = 0,
920 ScopeDevice = 1,
921 ScopeWorkgroup = 2,
922 ScopeSubgroup = 3,
923 ScopeInvocation = 4,
924 ScopeQueueFamily = 5,
925 ScopeQueueFamilyKHR = 5,
926 ScopeShaderCallKHR = 6,
927 ScopeMax = 0x7fffffff,
928 };
929
930 enum GroupOperation {
931 GroupOperationReduce = 0,
932 GroupOperationInclusiveScan = 1,
933 GroupOperationExclusiveScan = 2,
934 GroupOperationClusteredReduce = 3,
935 GroupOperationPartitionedReduceNV = 6,
936 GroupOperationPartitionedInclusiveScanNV = 7,
937 GroupOperationPartitionedExclusiveScanNV = 8,
938 GroupOperationMax = 0x7fffffff,
939 };
940
941 enum KernelEnqueueFlags {
942 KernelEnqueueFlagsNoWait = 0,
943 KernelEnqueueFlagsWaitKernel = 1,
944 KernelEnqueueFlagsWaitWorkGroup = 2,
945 KernelEnqueueFlagsMax = 0x7fffffff,
946 };
947
948 enum KernelProfilingInfoShift {
949 KernelProfilingInfoCmdExecTimeShift = 0,
950 KernelProfilingInfoMax = 0x7fffffff,
951 };
952
953 enum KernelProfilingInfoMask {
954 KernelProfilingInfoMaskNone = 0,
955 KernelProfilingInfoCmdExecTimeMask = 0x00000001,
956 };
957
958 enum Capability {
959 CapabilityMatrix = 0,
960 CapabilityShader = 1,
961 CapabilityGeometry = 2,
962 CapabilityTessellation = 3,
963 CapabilityAddresses = 4,
964 CapabilityLinkage = 5,
965 CapabilityKernel = 6,
966 CapabilityVector16 = 7,
967 CapabilityFloat16Buffer = 8,
968 CapabilityFloat16 = 9,
969 CapabilityFloat64 = 10,
970 CapabilityInt64 = 11,
971 CapabilityInt64Atomics = 12,
972 CapabilityImageBasic = 13,
973 CapabilityImageReadWrite = 14,
974 CapabilityImageMipmap = 15,
975 CapabilityPipes = 17,
976 CapabilityGroups = 18,
977 CapabilityDeviceEnqueue = 19,
978 CapabilityLiteralSampler = 20,
979 CapabilityAtomicStorage = 21,
980 CapabilityInt16 = 22,
981 CapabilityTessellationPointSize = 23,
982 CapabilityGeometryPointSize = 24,
983 CapabilityImageGatherExtended = 25,
984 CapabilityStorageImageMultisample = 27,
985 CapabilityUniformBufferArrayDynamicIndexing = 28,
986 CapabilitySampledImageArrayDynamicIndexing = 29,
987 CapabilityStorageBufferArrayDynamicIndexing = 30,
988 CapabilityStorageImageArrayDynamicIndexing = 31,
989 CapabilityClipDistance = 32,
990 CapabilityCullDistance = 33,
991 CapabilityImageCubeArray = 34,
992 CapabilitySampleRateShading = 35,
993 CapabilityImageRect = 36,
994 CapabilitySampledRect = 37,
995 CapabilityGenericPointer = 38,
996 CapabilityInt8 = 39,
997 CapabilityInputAttachment = 40,
998 CapabilitySparseResidency = 41,
999 CapabilityMinLod = 42,
1000 CapabilitySampled1D = 43,
1001 CapabilityImage1D = 44,
1002 CapabilitySampledCubeArray = 45,
1003 CapabilitySampledBuffer = 46,
1004 CapabilityImageBuffer = 47,
1005 CapabilityImageMSArray = 48,
1006 CapabilityStorageImageExtendedFormats = 49,
1007 CapabilityImageQuery = 50,
1008 CapabilityDerivativeControl = 51,
1009 CapabilityInterpolationFunction = 52,
1010 CapabilityTransformFeedback = 53,
1011 CapabilityGeometryStreams = 54,
1012 CapabilityStorageImageReadWithoutFormat = 55,
1013 CapabilityStorageImageWriteWithoutFormat = 56,
1014 CapabilityMultiViewport = 57,
1015 CapabilitySubgroupDispatch = 58,
1016 CapabilityNamedBarrier = 59,
1017 CapabilityPipeStorage = 60,
1018 CapabilityGroupNonUniform = 61,
1019 CapabilityGroupNonUniformVote = 62,
1020 CapabilityGroupNonUniformArithmetic = 63,
1021 CapabilityGroupNonUniformBallot = 64,
1022 CapabilityGroupNonUniformShuffle = 65,
1023 CapabilityGroupNonUniformShuffleRelative = 66,
1024 CapabilityGroupNonUniformClustered = 67,
1025 CapabilityGroupNonUniformQuad = 68,
1026 CapabilityShaderLayer = 69,
1027 CapabilityShaderViewportIndex = 70,
1028 CapabilityUniformDecoration = 71,
1029 CapabilityCoreBuiltinsARM = 4165,
1030 CapabilityTileImageColorReadAccessEXT = 4166,
1031 CapabilityTileImageDepthReadAccessEXT = 4167,
1032 CapabilityTileImageStencilReadAccessEXT = 4168,
1033 CapabilityFragmentShadingRateKHR = 4422,
1034 CapabilitySubgroupBallotKHR = 4423,
1035 CapabilityDrawParameters = 4427,
1036 CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
1037 CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
1038 CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
1039 CapabilitySubgroupVoteKHR = 4431,
1040 CapabilityStorageBuffer16BitAccess = 4433,
1041 CapabilityStorageUniformBufferBlock16 = 4433,
1042 CapabilityStorageUniform16 = 4434,
1043 CapabilityUniformAndStorageBuffer16BitAccess = 4434,
1044 CapabilityStoragePushConstant16 = 4435,
1045 CapabilityStorageInputOutput16 = 4436,
1046 CapabilityDeviceGroup = 4437,
1047 CapabilityMultiView = 4439,
1048 CapabilityVariablePointersStorageBuffer = 4441,
1049 CapabilityVariablePointers = 4442,
1050 CapabilityAtomicStorageOps = 4445,
1051 CapabilitySampleMaskPostDepthCoverage = 4447,
1052 CapabilityStorageBuffer8BitAccess = 4448,
1053 CapabilityUniformAndStorageBuffer8BitAccess = 4449,
1054 CapabilityStoragePushConstant8 = 4450,
1055 CapabilityDenormPreserve = 4464,
1056 CapabilityDenormFlushToZero = 4465,
1057 CapabilitySignedZeroInfNanPreserve = 4466,
1058 CapabilityRoundingModeRTE = 4467,
1059 CapabilityRoundingModeRTZ = 4468,
1060 CapabilityRayQueryProvisionalKHR = 4471,
1061 CapabilityRayQueryKHR = 4472,
1062 CapabilityRayTraversalPrimitiveCullingKHR = 4478,
1063 CapabilityRayTracingKHR = 4479,
1064 CapabilityTextureSampleWeightedQCOM = 4484,
1065 CapabilityTextureBoxFilterQCOM = 4485,
1066 CapabilityTextureBlockMatchQCOM = 4486,
1067 CapabilityFloat16ImageAMD = 5008,
1068 CapabilityImageGatherBiasLodAMD = 5009,
1069 CapabilityFragmentMaskAMD = 5010,
1070 CapabilityStencilExportEXT = 5013,
1071 CapabilityImageReadWriteLodAMD = 5015,
1072 CapabilityInt64ImageEXT = 5016,
1073 CapabilityShaderClockKHR = 5055,
1074 CapabilityShaderEnqueueAMDX = 5067,
1075 CapabilitySampleMaskOverrideCoverageNV = 5249,
1076 CapabilityGeometryShaderPassthroughNV = 5251,
1077 CapabilityShaderViewportIndexLayerEXT = 5254,
1078 CapabilityShaderViewportIndexLayerNV = 5254,
1079 CapabilityShaderViewportMaskNV = 5255,
1080 CapabilityShaderStereoViewNV = 5259,
1081 CapabilityPerViewAttributesNV = 5260,
1082 CapabilityFragmentFullyCoveredEXT = 5265,
1083 CapabilityMeshShadingNV = 5266,
1084 CapabilityImageFootprintNV = 5282,
1085 CapabilityMeshShadingEXT = 5283,
1086 CapabilityFragmentBarycentricKHR = 5284,
1087 CapabilityFragmentBarycentricNV = 5284,
1088 CapabilityComputeDerivativeGroupQuadsNV = 5288,
1089 CapabilityFragmentDensityEXT = 5291,
1090 CapabilityShadingRateNV = 5291,
1091 CapabilityGroupNonUniformPartitionedNV = 5297,
1092 CapabilityShaderNonUniform = 5301,
1093 CapabilityShaderNonUniformEXT = 5301,
1094 CapabilityRuntimeDescriptorArray = 5302,
1095 CapabilityRuntimeDescriptorArrayEXT = 5302,
1096 CapabilityInputAttachmentArrayDynamicIndexing = 5303,
1097 CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
1098 CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
1099 CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
1100 CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
1101 CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
1102 CapabilityUniformBufferArrayNonUniformIndexing = 5306,
1103 CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
1104 CapabilitySampledImageArrayNonUniformIndexing = 5307,
1105 CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
1106 CapabilityStorageBufferArrayNonUniformIndexing = 5308,
1107 CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
1108 CapabilityStorageImageArrayNonUniformIndexing = 5309,
1109 CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
1110 CapabilityInputAttachmentArrayNonUniformIndexing = 5310,
1111 CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
1112 CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
1113 CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
1114 CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
1115 CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1116 CapabilityRayTracingPositionFetchKHR = 5336,
1117 CapabilityRayTracingNV = 5340,
1118 CapabilityRayTracingMotionBlurNV = 5341,
1119 CapabilityVulkanMemoryModel = 5345,
1120 CapabilityVulkanMemoryModelKHR = 5345,
1121 CapabilityVulkanMemoryModelDeviceScope = 5346,
1122 CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
1123 CapabilityPhysicalStorageBufferAddresses = 5347,
1124 CapabilityPhysicalStorageBufferAddressesEXT = 5347,
1125 CapabilityComputeDerivativeGroupLinearNV = 5350,
1126 CapabilityRayTracingProvisionalKHR = 5353,
1127 CapabilityCooperativeMatrixNV = 5357,
1128 CapabilityFragmentShaderSampleInterlockEXT = 5363,
1129 CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
1130 CapabilityShaderSMBuiltinsNV = 5373,
1131 CapabilityFragmentShaderPixelInterlockEXT = 5378,
1132 CapabilityDemoteToHelperInvocation = 5379,
1133 CapabilityDemoteToHelperInvocationEXT = 5379,
1134 CapabilityDisplacementMicromapNV = 5380,
1135 CapabilityRayTracingOpacityMicromapEXT = 5381,
1136 CapabilityShaderInvocationReorderNV = 5383,
1137 CapabilityBindlessTextureNV = 5390,
1138 CapabilityRayQueryPositionFetchKHR = 5391,
1139 CapabilityRayTracingDisplacementMicromapNV = 5409,
1140 CapabilitySubgroupShuffleINTEL = 5568,
1141 CapabilitySubgroupBufferBlockIOINTEL = 5569,
1142 CapabilitySubgroupImageBlockIOINTEL = 5570,
1143 CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
1144 CapabilityRoundToInfinityINTEL = 5582,
1145 CapabilityFloatingPointModeINTEL = 5583,
1146 CapabilityIntegerFunctions2INTEL = 5584,
1147 CapabilityFunctionPointersINTEL = 5603,
1148 CapabilityIndirectReferencesINTEL = 5604,
1149 CapabilityAsmINTEL = 5606,
1150 CapabilityAtomicFloat32MinMaxEXT = 5612,
1151 CapabilityAtomicFloat64MinMaxEXT = 5613,
1152 CapabilityAtomicFloat16MinMaxEXT = 5616,
1153 CapabilityVectorComputeINTEL = 5617,
1154 CapabilityVectorAnyINTEL = 5619,
1155 CapabilityExpectAssumeKHR = 5629,
1156 CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
1157 CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
1158 CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
1159 CapabilityVariableLengthArrayINTEL = 5817,
1160 CapabilityFunctionFloatControlINTEL = 5821,
1161 CapabilityFPGAMemoryAttributesINTEL = 5824,
1162 CapabilityFPFastMathModeINTEL = 5837,
1163 CapabilityArbitraryPrecisionIntegersINTEL = 5844,
1164 CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
1165 CapabilityUnstructuredLoopControlsINTEL = 5886,
1166 CapabilityFPGALoopControlsINTEL = 5888,
1167 CapabilityKernelAttributesINTEL = 5892,
1168 CapabilityFPGAKernelAttributesINTEL = 5897,
1169 CapabilityFPGAMemoryAccessesINTEL = 5898,
1170 CapabilityFPGAClusterAttributesINTEL = 5904,
1171 CapabilityLoopFuseINTEL = 5906,
1172 CapabilityFPGADSPControlINTEL = 5908,
1173 CapabilityMemoryAccessAliasingINTEL = 5910,
1174 CapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
1175 CapabilityFPGABufferLocationINTEL = 5920,
1176 CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
1177 CapabilityUSMStorageClassesINTEL = 5935,
1178 CapabilityRuntimeAlignedAttributeINTEL = 5939,
1179 CapabilityIOPipesINTEL = 5943,
1180 CapabilityBlockingPipesINTEL = 5945,
1181 CapabilityFPGARegINTEL = 5948,
1182 CapabilityDotProductInputAll = 6016,
1183 CapabilityDotProductInputAllKHR = 6016,
1184 CapabilityDotProductInput4x8Bit = 6017,
1185 CapabilityDotProductInput4x8BitKHR = 6017,
1186 CapabilityDotProductInput4x8BitPacked = 6018,
1187 CapabilityDotProductInput4x8BitPackedKHR = 6018,
1188 CapabilityDotProduct = 6019,
1189 CapabilityDotProductKHR = 6019,
1190 CapabilityRayCullMaskKHR = 6020,
1191 CapabilityCooperativeMatrixKHR = 6022,
1192 CapabilityBitInstructions = 6025,
1193 CapabilityGroupNonUniformRotateKHR = 6026,
1194 CapabilityAtomicFloat32AddEXT = 6033,
1195 CapabilityAtomicFloat64AddEXT = 6034,
1196 CapabilityLongCompositesINTEL = 6089,
1197 CapabilityOptNoneINTEL = 6094,
1198 CapabilityAtomicFloat16AddEXT = 6095,
1199 CapabilityDebugInfoModuleINTEL = 6114,
1200 CapabilityBFloat16ConversionINTEL = 6115,
1201 CapabilitySplitBarrierINTEL = 6141,
1202 CapabilityFPGAClusterAttributesV2INTEL = 6150,
1203 CapabilityFPGAKernelAttributesv2INTEL = 6161,
1204 CapabilityFPMaxErrorINTEL = 6169,
1205 CapabilityFPGALatencyControlINTEL = 6171,
1206 CapabilityFPGAArgumentInterfacesINTEL = 6174,
1207 CapabilityGlobalVariableHostAccessINTEL = 6187,
1208 CapabilityGlobalVariableFPGADecorationsINTEL = 6189,
1209 CapabilityGroupUniformArithmeticKHR = 6400,
1210 CapabilityCacheControlsINTEL = 6441,
1211 CapabilityMax = 0x7fffffff,
1212 };
1213
1214 enum RayFlagsShift {
1215 RayFlagsOpaqueKHRShift = 0,
1216 RayFlagsNoOpaqueKHRShift = 1,
1217 RayFlagsTerminateOnFirstHitKHRShift = 2,
1218 RayFlagsSkipClosestHitShaderKHRShift = 3,
1219 RayFlagsCullBackFacingTrianglesKHRShift = 4,
1220 RayFlagsCullFrontFacingTrianglesKHRShift = 5,
1221 RayFlagsCullOpaqueKHRShift = 6,
1222 RayFlagsCullNoOpaqueKHRShift = 7,
1223 RayFlagsSkipTrianglesKHRShift = 8,
1224 RayFlagsSkipAABBsKHRShift = 9,
1225 RayFlagsForceOpacityMicromap2StateEXTShift = 10,
1226 RayFlagsMax = 0x7fffffff,
1227 };
1228
1229 enum RayFlagsMask {
1230 RayFlagsMaskNone = 0,
1231 RayFlagsOpaqueKHRMask = 0x00000001,
1232 RayFlagsNoOpaqueKHRMask = 0x00000002,
1233 RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
1234 RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
1235 RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
1236 RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
1237 RayFlagsCullOpaqueKHRMask = 0x00000040,
1238 RayFlagsCullNoOpaqueKHRMask = 0x00000080,
1239 RayFlagsSkipTrianglesKHRMask = 0x00000100,
1240 RayFlagsSkipAABBsKHRMask = 0x00000200,
1241 RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
1242 };
1243
1244 enum RayQueryIntersection {
1245 RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
1246 RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
1247 RayQueryIntersectionMax = 0x7fffffff,
1248 };
1249
1250 enum RayQueryCommittedIntersectionType {
1251 RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
1252 RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
1253 RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
1254 RayQueryCommittedIntersectionTypeMax = 0x7fffffff,
1255 };
1256
1257 enum RayQueryCandidateIntersectionType {
1258 RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
1259 RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
1260 RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
1261 };
1262
1263 enum FragmentShadingRateShift {
1264 FragmentShadingRateVertical2PixelsShift = 0,
1265 FragmentShadingRateVertical4PixelsShift = 1,
1266 FragmentShadingRateHorizontal2PixelsShift = 2,
1267 FragmentShadingRateHorizontal4PixelsShift = 3,
1268 FragmentShadingRateMax = 0x7fffffff,
1269 };
1270
1271 enum FragmentShadingRateMask {
1272 FragmentShadingRateMaskNone = 0,
1273 FragmentShadingRateVertical2PixelsMask = 0x00000001,
1274 FragmentShadingRateVertical4PixelsMask = 0x00000002,
1275 FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
1276 FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
1277 };
1278
1279 enum FPDenormMode {
1280 FPDenormModePreserve = 0,
1281 FPDenormModeFlushToZero = 1,
1282 FPDenormModeMax = 0x7fffffff,
1283 };
1284
1285 enum FPOperationMode {
1286 FPOperationModeIEEE = 0,
1287 FPOperationModeALT = 1,
1288 FPOperationModeMax = 0x7fffffff,
1289 };
1290
1291 enum QuantizationModes {
1292 QuantizationModesTRN = 0,
1293 QuantizationModesTRN_ZERO = 1,
1294 QuantizationModesRND = 2,
1295 QuantizationModesRND_ZERO = 3,
1296 QuantizationModesRND_INF = 4,
1297 QuantizationModesRND_MIN_INF = 5,
1298 QuantizationModesRND_CONV = 6,
1299 QuantizationModesRND_CONV_ODD = 7,
1300 QuantizationModesMax = 0x7fffffff,
1301 };
1302
1303 enum OverflowModes {
1304 OverflowModesWRAP = 0,
1305 OverflowModesSAT = 1,
1306 OverflowModesSAT_ZERO = 2,
1307 OverflowModesSAT_SYM = 3,
1308 OverflowModesMax = 0x7fffffff,
1309 };
1310
1311 enum PackedVectorFormat {
1312 PackedVectorFormatPackedVectorFormat4x8Bit = 0,
1313 PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
1314 PackedVectorFormatMax = 0x7fffffff,
1315 };
1316
1317 enum CooperativeMatrixOperandsShift {
1318 CooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
1319 CooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
1320 CooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
1321 CooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
1322 CooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
1323 CooperativeMatrixOperandsMax = 0x7fffffff,
1324 };
1325
1326 enum CooperativeMatrixOperandsMask {
1327 CooperativeMatrixOperandsMaskNone = 0,
1328 CooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
1329 CooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
1330 CooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
1331 CooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
1332 CooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
1333 };
1334
1335 enum CooperativeMatrixLayout {
1336 CooperativeMatrixLayoutRowMajorKHR = 0,
1337 CooperativeMatrixLayoutColumnMajorKHR = 1,
1338 CooperativeMatrixLayoutMax = 0x7fffffff,
1339 };
1340
1341 enum CooperativeMatrixUse {
1342 CooperativeMatrixUseMatrixAKHR = 0,
1343 CooperativeMatrixUseMatrixBKHR = 1,
1344 CooperativeMatrixUseMatrixAccumulatorKHR = 2,
1345 CooperativeMatrixUseMax = 0x7fffffff,
1346 };
1347
1348 enum InitializationModeQualifier {
1349 InitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
1350 InitializationModeQualifierInitOnDeviceResetINTEL = 1,
1351 InitializationModeQualifierMax = 0x7fffffff,
1352 };
1353
1354 enum HostAccessQualifier {
1355 HostAccessQualifierNoneINTEL = 0,
1356 HostAccessQualifierReadINTEL = 1,
1357 HostAccessQualifierWriteINTEL = 2,
1358 HostAccessQualifierReadWriteINTEL = 3,
1359 HostAccessQualifierMax = 0x7fffffff,
1360 };
1361
1362 enum LoadCacheControl {
1363 LoadCacheControlUncachedINTEL = 0,
1364 LoadCacheControlCachedINTEL = 1,
1365 LoadCacheControlStreamingINTEL = 2,
1366 LoadCacheControlInvalidateAfterReadINTEL = 3,
1367 LoadCacheControlConstCachedINTEL = 4,
1368 LoadCacheControlMax = 0x7fffffff,
1369 };
1370
1371 enum StoreCacheControl {
1372 StoreCacheControlUncachedINTEL = 0,
1373 StoreCacheControlWriteThroughINTEL = 1,
1374 StoreCacheControlWriteBackINTEL = 2,
1375 StoreCacheControlStreamingINTEL = 3,
1376 StoreCacheControlMax = 0x7fffffff,
1377 };
1378
1379 enum Op {
1380 OpNop = 0,
1381 OpUndef = 1,
1382 OpSourceContinued = 2,
1383 OpSource = 3,
1384 OpSourceExtension = 4,
1385 OpName = 5,
1386 OpMemberName = 6,
1387 OpString = 7,
1388 OpLine = 8,
1389 OpExtension = 10,
1390 OpExtInstImport = 11,
1391 OpExtInst = 12,
1392 OpMemoryModel = 14,
1393 OpEntryPoint = 15,
1394 OpExecutionMode = 16,
1395 OpCapability = 17,
1396 OpTypeVoid = 19,
1397 OpTypeBool = 20,
1398 OpTypeInt = 21,
1399 OpTypeFloat = 22,
1400 OpTypeVector = 23,
1401 OpTypeMatrix = 24,
1402 OpTypeImage = 25,
1403 OpTypeSampler = 26,
1404 OpTypeSampledImage = 27,
1405 OpTypeArray = 28,
1406 OpTypeRuntimeArray = 29,
1407 OpTypeStruct = 30,
1408 OpTypeOpaque = 31,
1409 OpTypePointer = 32,
1410 OpTypeFunction = 33,
1411 OpTypeEvent = 34,
1412 OpTypeDeviceEvent = 35,
1413 OpTypeReserveId = 36,
1414 OpTypeQueue = 37,
1415 OpTypePipe = 38,
1416 OpTypeForwardPointer = 39,
1417 OpConstantTrue = 41,
1418 OpConstantFalse = 42,
1419 OpConstant = 43,
1420 OpConstantComposite = 44,
1421 OpConstantSampler = 45,
1422 OpConstantNull = 46,
1423 OpSpecConstantTrue = 48,
1424 OpSpecConstantFalse = 49,
1425 OpSpecConstant = 50,
1426 OpSpecConstantComposite = 51,
1427 OpSpecConstantOp = 52,
1428 OpFunction = 54,
1429 OpFunctionParameter = 55,
1430 OpFunctionEnd = 56,
1431 OpFunctionCall = 57,
1432 OpVariable = 59,
1433 OpImageTexelPointer = 60,
1434 OpLoad = 61,
1435 OpStore = 62,
1436 OpCopyMemory = 63,
1437 OpCopyMemorySized = 64,
1438 OpAccessChain = 65,
1439 OpInBoundsAccessChain = 66,
1440 OpPtrAccessChain = 67,
1441 OpArrayLength = 68,
1442 OpGenericPtrMemSemantics = 69,
1443 OpInBoundsPtrAccessChain = 70,
1444 OpDecorate = 71,
1445 OpMemberDecorate = 72,
1446 OpDecorationGroup = 73,
1447 OpGroupDecorate = 74,
1448 OpGroupMemberDecorate = 75,
1449 OpVectorExtractDynamic = 77,
1450 OpVectorInsertDynamic = 78,
1451 OpVectorShuffle = 79,
1452 OpCompositeConstruct = 80,
1453 OpCompositeExtract = 81,
1454 OpCompositeInsert = 82,
1455 OpCopyObject = 83,
1456 OpTranspose = 84,
1457 OpSampledImage = 86,
1458 OpImageSampleImplicitLod = 87,
1459 OpImageSampleExplicitLod = 88,
1460 OpImageSampleDrefImplicitLod = 89,
1461 OpImageSampleDrefExplicitLod = 90,
1462 OpImageSampleProjImplicitLod = 91,
1463 OpImageSampleProjExplicitLod = 92,
1464 OpImageSampleProjDrefImplicitLod = 93,
1465 OpImageSampleProjDrefExplicitLod = 94,
1466 OpImageFetch = 95,
1467 OpImageGather = 96,
1468 OpImageDrefGather = 97,
1469 OpImageRead = 98,
1470 OpImageWrite = 99,
1471 OpImage = 100,
1472 OpImageQueryFormat = 101,
1473 OpImageQueryOrder = 102,
1474 OpImageQuerySizeLod = 103,
1475 OpImageQuerySize = 104,
1476 OpImageQueryLod = 105,
1477 OpImageQueryLevels = 106,
1478 OpImageQuerySamples = 107,
1479 OpConvertFToU = 109,
1480 OpConvertFToS = 110,
1481 OpConvertSToF = 111,
1482 OpConvertUToF = 112,
1483 OpUConvert = 113,
1484 OpSConvert = 114,
1485 OpFConvert = 115,
1486 OpQuantizeToF16 = 116,
1487 OpConvertPtrToU = 117,
1488 OpSatConvertSToU = 118,
1489 OpSatConvertUToS = 119,
1490 OpConvertUToPtr = 120,
1491 OpPtrCastToGeneric = 121,
1492 OpGenericCastToPtr = 122,
1493 OpGenericCastToPtrExplicit = 123,
1494 OpBitcast = 124,
1495 OpSNegate = 126,
1496 OpFNegate = 127,
1497 OpIAdd = 128,
1498 OpFAdd = 129,
1499 OpISub = 130,
1500 OpFSub = 131,
1501 OpIMul = 132,
1502 OpFMul = 133,
1503 OpUDiv = 134,
1504 OpSDiv = 135,
1505 OpFDiv = 136,
1506 OpUMod = 137,
1507 OpSRem = 138,
1508 OpSMod = 139,
1509 OpFRem = 140,
1510 OpFMod = 141,
1511 OpVectorTimesScalar = 142,
1512 OpMatrixTimesScalar = 143,
1513 OpVectorTimesMatrix = 144,
1514 OpMatrixTimesVector = 145,
1515 OpMatrixTimesMatrix = 146,
1516 OpOuterProduct = 147,
1517 OpDot = 148,
1518 OpIAddCarry = 149,
1519 OpISubBorrow = 150,
1520 OpUMulExtended = 151,
1521 OpSMulExtended = 152,
1522 OpAny = 154,
1523 OpAll = 155,
1524 OpIsNan = 156,
1525 OpIsInf = 157,
1526 OpIsFinite = 158,
1527 OpIsNormal = 159,
1528 OpSignBitSet = 160,
1529 OpLessOrGreater = 161,
1530 OpOrdered = 162,
1531 OpUnordered = 163,
1532 OpLogicalEqual = 164,
1533 OpLogicalNotEqual = 165,
1534 OpLogicalOr = 166,
1535 OpLogicalAnd = 167,
1536 OpLogicalNot = 168,
1537 OpSelect = 169,
1538 OpIEqual = 170,
1539 OpINotEqual = 171,
1540 OpUGreaterThan = 172,
1541 OpSGreaterThan = 173,
1542 OpUGreaterThanEqual = 174,
1543 OpSGreaterThanEqual = 175,
1544 OpULessThan = 176,
1545 OpSLessThan = 177,
1546 OpULessThanEqual = 178,
1547 OpSLessThanEqual = 179,
1548 OpFOrdEqual = 180,
1549 OpFUnordEqual = 181,
1550 OpFOrdNotEqual = 182,
1551 OpFUnordNotEqual = 183,
1552 OpFOrdLessThan = 184,
1553 OpFUnordLessThan = 185,
1554 OpFOrdGreaterThan = 186,
1555 OpFUnordGreaterThan = 187,
1556 OpFOrdLessThanEqual = 188,
1557 OpFUnordLessThanEqual = 189,
1558 OpFOrdGreaterThanEqual = 190,
1559 OpFUnordGreaterThanEqual = 191,
1560 OpShiftRightLogical = 194,
1561 OpShiftRightArithmetic = 195,
1562 OpShiftLeftLogical = 196,
1563 OpBitwiseOr = 197,
1564 OpBitwiseXor = 198,
1565 OpBitwiseAnd = 199,
1566 OpNot = 200,
1567 OpBitFieldInsert = 201,
1568 OpBitFieldSExtract = 202,
1569 OpBitFieldUExtract = 203,
1570 OpBitReverse = 204,
1571 OpBitCount = 205,
1572 OpDPdx = 207,
1573 OpDPdy = 208,
1574 OpFwidth = 209,
1575 OpDPdxFine = 210,
1576 OpDPdyFine = 211,
1577 OpFwidthFine = 212,
1578 OpDPdxCoarse = 213,
1579 OpDPdyCoarse = 214,
1580 OpFwidthCoarse = 215,
1581 OpEmitVertex = 218,
1582 OpEndPrimitive = 219,
1583 OpEmitStreamVertex = 220,
1584 OpEndStreamPrimitive = 221,
1585 OpControlBarrier = 224,
1586 OpMemoryBarrier = 225,
1587 OpAtomicLoad = 227,
1588 OpAtomicStore = 228,
1589 OpAtomicExchange = 229,
1590 OpAtomicCompareExchange = 230,
1591 OpAtomicCompareExchangeWeak = 231,
1592 OpAtomicIIncrement = 232,
1593 OpAtomicIDecrement = 233,
1594 OpAtomicIAdd = 234,
1595 OpAtomicISub = 235,
1596 OpAtomicSMin = 236,
1597 OpAtomicUMin = 237,
1598 OpAtomicSMax = 238,
1599 OpAtomicUMax = 239,
1600 OpAtomicAnd = 240,
1601 OpAtomicOr = 241,
1602 OpAtomicXor = 242,
1603 OpPhi = 245,
1604 OpLoopMerge = 246,
1605 OpSelectionMerge = 247,
1606 OpLabel = 248,
1607 OpBranch = 249,
1608 OpBranchConditional = 250,
1609 OpSwitch = 251,
1610 OpKill = 252,
1611 OpReturn = 253,
1612 OpReturnValue = 254,
1613 OpUnreachable = 255,
1614 OpLifetimeStart = 256,
1615 OpLifetimeStop = 257,
1616 OpGroupAsyncCopy = 259,
1617 OpGroupWaitEvents = 260,
1618 OpGroupAll = 261,
1619 OpGroupAny = 262,
1620 OpGroupBroadcast = 263,
1621 OpGroupIAdd = 264,
1622 OpGroupFAdd = 265,
1623 OpGroupFMin = 266,
1624 OpGroupUMin = 267,
1625 OpGroupSMin = 268,
1626 OpGroupFMax = 269,
1627 OpGroupUMax = 270,
1628 OpGroupSMax = 271,
1629 OpReadPipe = 274,
1630 OpWritePipe = 275,
1631 OpReservedReadPipe = 276,
1632 OpReservedWritePipe = 277,
1633 OpReserveReadPipePackets = 278,
1634 OpReserveWritePipePackets = 279,
1635 OpCommitReadPipe = 280,
1636 OpCommitWritePipe = 281,
1637 OpIsValidReserveId = 282,
1638 OpGetNumPipePackets = 283,
1639 OpGetMaxPipePackets = 284,
1640 OpGroupReserveReadPipePackets = 285,
1641 OpGroupReserveWritePipePackets = 286,
1642 OpGroupCommitReadPipe = 287,
1643 OpGroupCommitWritePipe = 288,
1644 OpEnqueueMarker = 291,
1645 OpEnqueueKernel = 292,
1646 OpGetKernelNDrangeSubGroupCount = 293,
1647 OpGetKernelNDrangeMaxSubGroupSize = 294,
1648 OpGetKernelWorkGroupSize = 295,
1649 OpGetKernelPreferredWorkGroupSizeMultiple = 296,
1650 OpRetainEvent = 297,
1651 OpReleaseEvent = 298,
1652 OpCreateUserEvent = 299,
1653 OpIsValidEvent = 300,
1654 OpSetUserEventStatus = 301,
1655 OpCaptureEventProfilingInfo = 302,
1656 OpGetDefaultQueue = 303,
1657 OpBuildNDRange = 304,
1658 OpImageSparseSampleImplicitLod = 305,
1659 OpImageSparseSampleExplicitLod = 306,
1660 OpImageSparseSampleDrefImplicitLod = 307,
1661 OpImageSparseSampleDrefExplicitLod = 308,
1662 OpImageSparseSampleProjImplicitLod = 309,
1663 OpImageSparseSampleProjExplicitLod = 310,
1664 OpImageSparseSampleProjDrefImplicitLod = 311,
1665 OpImageSparseSampleProjDrefExplicitLod = 312,
1666 OpImageSparseFetch = 313,
1667 OpImageSparseGather = 314,
1668 OpImageSparseDrefGather = 315,
1669 OpImageSparseTexelsResident = 316,
1670 OpNoLine = 317,
1671 OpAtomicFlagTestAndSet = 318,
1672 OpAtomicFlagClear = 319,
1673 OpImageSparseRead = 320,
1674 OpSizeOf = 321,
1675 OpTypePipeStorage = 322,
1676 OpConstantPipeStorage = 323,
1677 OpCreatePipeFromPipeStorage = 324,
1678 OpGetKernelLocalSizeForSubgroupCount = 325,
1679 OpGetKernelMaxNumSubgroups = 326,
1680 OpTypeNamedBarrier = 327,
1681 OpNamedBarrierInitialize = 328,
1682 OpMemoryNamedBarrier = 329,
1683 OpModuleProcessed = 330,
1684 OpExecutionModeId = 331,
1685 OpDecorateId = 332,
1686 OpGroupNonUniformElect = 333,
1687 OpGroupNonUniformAll = 334,
1688 OpGroupNonUniformAny = 335,
1689 OpGroupNonUniformAllEqual = 336,
1690 OpGroupNonUniformBroadcast = 337,
1691 OpGroupNonUniformBroadcastFirst = 338,
1692 OpGroupNonUniformBallot = 339,
1693 OpGroupNonUniformInverseBallot = 340,
1694 OpGroupNonUniformBallotBitExtract = 341,
1695 OpGroupNonUniformBallotBitCount = 342,
1696 OpGroupNonUniformBallotFindLSB = 343,
1697 OpGroupNonUniformBallotFindMSB = 344,
1698 OpGroupNonUniformShuffle = 345,
1699 OpGroupNonUniformShuffleXor = 346,
1700 OpGroupNonUniformShuffleUp = 347,
1701 OpGroupNonUniformShuffleDown = 348,
1702 OpGroupNonUniformIAdd = 349,
1703 OpGroupNonUniformFAdd = 350,
1704 OpGroupNonUniformIMul = 351,
1705 OpGroupNonUniformFMul = 352,
1706 OpGroupNonUniformSMin = 353,
1707 OpGroupNonUniformUMin = 354,
1708 OpGroupNonUniformFMin = 355,
1709 OpGroupNonUniformSMax = 356,
1710 OpGroupNonUniformUMax = 357,
1711 OpGroupNonUniformFMax = 358,
1712 OpGroupNonUniformBitwiseAnd = 359,
1713 OpGroupNonUniformBitwiseOr = 360,
1714 OpGroupNonUniformBitwiseXor = 361,
1715 OpGroupNonUniformLogicalAnd = 362,
1716 OpGroupNonUniformLogicalOr = 363,
1717 OpGroupNonUniformLogicalXor = 364,
1718 OpGroupNonUniformQuadBroadcast = 365,
1719 OpGroupNonUniformQuadSwap = 366,
1720 OpCopyLogical = 400,
1721 OpPtrEqual = 401,
1722 OpPtrNotEqual = 402,
1723 OpPtrDiff = 403,
1724 OpColorAttachmentReadEXT = 4160,
1725 OpDepthAttachmentReadEXT = 4161,
1726 OpStencilAttachmentReadEXT = 4162,
1727 OpTerminateInvocation = 4416,
1728 OpSubgroupBallotKHR = 4421,
1729 OpSubgroupFirstInvocationKHR = 4422,
1730 OpSubgroupAllKHR = 4428,
1731 OpSubgroupAnyKHR = 4429,
1732 OpSubgroupAllEqualKHR = 4430,
1733 OpGroupNonUniformRotateKHR = 4431,
1734 OpSubgroupReadInvocationKHR = 4432,
1735 OpTraceRayKHR = 4445,
1736 OpExecuteCallableKHR = 4446,
1737 OpConvertUToAccelerationStructureKHR = 4447,
1738 OpIgnoreIntersectionKHR = 4448,
1739 OpTerminateRayKHR = 4449,
1740 OpSDot = 4450,
1741 OpSDotKHR = 4450,
1742 OpUDot = 4451,
1743 OpUDotKHR = 4451,
1744 OpSUDot = 4452,
1745 OpSUDotKHR = 4452,
1746 OpSDotAccSat = 4453,
1747 OpSDotAccSatKHR = 4453,
1748 OpUDotAccSat = 4454,
1749 OpUDotAccSatKHR = 4454,
1750 OpSUDotAccSat = 4455,
1751 OpSUDotAccSatKHR = 4455,
1752 OpTypeCooperativeMatrixKHR = 4456,
1753 OpCooperativeMatrixLoadKHR = 4457,
1754 OpCooperativeMatrixStoreKHR = 4458,
1755 OpCooperativeMatrixMulAddKHR = 4459,
1756 OpCooperativeMatrixLengthKHR = 4460,
1757 OpTypeRayQueryKHR = 4472,
1758 OpRayQueryInitializeKHR = 4473,
1759 OpRayQueryTerminateKHR = 4474,
1760 OpRayQueryGenerateIntersectionKHR = 4475,
1761 OpRayQueryConfirmIntersectionKHR = 4476,
1762 OpRayQueryProceedKHR = 4477,
1763 OpRayQueryGetIntersectionTypeKHR = 4479,
1764 OpImageSampleWeightedQCOM = 4480,
1765 OpImageBoxFilterQCOM = 4481,
1766 OpImageBlockMatchSSDQCOM = 4482,
1767 OpImageBlockMatchSADQCOM = 4483,
1768 OpGroupIAddNonUniformAMD = 5000,
1769 OpGroupFAddNonUniformAMD = 5001,
1770 OpGroupFMinNonUniformAMD = 5002,
1771 OpGroupUMinNonUniformAMD = 5003,
1772 OpGroupSMinNonUniformAMD = 5004,
1773 OpGroupFMaxNonUniformAMD = 5005,
1774 OpGroupUMaxNonUniformAMD = 5006,
1775 OpGroupSMaxNonUniformAMD = 5007,
1776 OpFragmentMaskFetchAMD = 5011,
1777 OpFragmentFetchAMD = 5012,
1778 OpReadClockKHR = 5056,
1779 OpFinalizeNodePayloadsAMDX = 5075,
1780 OpFinishWritingNodePayloadAMDX = 5078,
1781 OpInitializeNodePayloadsAMDX = 5090,
1782 OpHitObjectRecordHitMotionNV = 5249,
1783 OpHitObjectRecordHitWithIndexMotionNV = 5250,
1784 OpHitObjectRecordMissMotionNV = 5251,
1785 OpHitObjectGetWorldToObjectNV = 5252,
1786 OpHitObjectGetObjectToWorldNV = 5253,
1787 OpHitObjectGetObjectRayDirectionNV = 5254,
1788 OpHitObjectGetObjectRayOriginNV = 5255,
1789 OpHitObjectTraceRayMotionNV = 5256,
1790 OpHitObjectGetShaderRecordBufferHandleNV = 5257,
1791 OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
1792 OpHitObjectRecordEmptyNV = 5259,
1793 OpHitObjectTraceRayNV = 5260,
1794 OpHitObjectRecordHitNV = 5261,
1795 OpHitObjectRecordHitWithIndexNV = 5262,
1796 OpHitObjectRecordMissNV = 5263,
1797 OpHitObjectExecuteShaderNV = 5264,
1798 OpHitObjectGetCurrentTimeNV = 5265,
1799 OpHitObjectGetAttributesNV = 5266,
1800 OpHitObjectGetHitKindNV = 5267,
1801 OpHitObjectGetPrimitiveIndexNV = 5268,
1802 OpHitObjectGetGeometryIndexNV = 5269,
1803 OpHitObjectGetInstanceIdNV = 5270,
1804 OpHitObjectGetInstanceCustomIndexNV = 5271,
1805 OpHitObjectGetWorldRayDirectionNV = 5272,
1806 OpHitObjectGetWorldRayOriginNV = 5273,
1807 OpHitObjectGetRayTMaxNV = 5274,
1808 OpHitObjectGetRayTMinNV = 5275,
1809 OpHitObjectIsEmptyNV = 5276,
1810 OpHitObjectIsHitNV = 5277,
1811 OpHitObjectIsMissNV = 5278,
1812 OpReorderThreadWithHitObjectNV = 5279,
1813 OpReorderThreadWithHintNV = 5280,
1814 OpTypeHitObjectNV = 5281,
1815 OpImageSampleFootprintNV = 5283,
1816 OpEmitMeshTasksEXT = 5294,
1817 OpSetMeshOutputsEXT = 5295,
1818 OpGroupNonUniformPartitionNV = 5296,
1819 OpWritePackedPrimitiveIndices4x8NV = 5299,
1820 OpFetchMicroTriangleVertexPositionNV = 5300,
1821 OpFetchMicroTriangleVertexBarycentricNV = 5301,
1822 OpReportIntersectionKHR = 5334,
1823 OpReportIntersectionNV = 5334,
1824 OpIgnoreIntersectionNV = 5335,
1825 OpTerminateRayNV = 5336,
1826 OpTraceNV = 5337,
1827 OpTraceMotionNV = 5338,
1828 OpTraceRayMotionNV = 5339,
1829 OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
1830 OpTypeAccelerationStructureKHR = 5341,
1831 OpTypeAccelerationStructureNV = 5341,
1832 OpExecuteCallableNV = 5344,
1833 OpTypeCooperativeMatrixNV = 5358,
1834 OpCooperativeMatrixLoadNV = 5359,
1835 OpCooperativeMatrixStoreNV = 5360,
1836 OpCooperativeMatrixMulAddNV = 5361,
1837 OpCooperativeMatrixLengthNV = 5362,
1838 OpBeginInvocationInterlockEXT = 5364,
1839 OpEndInvocationInterlockEXT = 5365,
1840 OpDemoteToHelperInvocation = 5380,
1841 OpDemoteToHelperInvocationEXT = 5380,
1842 OpIsHelperInvocationEXT = 5381,
1843 OpConvertUToImageNV = 5391,
1844 OpConvertUToSamplerNV = 5392,
1845 OpConvertImageToUNV = 5393,
1846 OpConvertSamplerToUNV = 5394,
1847 OpConvertUToSampledImageNV = 5395,
1848 OpConvertSampledImageToUNV = 5396,
1849 OpSamplerImageAddressingModeNV = 5397,
1850 OpSubgroupShuffleINTEL = 5571,
1851 OpSubgroupShuffleDownINTEL = 5572,
1852 OpSubgroupShuffleUpINTEL = 5573,
1853 OpSubgroupShuffleXorINTEL = 5574,
1854 OpSubgroupBlockReadINTEL = 5575,
1855 OpSubgroupBlockWriteINTEL = 5576,
1856 OpSubgroupImageBlockReadINTEL = 5577,
1857 OpSubgroupImageBlockWriteINTEL = 5578,
1858 OpSubgroupImageMediaBlockReadINTEL = 5580,
1859 OpSubgroupImageMediaBlockWriteINTEL = 5581,
1860 OpUCountLeadingZerosINTEL = 5585,
1861 OpUCountTrailingZerosINTEL = 5586,
1862 OpAbsISubINTEL = 5587,
1863 OpAbsUSubINTEL = 5588,
1864 OpIAddSatINTEL = 5589,
1865 OpUAddSatINTEL = 5590,
1866 OpIAverageINTEL = 5591,
1867 OpUAverageINTEL = 5592,
1868 OpIAverageRoundedINTEL = 5593,
1869 OpUAverageRoundedINTEL = 5594,
1870 OpISubSatINTEL = 5595,
1871 OpUSubSatINTEL = 5596,
1872 OpIMul32x16INTEL = 5597,
1873 OpUMul32x16INTEL = 5598,
1874 OpConstantFunctionPointerINTEL = 5600,
1875 OpFunctionPointerCallINTEL = 5601,
1876 OpAsmTargetINTEL = 5609,
1877 OpAsmINTEL = 5610,
1878 OpAsmCallINTEL = 5611,
1879 OpAtomicFMinEXT = 5614,
1880 OpAtomicFMaxEXT = 5615,
1881 OpAssumeTrueKHR = 5630,
1882 OpExpectKHR = 5631,
1883 OpDecorateString = 5632,
1884 OpDecorateStringGOOGLE = 5632,
1885 OpMemberDecorateString = 5633,
1886 OpMemberDecorateStringGOOGLE = 5633,
1887 OpVmeImageINTEL = 5699,
1888 OpTypeVmeImageINTEL = 5700,
1889 OpTypeAvcImePayloadINTEL = 5701,
1890 OpTypeAvcRefPayloadINTEL = 5702,
1891 OpTypeAvcSicPayloadINTEL = 5703,
1892 OpTypeAvcMcePayloadINTEL = 5704,
1893 OpTypeAvcMceResultINTEL = 5705,
1894 OpTypeAvcImeResultINTEL = 5706,
1895 OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1896 OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1897 OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1898 OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1899 OpTypeAvcRefResultINTEL = 5711,
1900 OpTypeAvcSicResultINTEL = 5712,
1901 OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1902 OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1903 OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1904 OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1905 OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1906 OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1907 OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1908 OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1909 OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1910 OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1911 OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1912 OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1913 OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1914 OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1915 OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1916 OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1917 OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1918 OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1919 OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1920 OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1921 OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1922 OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1923 OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1924 OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1925 OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1926 OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1927 OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1928 OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1929 OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1930 OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1931 OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1932 OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1933 OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1934 OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1935 OpSubgroupAvcImeInitializeINTEL = 5747,
1936 OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1937 OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1938 OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1939 OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1940 OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1941 OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1942 OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1943 OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1944 OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1945 OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1946 OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1947 OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1948 OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1949 OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1950 OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1951 OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1952 OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1953 OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1954 OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1955 OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1956 OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1957 OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1958 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
1959 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
1960 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
1961 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
1962 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1963 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
1964 OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1965 OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1966 OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1967 OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1968 OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1969 OpSubgroupAvcFmeInitializeINTEL = 5781,
1970 OpSubgroupAvcBmeInitializeINTEL = 5782,
1971 OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1972 OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1973 OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1974 OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1975 OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1976 OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1977 OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1978 OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1979 OpSubgroupAvcSicInitializeINTEL = 5791,
1980 OpSubgroupAvcSicConfigureSkcINTEL = 5792,
1981 OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1982 OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1983 OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1984 OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1985 OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1986 OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1987 OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1988 OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1989 OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1990 OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1991 OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1992 OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1993 OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1994 OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1995 OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1996 OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1997 OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1998 OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1999 OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
2000 OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
2001 OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
2002 OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
2003 OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
2004 OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
2005 OpVariableLengthArrayINTEL = 5818,
2006 OpSaveMemoryINTEL = 5819,
2007 OpRestoreMemoryINTEL = 5820,
2008 OpArbitraryFloatSinCosPiINTEL = 5840,
2009 OpArbitraryFloatCastINTEL = 5841,
2010 OpArbitraryFloatCastFromIntINTEL = 5842,
2011 OpArbitraryFloatCastToIntINTEL = 5843,
2012 OpArbitraryFloatAddINTEL = 5846,
2013 OpArbitraryFloatSubINTEL = 5847,
2014 OpArbitraryFloatMulINTEL = 5848,
2015 OpArbitraryFloatDivINTEL = 5849,
2016 OpArbitraryFloatGTINTEL = 5850,
2017 OpArbitraryFloatGEINTEL = 5851,
2018 OpArbitraryFloatLTINTEL = 5852,
2019 OpArbitraryFloatLEINTEL = 5853,
2020 OpArbitraryFloatEQINTEL = 5854,
2021 OpArbitraryFloatRecipINTEL = 5855,
2022 OpArbitraryFloatRSqrtINTEL = 5856,
2023 OpArbitraryFloatCbrtINTEL = 5857,
2024 OpArbitraryFloatHypotINTEL = 5858,
2025 OpArbitraryFloatSqrtINTEL = 5859,
2026 OpArbitraryFloatLogINTEL = 5860,
2027 OpArbitraryFloatLog2INTEL = 5861,
2028 OpArbitraryFloatLog10INTEL = 5862,
2029 OpArbitraryFloatLog1pINTEL = 5863,
2030 OpArbitraryFloatExpINTEL = 5864,
2031 OpArbitraryFloatExp2INTEL = 5865,
2032 OpArbitraryFloatExp10INTEL = 5866,
2033 OpArbitraryFloatExpm1INTEL = 5867,
2034 OpArbitraryFloatSinINTEL = 5868,
2035 OpArbitraryFloatCosINTEL = 5869,
2036 OpArbitraryFloatSinCosINTEL = 5870,
2037 OpArbitraryFloatSinPiINTEL = 5871,
2038 OpArbitraryFloatCosPiINTEL = 5872,
2039 OpArbitraryFloatASinINTEL = 5873,
2040 OpArbitraryFloatASinPiINTEL = 5874,
2041 OpArbitraryFloatACosINTEL = 5875,
2042 OpArbitraryFloatACosPiINTEL = 5876,
2043 OpArbitraryFloatATanINTEL = 5877,
2044 OpArbitraryFloatATanPiINTEL = 5878,
2045 OpArbitraryFloatATan2INTEL = 5879,
2046 OpArbitraryFloatPowINTEL = 5880,
2047 OpArbitraryFloatPowRINTEL = 5881,
2048 OpArbitraryFloatPowNINTEL = 5882,
2049 OpLoopControlINTEL = 5887,
2050 OpAliasDomainDeclINTEL = 5911,
2051 OpAliasScopeDeclINTEL = 5912,
2052 OpAliasScopeListDeclINTEL = 5913,
2053 OpFixedSqrtINTEL = 5923,
2054 OpFixedRecipINTEL = 5924,
2055 OpFixedRsqrtINTEL = 5925,
2056 OpFixedSinINTEL = 5926,
2057 OpFixedCosINTEL = 5927,
2058 OpFixedSinCosINTEL = 5928,
2059 OpFixedSinPiINTEL = 5929,
2060 OpFixedCosPiINTEL = 5930,
2061 OpFixedSinCosPiINTEL = 5931,
2062 OpFixedLogINTEL = 5932,
2063 OpFixedExpINTEL = 5933,
2064 OpPtrCastToCrossWorkgroupINTEL = 5934,
2065 OpCrossWorkgroupCastToPtrINTEL = 5938,
2066 OpReadPipeBlockingINTEL = 5946,
2067 OpWritePipeBlockingINTEL = 5947,
2068 OpFPGARegINTEL = 5949,
2069 OpRayQueryGetRayTMinKHR = 6016,
2070 OpRayQueryGetRayFlagsKHR = 6017,
2071 OpRayQueryGetIntersectionTKHR = 6018,
2072 OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
2073 OpRayQueryGetIntersectionInstanceIdKHR = 6020,
2074 OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
2075 OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
2076 OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
2077 OpRayQueryGetIntersectionBarycentricsKHR = 6024,
2078 OpRayQueryGetIntersectionFrontFaceKHR = 6025,
2079 OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
2080 OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
2081 OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
2082 OpRayQueryGetWorldRayDirectionKHR = 6029,
2083 OpRayQueryGetWorldRayOriginKHR = 6030,
2084 OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
2085 OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
2086 OpAtomicFAddEXT = 6035,
2087 OpTypeBufferSurfaceINTEL = 6086,
2088 OpTypeStructContinuedINTEL = 6090,
2089 OpConstantCompositeContinuedINTEL = 6091,
2090 OpSpecConstantCompositeContinuedINTEL = 6092,
2091 OpCompositeConstructContinuedINTEL = 6096,
2092 OpConvertFToBF16INTEL = 6116,
2093 OpConvertBF16ToFINTEL = 6117,
2094 OpControlBarrierArriveINTEL = 6142,
2095 OpControlBarrierWaitINTEL = 6143,
2096 OpGroupIMulKHR = 6401,
2097 OpGroupFMulKHR = 6402,
2098 OpGroupBitwiseAndKHR = 6403,
2099 OpGroupBitwiseOrKHR = 6404,
2100 OpGroupBitwiseXorKHR = 6405,
2101 OpGroupLogicalAndKHR = 6406,
2102 OpGroupLogicalOrKHR = 6407,
2103 OpGroupLogicalXorKHR = 6408,
2104 OpMax = 0x7fffffff,
2105 };
2106
2107 #ifdef SPV_ENABLE_UTILITY_CODE
2108 #ifndef __cplusplus
2109 #include <stdbool.h>
2110 #endif
HasResultAndType(Op opcode,bool * hasResult,bool * hasResultType)2111 inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
2112 *hasResult = *hasResultType = false;
2113 switch (opcode) {
2114 default: /* unknown opcode */ break;
2115 case OpNop: *hasResult = false; *hasResultType = false; break;
2116 case OpUndef: *hasResult = true; *hasResultType = true; break;
2117 case OpSourceContinued: *hasResult = false; *hasResultType = false; break;
2118 case OpSource: *hasResult = false; *hasResultType = false; break;
2119 case OpSourceExtension: *hasResult = false; *hasResultType = false; break;
2120 case OpName: *hasResult = false; *hasResultType = false; break;
2121 case OpMemberName: *hasResult = false; *hasResultType = false; break;
2122 case OpString: *hasResult = true; *hasResultType = false; break;
2123 case OpLine: *hasResult = false; *hasResultType = false; break;
2124 case OpExtension: *hasResult = false; *hasResultType = false; break;
2125 case OpExtInstImport: *hasResult = true; *hasResultType = false; break;
2126 case OpExtInst: *hasResult = true; *hasResultType = true; break;
2127 case OpMemoryModel: *hasResult = false; *hasResultType = false; break;
2128 case OpEntryPoint: *hasResult = false; *hasResultType = false; break;
2129 case OpExecutionMode: *hasResult = false; *hasResultType = false; break;
2130 case OpCapability: *hasResult = false; *hasResultType = false; break;
2131 case OpTypeVoid: *hasResult = true; *hasResultType = false; break;
2132 case OpTypeBool: *hasResult = true; *hasResultType = false; break;
2133 case OpTypeInt: *hasResult = true; *hasResultType = false; break;
2134 case OpTypeFloat: *hasResult = true; *hasResultType = false; break;
2135 case OpTypeVector: *hasResult = true; *hasResultType = false; break;
2136 case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
2137 case OpTypeImage: *hasResult = true; *hasResultType = false; break;
2138 case OpTypeSampler: *hasResult = true; *hasResultType = false; break;
2139 case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
2140 case OpTypeArray: *hasResult = true; *hasResultType = false; break;
2141 case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
2142 case OpTypeStruct: *hasResult = true; *hasResultType = false; break;
2143 case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
2144 case OpTypePointer: *hasResult = true; *hasResultType = false; break;
2145 case OpTypeFunction: *hasResult = true; *hasResultType = false; break;
2146 case OpTypeEvent: *hasResult = true; *hasResultType = false; break;
2147 case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
2148 case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
2149 case OpTypeQueue: *hasResult = true; *hasResultType = false; break;
2150 case OpTypePipe: *hasResult = true; *hasResultType = false; break;
2151 case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
2152 case OpConstantTrue: *hasResult = true; *hasResultType = true; break;
2153 case OpConstantFalse: *hasResult = true; *hasResultType = true; break;
2154 case OpConstant: *hasResult = true; *hasResultType = true; break;
2155 case OpConstantComposite: *hasResult = true; *hasResultType = true; break;
2156 case OpConstantSampler: *hasResult = true; *hasResultType = true; break;
2157 case OpConstantNull: *hasResult = true; *hasResultType = true; break;
2158 case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
2159 case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
2160 case OpSpecConstant: *hasResult = true; *hasResultType = true; break;
2161 case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
2162 case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
2163 case OpFunction: *hasResult = true; *hasResultType = true; break;
2164 case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
2165 case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
2166 case OpFunctionCall: *hasResult = true; *hasResultType = true; break;
2167 case OpVariable: *hasResult = true; *hasResultType = true; break;
2168 case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
2169 case OpLoad: *hasResult = true; *hasResultType = true; break;
2170 case OpStore: *hasResult = false; *hasResultType = false; break;
2171 case OpCopyMemory: *hasResult = false; *hasResultType = false; break;
2172 case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
2173 case OpAccessChain: *hasResult = true; *hasResultType = true; break;
2174 case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
2175 case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
2176 case OpArrayLength: *hasResult = true; *hasResultType = true; break;
2177 case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
2178 case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
2179 case OpDecorate: *hasResult = false; *hasResultType = false; break;
2180 case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
2181 case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
2182 case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
2183 case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
2184 case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
2185 case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
2186 case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
2187 case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
2188 case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
2189 case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
2190 case OpCopyObject: *hasResult = true; *hasResultType = true; break;
2191 case OpTranspose: *hasResult = true; *hasResultType = true; break;
2192 case OpSampledImage: *hasResult = true; *hasResultType = true; break;
2193 case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2194 case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2195 case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2196 case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2197 case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2198 case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2199 case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2200 case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2201 case OpImageFetch: *hasResult = true; *hasResultType = true; break;
2202 case OpImageGather: *hasResult = true; *hasResultType = true; break;
2203 case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
2204 case OpImageRead: *hasResult = true; *hasResultType = true; break;
2205 case OpImageWrite: *hasResult = false; *hasResultType = false; break;
2206 case OpImage: *hasResult = true; *hasResultType = true; break;
2207 case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
2208 case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
2209 case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
2210 case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
2211 case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
2212 case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
2213 case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
2214 case OpConvertFToU: *hasResult = true; *hasResultType = true; break;
2215 case OpConvertFToS: *hasResult = true; *hasResultType = true; break;
2216 case OpConvertSToF: *hasResult = true; *hasResultType = true; break;
2217 case OpConvertUToF: *hasResult = true; *hasResultType = true; break;
2218 case OpUConvert: *hasResult = true; *hasResultType = true; break;
2219 case OpSConvert: *hasResult = true; *hasResultType = true; break;
2220 case OpFConvert: *hasResult = true; *hasResultType = true; break;
2221 case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
2222 case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
2223 case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
2224 case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
2225 case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
2226 case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
2227 case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
2228 case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
2229 case OpBitcast: *hasResult = true; *hasResultType = true; break;
2230 case OpSNegate: *hasResult = true; *hasResultType = true; break;
2231 case OpFNegate: *hasResult = true; *hasResultType = true; break;
2232 case OpIAdd: *hasResult = true; *hasResultType = true; break;
2233 case OpFAdd: *hasResult = true; *hasResultType = true; break;
2234 case OpISub: *hasResult = true; *hasResultType = true; break;
2235 case OpFSub: *hasResult = true; *hasResultType = true; break;
2236 case OpIMul: *hasResult = true; *hasResultType = true; break;
2237 case OpFMul: *hasResult = true; *hasResultType = true; break;
2238 case OpUDiv: *hasResult = true; *hasResultType = true; break;
2239 case OpSDiv: *hasResult = true; *hasResultType = true; break;
2240 case OpFDiv: *hasResult = true; *hasResultType = true; break;
2241 case OpUMod: *hasResult = true; *hasResultType = true; break;
2242 case OpSRem: *hasResult = true; *hasResultType = true; break;
2243 case OpSMod: *hasResult = true; *hasResultType = true; break;
2244 case OpFRem: *hasResult = true; *hasResultType = true; break;
2245 case OpFMod: *hasResult = true; *hasResultType = true; break;
2246 case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
2247 case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
2248 case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
2249 case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
2250 case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
2251 case OpOuterProduct: *hasResult = true; *hasResultType = true; break;
2252 case OpDot: *hasResult = true; *hasResultType = true; break;
2253 case OpIAddCarry: *hasResult = true; *hasResultType = true; break;
2254 case OpISubBorrow: *hasResult = true; *hasResultType = true; break;
2255 case OpUMulExtended: *hasResult = true; *hasResultType = true; break;
2256 case OpSMulExtended: *hasResult = true; *hasResultType = true; break;
2257 case OpAny: *hasResult = true; *hasResultType = true; break;
2258 case OpAll: *hasResult = true; *hasResultType = true; break;
2259 case OpIsNan: *hasResult = true; *hasResultType = true; break;
2260 case OpIsInf: *hasResult = true; *hasResultType = true; break;
2261 case OpIsFinite: *hasResult = true; *hasResultType = true; break;
2262 case OpIsNormal: *hasResult = true; *hasResultType = true; break;
2263 case OpSignBitSet: *hasResult = true; *hasResultType = true; break;
2264 case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
2265 case OpOrdered: *hasResult = true; *hasResultType = true; break;
2266 case OpUnordered: *hasResult = true; *hasResultType = true; break;
2267 case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
2268 case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
2269 case OpLogicalOr: *hasResult = true; *hasResultType = true; break;
2270 case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
2271 case OpLogicalNot: *hasResult = true; *hasResultType = true; break;
2272 case OpSelect: *hasResult = true; *hasResultType = true; break;
2273 case OpIEqual: *hasResult = true; *hasResultType = true; break;
2274 case OpINotEqual: *hasResult = true; *hasResultType = true; break;
2275 case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
2276 case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
2277 case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2278 case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2279 case OpULessThan: *hasResult = true; *hasResultType = true; break;
2280 case OpSLessThan: *hasResult = true; *hasResultType = true; break;
2281 case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
2282 case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
2283 case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
2284 case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
2285 case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
2286 case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
2287 case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
2288 case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
2289 case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
2290 case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
2291 case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
2292 case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
2293 case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2294 case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2295 case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
2296 case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
2297 case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
2298 case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
2299 case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
2300 case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2301 case OpNot: *hasResult = true; *hasResultType = true; break;
2302 case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
2303 case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
2304 case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
2305 case OpBitReverse: *hasResult = true; *hasResultType = true; break;
2306 case OpBitCount: *hasResult = true; *hasResultType = true; break;
2307 case OpDPdx: *hasResult = true; *hasResultType = true; break;
2308 case OpDPdy: *hasResult = true; *hasResultType = true; break;
2309 case OpFwidth: *hasResult = true; *hasResultType = true; break;
2310 case OpDPdxFine: *hasResult = true; *hasResultType = true; break;
2311 case OpDPdyFine: *hasResult = true; *hasResultType = true; break;
2312 case OpFwidthFine: *hasResult = true; *hasResultType = true; break;
2313 case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
2314 case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
2315 case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
2316 case OpEmitVertex: *hasResult = false; *hasResultType = false; break;
2317 case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
2318 case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
2319 case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
2320 case OpControlBarrier: *hasResult = false; *hasResultType = false; break;
2321 case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
2322 case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
2323 case OpAtomicStore: *hasResult = false; *hasResultType = false; break;
2324 case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
2325 case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
2326 case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
2327 case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
2328 case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
2329 case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
2330 case OpAtomicISub: *hasResult = true; *hasResultType = true; break;
2331 case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
2332 case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
2333 case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
2334 case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
2335 case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
2336 case OpAtomicOr: *hasResult = true; *hasResultType = true; break;
2337 case OpAtomicXor: *hasResult = true; *hasResultType = true; break;
2338 case OpPhi: *hasResult = true; *hasResultType = true; break;
2339 case OpLoopMerge: *hasResult = false; *hasResultType = false; break;
2340 case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
2341 case OpLabel: *hasResult = true; *hasResultType = false; break;
2342 case OpBranch: *hasResult = false; *hasResultType = false; break;
2343 case OpBranchConditional: *hasResult = false; *hasResultType = false; break;
2344 case OpSwitch: *hasResult = false; *hasResultType = false; break;
2345 case OpKill: *hasResult = false; *hasResultType = false; break;
2346 case OpReturn: *hasResult = false; *hasResultType = false; break;
2347 case OpReturnValue: *hasResult = false; *hasResultType = false; break;
2348 case OpUnreachable: *hasResult = false; *hasResultType = false; break;
2349 case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
2350 case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
2351 case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
2352 case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
2353 case OpGroupAll: *hasResult = true; *hasResultType = true; break;
2354 case OpGroupAny: *hasResult = true; *hasResultType = true; break;
2355 case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
2356 case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
2357 case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
2358 case OpGroupFMin: *hasResult = true; *hasResultType = true; break;
2359 case OpGroupUMin: *hasResult = true; *hasResultType = true; break;
2360 case OpGroupSMin: *hasResult = true; *hasResultType = true; break;
2361 case OpGroupFMax: *hasResult = true; *hasResultType = true; break;
2362 case OpGroupUMax: *hasResult = true; *hasResultType = true; break;
2363 case OpGroupSMax: *hasResult = true; *hasResultType = true; break;
2364 case OpReadPipe: *hasResult = true; *hasResultType = true; break;
2365 case OpWritePipe: *hasResult = true; *hasResultType = true; break;
2366 case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
2367 case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
2368 case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2369 case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2370 case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2371 case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2372 case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
2373 case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
2374 case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
2375 case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2376 case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2377 case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2378 case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2379 case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
2380 case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
2381 case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
2382 case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
2383 case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
2384 case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
2385 case OpRetainEvent: *hasResult = false; *hasResultType = false; break;
2386 case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
2387 case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
2388 case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
2389 case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
2390 case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
2391 case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
2392 case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
2393 case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2394 case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2395 case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2396 case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2397 case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2398 case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2399 case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2400 case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2401 case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
2402 case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
2403 case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
2404 case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
2405 case OpNoLine: *hasResult = false; *hasResultType = false; break;
2406 case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
2407 case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
2408 case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
2409 case OpSizeOf: *hasResult = true; *hasResultType = true; break;
2410 case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
2411 case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
2412 case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
2413 case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
2414 case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
2415 case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
2416 case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
2417 case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
2418 case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
2419 case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
2420 case OpDecorateId: *hasResult = false; *hasResultType = false; break;
2421 case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
2422 case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
2423 case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
2424 case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
2425 case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
2426 case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
2427 case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
2428 case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
2429 case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
2430 case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
2431 case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
2432 case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
2433 case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
2434 case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
2435 case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
2436 case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
2437 case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
2438 case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
2439 case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
2440 case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
2441 case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
2442 case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
2443 case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
2444 case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
2445 case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
2446 case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
2447 case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2448 case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
2449 case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
2450 case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
2451 case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
2452 case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
2453 case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
2454 case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
2455 case OpCopyLogical: *hasResult = true; *hasResultType = true; break;
2456 case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
2457 case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
2458 case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
2459 case OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2460 case OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2461 case OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2462 case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
2463 case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
2464 case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
2465 case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
2466 case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
2467 case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
2468 case OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
2469 case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
2470 case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
2471 case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
2472 case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
2473 case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2474 case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
2475 case OpSDot: *hasResult = true; *hasResultType = true; break;
2476 case OpUDot: *hasResult = true; *hasResultType = true; break;
2477 case OpSUDot: *hasResult = true; *hasResultType = true; break;
2478 case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
2479 case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
2480 case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
2481 case OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
2482 case OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
2483 case OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
2484 case OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
2485 case OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
2486 case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
2487 case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
2488 case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
2489 case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2490 case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2491 case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
2492 case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
2493 case OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
2494 case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
2495 case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
2496 case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
2497 case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2498 case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2499 case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2500 case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2501 case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2502 case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2503 case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2504 case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2505 case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
2506 case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
2507 case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
2508 case OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
2509 case OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
2510 case OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
2511 case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
2512 case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
2513 case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
2514 case OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
2515 case OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
2516 case OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
2517 case OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
2518 case OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2519 case OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
2520 case OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
2521 case OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
2522 case OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
2523 case OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
2524 case OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
2525 case OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
2526 case OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
2527 case OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
2528 case OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
2529 case OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
2530 case OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
2531 case OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
2532 case OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
2533 case OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
2534 case OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
2535 case OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
2536 case OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
2537 case OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
2538 case OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
2539 case OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
2540 case OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
2541 case OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
2542 case OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
2543 case OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
2544 case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
2545 case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
2546 case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
2547 case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
2548 case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
2549 case OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
2550 case OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
2551 case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
2552 case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
2553 case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
2554 case OpTraceNV: *hasResult = false; *hasResultType = false; break;
2555 case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
2556 case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2557 case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
2558 case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
2559 case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
2560 case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
2561 case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
2562 case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
2563 case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
2564 case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
2565 case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2566 case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2567 case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
2568 case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2569 case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
2570 case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
2571 case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
2572 case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
2573 case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
2574 case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
2575 case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
2576 case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
2577 case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
2578 case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
2579 case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
2580 case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2581 case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2582 case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2583 case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2584 case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2585 case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2586 case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2587 case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2588 case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
2589 case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
2590 case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2591 case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2592 case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
2593 case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
2594 case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2595 case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2596 case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
2597 case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
2598 case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2599 case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2600 case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
2601 case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
2602 case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
2603 case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
2604 case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
2605 case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
2606 case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
2607 case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
2608 case OpExpectKHR: *hasResult = true; *hasResultType = true; break;
2609 case OpDecorateString: *hasResult = false; *hasResultType = false; break;
2610 case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
2611 case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
2612 case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
2613 case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2614 case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2615 case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2616 case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2617 case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
2618 case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
2619 case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2620 case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2621 case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2622 case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2623 case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
2624 case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
2625 case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2626 case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2627 case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2628 case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2629 case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2630 case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2631 case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2632 case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2633 case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2634 case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2635 case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2636 case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2637 case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2638 case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2639 case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2640 case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
2641 case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2642 case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2643 case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2644 case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2645 case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
2646 case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2647 case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
2648 case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2649 case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
2650 case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2651 case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2652 case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2653 case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2654 case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2655 case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
2656 case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2657 case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2658 case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2659 case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2660 case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2661 case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2662 case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
2663 case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
2664 case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2665 case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2666 case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2667 case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2668 case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
2669 case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2670 case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2671 case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2672 case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2673 case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2674 case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2675 case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2676 case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2677 case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2678 case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2679 case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2680 case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2681 case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2682 case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2683 case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2684 case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2685 case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2686 case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2687 case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2688 case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
2689 case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
2690 case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
2691 case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
2692 case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2693 case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2694 case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2695 case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2696 case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2697 case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2698 case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2699 case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2700 case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2701 case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2702 case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2703 case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2704 case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
2705 case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
2706 case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
2707 case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
2708 case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2709 case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2710 case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2711 case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2712 case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2713 case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
2714 case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
2715 case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
2716 case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2717 case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2718 case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2719 case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2720 case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2721 case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
2722 case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2723 case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2724 case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
2725 case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
2726 case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2727 case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2728 case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
2729 case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
2730 case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
2731 case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
2732 case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2733 case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
2734 case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
2735 case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
2736 case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
2737 case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
2738 case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
2739 case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
2740 case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
2741 case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
2742 case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
2743 case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
2744 case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
2745 case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
2746 case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2747 case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
2748 case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
2749 case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2750 case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
2751 case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
2752 case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
2753 case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
2754 case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
2755 case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
2756 case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
2757 case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
2758 case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
2759 case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
2760 case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2761 case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2762 case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2763 case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
2764 case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
2765 case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
2766 case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
2767 case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
2768 case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
2769 case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
2770 case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
2771 case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
2772 case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
2773 case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
2774 case OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
2775 case OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
2776 case OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
2777 case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2778 case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
2779 case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
2780 case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
2781 case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
2782 case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2783 case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2784 case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2785 case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2786 case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
2787 case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
2788 case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
2789 case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
2790 case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2791 case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2792 case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
2793 case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
2794 case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
2795 case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
2796 case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
2797 case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
2798 case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
2799 case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
2800 case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
2801 case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
2802 case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
2803 case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
2804 case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2805 case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2806 case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2807 case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2808 case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
2809 case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
2810 case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
2811 case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
2812 case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2813 case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2814 case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2815 case OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
2816 case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
2817 case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
2818 case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
2819 case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
2820 case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
2821 case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
2822 case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
2823 case OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
2824 case OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
2825 case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
2826 case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
2827 case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
2828 }
2829 }
2830 #endif /* SPV_ENABLE_UTILITY_CODE */
2831
2832 // Overload bitwise operators for mask bit combining
2833
operator |(ImageOperandsMask a,ImageOperandsMask b)2834 inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
operator &(ImageOperandsMask a,ImageOperandsMask b)2835 inline ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
operator ^(ImageOperandsMask a,ImageOperandsMask b)2836 inline ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
operator ~(ImageOperandsMask a)2837 inline ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
operator |(FPFastMathModeMask a,FPFastMathModeMask b)2838 inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
operator &(FPFastMathModeMask a,FPFastMathModeMask b)2839 inline FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
operator ^(FPFastMathModeMask a,FPFastMathModeMask b)2840 inline FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
operator ~(FPFastMathModeMask a)2841 inline FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
operator |(SelectionControlMask a,SelectionControlMask b)2842 inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
operator &(SelectionControlMask a,SelectionControlMask b)2843 inline SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
operator ^(SelectionControlMask a,SelectionControlMask b)2844 inline SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
operator ~(SelectionControlMask a)2845 inline SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
operator |(LoopControlMask a,LoopControlMask b)2846 inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
operator &(LoopControlMask a,LoopControlMask b)2847 inline LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
operator ^(LoopControlMask a,LoopControlMask b)2848 inline LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
operator ~(LoopControlMask a)2849 inline LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
operator |(FunctionControlMask a,FunctionControlMask b)2850 inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
operator &(FunctionControlMask a,FunctionControlMask b)2851 inline FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
operator ^(FunctionControlMask a,FunctionControlMask b)2852 inline FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
operator ~(FunctionControlMask a)2853 inline FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
operator |(MemorySemanticsMask a,MemorySemanticsMask b)2854 inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
operator &(MemorySemanticsMask a,MemorySemanticsMask b)2855 inline MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
operator ^(MemorySemanticsMask a,MemorySemanticsMask b)2856 inline MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
operator ~(MemorySemanticsMask a)2857 inline MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
operator |(MemoryAccessMask a,MemoryAccessMask b)2858 inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
operator &(MemoryAccessMask a,MemoryAccessMask b)2859 inline MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
operator ^(MemoryAccessMask a,MemoryAccessMask b)2860 inline MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
operator ~(MemoryAccessMask a)2861 inline MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
operator |(KernelProfilingInfoMask a,KernelProfilingInfoMask b)2862 inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
operator &(KernelProfilingInfoMask a,KernelProfilingInfoMask b)2863 inline KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
operator ^(KernelProfilingInfoMask a,KernelProfilingInfoMask b)2864 inline KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
operator ~(KernelProfilingInfoMask a)2865 inline KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
operator |(RayFlagsMask a,RayFlagsMask b)2866 inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
operator &(RayFlagsMask a,RayFlagsMask b)2867 inline RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
operator ^(RayFlagsMask a,RayFlagsMask b)2868 inline RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
operator ~(RayFlagsMask a)2869 inline RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
operator |(FragmentShadingRateMask a,FragmentShadingRateMask b)2870 inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
operator &(FragmentShadingRateMask a,FragmentShadingRateMask b)2871 inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
operator ^(FragmentShadingRateMask a,FragmentShadingRateMask b)2872 inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
operator ~(FragmentShadingRateMask a)2873 inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
operator |(CooperativeMatrixOperandsMask a,CooperativeMatrixOperandsMask b)2874 inline CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
operator &(CooperativeMatrixOperandsMask a,CooperativeMatrixOperandsMask b)2875 inline CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
operator ^(CooperativeMatrixOperandsMask a,CooperativeMatrixOperandsMask b)2876 inline CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
operator ~(CooperativeMatrixOperandsMask a)2877 inline CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
2878
2879 } // end namespace spv
2880
2881 #endif // #ifndef spirv_HPP
2882
2883