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 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// 40// Some tokens act like mask values, which can be OR'd together, 41// while others are mutually exclusive. The mask-like ones have 42// "Mask" in their name, and a parallel enum that has the shift 43// amount (1 << x) for each corresponding enumerant. 44 45#ifndef spirv_HPP 46#define spirv_HPP 47 48namespace spv { 49 50typedef unsigned int Id; 51 52#define SPV_VERSION 0x10500 53#define SPV_REVISION 4 54 55static const unsigned int MagicNumber = 0x07230203; 56static const unsigned int Version = 0x00010500; 57static const unsigned int Revision = 4; 58static const unsigned int OpCodeMask = 0xffff; 59static const unsigned int WordCountShift = 16; 60 61enum class SourceLanguage : unsigned { 62 Unknown = 0, 63 ESSL = 1, 64 GLSL = 2, 65 OpenCL_C = 3, 66 OpenCL_CPP = 4, 67 HLSL = 5, 68 Max = 0x7fffffff, 69}; 70 71enum class ExecutionModel : unsigned { 72 Vertex = 0, 73 TessellationControl = 1, 74 TessellationEvaluation = 2, 75 Geometry = 3, 76 Fragment = 4, 77 GLCompute = 5, 78 Kernel = 6, 79 TaskNV = 5267, 80 MeshNV = 5268, 81 RayGenerationKHR = 5313, 82 RayGenerationNV = 5313, 83 IntersectionKHR = 5314, 84 IntersectionNV = 5314, 85 AnyHitKHR = 5315, 86 AnyHitNV = 5315, 87 ClosestHitKHR = 5316, 88 ClosestHitNV = 5316, 89 MissKHR = 5317, 90 MissNV = 5317, 91 CallableKHR = 5318, 92 CallableNV = 5318, 93 Max = 0x7fffffff, 94}; 95 96enum class AddressingModel : unsigned { 97 Logical = 0, 98 Physical32 = 1, 99 Physical64 = 2, 100 PhysicalStorageBuffer64 = 5348, 101 PhysicalStorageBuffer64EXT = 5348, 102 Max = 0x7fffffff, 103}; 104 105enum class MemoryModel : unsigned { 106 Simple = 0, 107 GLSL450 = 1, 108 OpenCL = 2, 109 Vulkan = 3, 110 VulkanKHR = 3, 111 Max = 0x7fffffff, 112}; 113 114enum class ExecutionMode : unsigned { 115 Invocations = 0, 116 SpacingEqual = 1, 117 SpacingFractionalEven = 2, 118 SpacingFractionalOdd = 3, 119 VertexOrderCw = 4, 120 VertexOrderCcw = 5, 121 PixelCenterInteger = 6, 122 OriginUpperLeft = 7, 123 OriginLowerLeft = 8, 124 EarlyFragmentTests = 9, 125 PointMode = 10, 126 Xfb = 11, 127 DepthReplacing = 12, 128 DepthGreater = 14, 129 DepthLess = 15, 130 DepthUnchanged = 16, 131 LocalSize = 17, 132 LocalSizeHint = 18, 133 InputPoints = 19, 134 InputLines = 20, 135 InputLinesAdjacency = 21, 136 Triangles = 22, 137 InputTrianglesAdjacency = 23, 138 Quads = 24, 139 Isolines = 25, 140 OutputVertices = 26, 141 OutputPoints = 27, 142 OutputLineStrip = 28, 143 OutputTriangleStrip = 29, 144 VecTypeHint = 30, 145 ContractionOff = 31, 146 Initializer = 33, 147 Finalizer = 34, 148 SubgroupSize = 35, 149 SubgroupsPerWorkgroup = 36, 150 SubgroupsPerWorkgroupId = 37, 151 LocalSizeId = 38, 152 LocalSizeHintId = 39, 153 PostDepthCoverage = 4446, 154 DenormPreserve = 4459, 155 DenormFlushToZero = 4460, 156 SignedZeroInfNanPreserve = 4461, 157 RoundingModeRTE = 4462, 158 RoundingModeRTZ = 4463, 159 StencilRefReplacingEXT = 5027, 160 OutputLinesNV = 5269, 161 OutputPrimitivesNV = 5270, 162 DerivativeGroupQuadsNV = 5289, 163 DerivativeGroupLinearNV = 5290, 164 OutputTrianglesNV = 5298, 165 PixelInterlockOrderedEXT = 5366, 166 PixelInterlockUnorderedEXT = 5367, 167 SampleInterlockOrderedEXT = 5368, 168 SampleInterlockUnorderedEXT = 5369, 169 ShadingRateInterlockOrderedEXT = 5370, 170 ShadingRateInterlockUnorderedEXT = 5371, 171 MaxWorkgroupSizeINTEL = 5893, 172 MaxWorkDimINTEL = 5894, 173 NoGlobalOffsetINTEL = 5895, 174 NumSIMDWorkitemsINTEL = 5896, 175 Max = 0x7fffffff, 176}; 177 178enum class StorageClass : unsigned { 179 UniformConstant = 0, 180 Input = 1, 181 Uniform = 2, 182 Output = 3, 183 Workgroup = 4, 184 CrossWorkgroup = 5, 185 Private = 6, 186 Function = 7, 187 Generic = 8, 188 PushConstant = 9, 189 AtomicCounter = 10, 190 Image = 11, 191 StorageBuffer = 12, 192 CallableDataKHR = 5328, 193 CallableDataNV = 5328, 194 IncomingCallableDataKHR = 5329, 195 IncomingCallableDataNV = 5329, 196 RayPayloadKHR = 5338, 197 RayPayloadNV = 5338, 198 HitAttributeKHR = 5339, 199 HitAttributeNV = 5339, 200 IncomingRayPayloadKHR = 5342, 201 IncomingRayPayloadNV = 5342, 202 ShaderRecordBufferKHR = 5343, 203 ShaderRecordBufferNV = 5343, 204 PhysicalStorageBuffer = 5349, 205 PhysicalStorageBufferEXT = 5349, 206 CodeSectionINTEL = 5605, 207 Max = 0x7fffffff, 208}; 209 210enum class Dim : unsigned { 211 Dim1D = 0, 212 Dim2D = 1, 213 Dim3D = 2, 214 Cube = 3, 215 Rect = 4, 216 Buffer = 5, 217 SubpassData = 6, 218 Max = 0x7fffffff, 219}; 220 221enum class SamplerAddressingMode : unsigned { 222 None = 0, 223 ClampToEdge = 1, 224 Clamp = 2, 225 Repeat = 3, 226 RepeatMirrored = 4, 227 Max = 0x7fffffff, 228}; 229 230enum class SamplerFilterMode : unsigned { 231 Nearest = 0, 232 Linear = 1, 233 Max = 0x7fffffff, 234}; 235 236enum class ImageFormat : unsigned { 237 Unknown = 0, 238 Rgba32f = 1, 239 Rgba16f = 2, 240 R32f = 3, 241 Rgba8 = 4, 242 Rgba8Snorm = 5, 243 Rg32f = 6, 244 Rg16f = 7, 245 R11fG11fB10f = 8, 246 R16f = 9, 247 Rgba16 = 10, 248 Rgb10A2 = 11, 249 Rg16 = 12, 250 Rg8 = 13, 251 R16 = 14, 252 R8 = 15, 253 Rgba16Snorm = 16, 254 Rg16Snorm = 17, 255 Rg8Snorm = 18, 256 R16Snorm = 19, 257 R8Snorm = 20, 258 Rgba32i = 21, 259 Rgba16i = 22, 260 Rgba8i = 23, 261 R32i = 24, 262 Rg32i = 25, 263 Rg16i = 26, 264 Rg8i = 27, 265 R16i = 28, 266 R8i = 29, 267 Rgba32ui = 30, 268 Rgba16ui = 31, 269 Rgba8ui = 32, 270 R32ui = 33, 271 Rgb10a2ui = 34, 272 Rg32ui = 35, 273 Rg16ui = 36, 274 Rg8ui = 37, 275 R16ui = 38, 276 R8ui = 39, 277 R64ui = 40, 278 R64i = 41, 279 Max = 0x7fffffff, 280}; 281 282enum class ImageChannelOrder : unsigned { 283 R = 0, 284 A = 1, 285 RG = 2, 286 RA = 3, 287 RGB = 4, 288 RGBA = 5, 289 BGRA = 6, 290 ARGB = 7, 291 Intensity = 8, 292 Luminance = 9, 293 Rx = 10, 294 RGx = 11, 295 RGBx = 12, 296 Depth = 13, 297 DepthStencil = 14, 298 sRGB = 15, 299 sRGBx = 16, 300 sRGBA = 17, 301 sBGRA = 18, 302 ABGR = 19, 303 Max = 0x7fffffff, 304}; 305 306enum class ImageChannelDataType : unsigned { 307 SnormInt8 = 0, 308 SnormInt16 = 1, 309 UnormInt8 = 2, 310 UnormInt16 = 3, 311 UnormShort565 = 4, 312 UnormShort555 = 5, 313 UnormInt101010 = 6, 314 SignedInt8 = 7, 315 SignedInt16 = 8, 316 SignedInt32 = 9, 317 UnsignedInt8 = 10, 318 UnsignedInt16 = 11, 319 UnsignedInt32 = 12, 320 HalfFloat = 13, 321 Float = 14, 322 UnormInt24 = 15, 323 UnormInt101010_2 = 16, 324 Max = 0x7fffffff, 325}; 326 327enum class ImageOperandsShift : unsigned { 328 Bias = 0, 329 Lod = 1, 330 Grad = 2, 331 ConstOffset = 3, 332 Offset = 4, 333 ConstOffsets = 5, 334 Sample = 6, 335 MinLod = 7, 336 MakeTexelAvailable = 8, 337 MakeTexelAvailableKHR = 8, 338 MakeTexelVisible = 9, 339 MakeTexelVisibleKHR = 9, 340 NonPrivateTexel = 10, 341 NonPrivateTexelKHR = 10, 342 VolatileTexel = 11, 343 VolatileTexelKHR = 11, 344 SignExtend = 12, 345 ZeroExtend = 13, 346 Max = 0x7fffffff, 347}; 348 349enum class ImageOperandsMask : unsigned { 350 MaskNone = 0, 351 Bias = 0x00000001, 352 Lod = 0x00000002, 353 Grad = 0x00000004, 354 ConstOffset = 0x00000008, 355 Offset = 0x00000010, 356 ConstOffsets = 0x00000020, 357 Sample = 0x00000040, 358 MinLod = 0x00000080, 359 MakeTexelAvailable = 0x00000100, 360 MakeTexelAvailableKHR = 0x00000100, 361 MakeTexelVisible = 0x00000200, 362 MakeTexelVisibleKHR = 0x00000200, 363 NonPrivateTexel = 0x00000400, 364 NonPrivateTexelKHR = 0x00000400, 365 VolatileTexel = 0x00000800, 366 VolatileTexelKHR = 0x00000800, 367 SignExtend = 0x00001000, 368 ZeroExtend = 0x00002000, 369}; 370 371enum class FPFastMathModeShift : unsigned { 372 NotNaN = 0, 373 NotInf = 1, 374 NSZ = 2, 375 AllowRecip = 3, 376 Fast = 4, 377 Max = 0x7fffffff, 378}; 379 380enum class FPFastMathModeMask : unsigned { 381 MaskNone = 0, 382 NotNaN = 0x00000001, 383 NotInf = 0x00000002, 384 NSZ = 0x00000004, 385 AllowRecip = 0x00000008, 386 Fast = 0x00000010, 387}; 388 389enum class FPRoundingMode : unsigned { 390 RTE = 0, 391 RTZ = 1, 392 RTP = 2, 393 RTN = 3, 394 Max = 0x7fffffff, 395}; 396 397enum class LinkageType : unsigned { 398 Export = 0, 399 Import = 1, 400 Max = 0x7fffffff, 401}; 402 403enum class AccessQualifier : unsigned { 404 ReadOnly = 0, 405 WriteOnly = 1, 406 ReadWrite = 2, 407 Max = 0x7fffffff, 408}; 409 410enum class FunctionParameterAttribute : unsigned { 411 Zext = 0, 412 Sext = 1, 413 ByVal = 2, 414 Sret = 3, 415 NoAlias = 4, 416 NoCapture = 5, 417 NoWrite = 6, 418 NoReadWrite = 7, 419 Max = 0x7fffffff, 420}; 421 422enum class Decoration : unsigned { 423 RelaxedPrecision = 0, 424 SpecId = 1, 425 Block = 2, 426 BufferBlock = 3, 427 RowMajor = 4, 428 ColMajor = 5, 429 ArrayStride = 6, 430 MatrixStride = 7, 431 GLSLShared = 8, 432 GLSLPacked = 9, 433 CPacked = 10, 434 BuiltIn = 11, 435 NoPerspective = 13, 436 Flat = 14, 437 Patch = 15, 438 Centroid = 16, 439 Sample = 17, 440 Invariant = 18, 441 Restrict = 19, 442 Aliased = 20, 443 Volatile = 21, 444 Constant = 22, 445 Coherent = 23, 446 NonWritable = 24, 447 NonReadable = 25, 448 Uniform = 26, 449 UniformId = 27, 450 SaturatedConversion = 28, 451 Stream = 29, 452 Location = 30, 453 Component = 31, 454 Index = 32, 455 Binding = 33, 456 DescriptorSet = 34, 457 Offset = 35, 458 XfbBuffer = 36, 459 XfbStride = 37, 460 FuncParamAttr = 38, 461 FPRoundingMode = 39, 462 FPFastMathMode = 40, 463 LinkageAttributes = 41, 464 NoContraction = 42, 465 InputAttachmentIndex = 43, 466 Alignment = 44, 467 MaxByteOffset = 45, 468 AlignmentId = 46, 469 MaxByteOffsetId = 47, 470 NoSignedWrap = 4469, 471 NoUnsignedWrap = 4470, 472 ExplicitInterpAMD = 4999, 473 OverrideCoverageNV = 5248, 474 PassthroughNV = 5250, 475 ViewportRelativeNV = 5252, 476 SecondaryViewportRelativeNV = 5256, 477 PerPrimitiveNV = 5271, 478 PerViewNV = 5272, 479 PerTaskNV = 5273, 480 PerVertexNV = 5285, 481 NonUniform = 5300, 482 NonUniformEXT = 5300, 483 RestrictPointer = 5355, 484 RestrictPointerEXT = 5355, 485 AliasedPointer = 5356, 486 AliasedPointerEXT = 5356, 487 ReferencedIndirectlyINTEL = 5602, 488 CounterBuffer = 5634, 489 HlslCounterBufferGOOGLE = 5634, 490 HlslSemanticGOOGLE = 5635, 491 UserSemantic = 5635, 492 UserTypeGOOGLE = 5636, 493 RegisterINTEL = 5825, 494 MemoryINTEL = 5826, 495 NumbanksINTEL = 5827, 496 BankwidthINTEL = 5828, 497 MaxPrivateCopiesINTEL = 5829, 498 SinglepumpINTEL = 5830, 499 DoublepumpINTEL = 5831, 500 MaxReplicatesINTEL = 5832, 501 SimpleDualPortINTEL = 5833, 502 MergeINTEL = 5834, 503 BankBitsINTEL = 5835, 504 ForcePow2DepthINTEL = 5836, 505 Max = 0x7fffffff, 506}; 507 508enum class BuiltIn : unsigned { 509 Position = 0, 510 PointSize = 1, 511 ClipDistance = 3, 512 CullDistance = 4, 513 VertexId = 5, 514 InstanceId = 6, 515 PrimitiveId = 7, 516 InvocationId = 8, 517 Layer = 9, 518 ViewportIndex = 10, 519 TessLevelOuter = 11, 520 TessLevelInner = 12, 521 TessCoord = 13, 522 PatchVertices = 14, 523 FragCoord = 15, 524 PointCoord = 16, 525 FrontFacing = 17, 526 SampleId = 18, 527 SamplePosition = 19, 528 SampleMask = 20, 529 FragDepth = 22, 530 HelperInvocation = 23, 531 NumWorkgroups = 24, 532 WorkgroupSize = 25, 533 WorkgroupId = 26, 534 LocalInvocationId = 27, 535 GlobalInvocationId = 28, 536 LocalInvocationIndex = 29, 537 WorkDim = 30, 538 GlobalSize = 31, 539 EnqueuedWorkgroupSize = 32, 540 GlobalOffset = 33, 541 GlobalLinearId = 34, 542 SubgroupSize = 36, 543 SubgroupMaxSize = 37, 544 NumSubgroups = 38, 545 NumEnqueuedSubgroups = 39, 546 SubgroupId = 40, 547 SubgroupLocalInvocationId = 41, 548 VertexIndex = 42, 549 InstanceIndex = 43, 550 SubgroupEqMask = 4416, 551 SubgroupEqMaskKHR = 4416, 552 SubgroupGeMask = 4417, 553 SubgroupGeMaskKHR = 4417, 554 SubgroupGtMask = 4418, 555 SubgroupGtMaskKHR = 4418, 556 SubgroupLeMask = 4419, 557 SubgroupLeMaskKHR = 4419, 558 SubgroupLtMask = 4420, 559 SubgroupLtMaskKHR = 4420, 560 BaseVertex = 4424, 561 BaseInstance = 4425, 562 DrawIndex = 4426, 563 PrimitiveShadingRateKHR = 4432, 564 DeviceIndex = 4438, 565 ViewIndex = 4440, 566 ShadingRateKHR = 4444, 567 BaryCoordNoPerspAMD = 4992, 568 BaryCoordNoPerspCentroidAMD = 4993, 569 BaryCoordNoPerspSampleAMD = 4994, 570 BaryCoordSmoothAMD = 4995, 571 BaryCoordSmoothCentroidAMD = 4996, 572 BaryCoordSmoothSampleAMD = 4997, 573 BaryCoordPullModelAMD = 4998, 574 FragStencilRefEXT = 5014, 575 ViewportMaskNV = 5253, 576 SecondaryPositionNV = 5257, 577 SecondaryViewportMaskNV = 5258, 578 PositionPerViewNV = 5261, 579 ViewportMaskPerViewNV = 5262, 580 FullyCoveredEXT = 5264, 581 TaskCountNV = 5274, 582 PrimitiveCountNV = 5275, 583 PrimitiveIndicesNV = 5276, 584 ClipDistancePerViewNV = 5277, 585 CullDistancePerViewNV = 5278, 586 LayerPerViewNV = 5279, 587 MeshViewCountNV = 5280, 588 MeshViewIndicesNV = 5281, 589 BaryCoordNV = 5286, 590 BaryCoordNoPerspNV = 5287, 591 FragSizeEXT = 5292, 592 FragmentSizeNV = 5292, 593 FragInvocationCountEXT = 5293, 594 InvocationsPerPixelNV = 5293, 595 LaunchIdKHR = 5319, 596 LaunchIdNV = 5319, 597 LaunchSizeKHR = 5320, 598 LaunchSizeNV = 5320, 599 WorldRayOriginKHR = 5321, 600 WorldRayOriginNV = 5321, 601 WorldRayDirectionKHR = 5322, 602 WorldRayDirectionNV = 5322, 603 ObjectRayOriginKHR = 5323, 604 ObjectRayOriginNV = 5323, 605 ObjectRayDirectionKHR = 5324, 606 ObjectRayDirectionNV = 5324, 607 RayTminKHR = 5325, 608 RayTminNV = 5325, 609 RayTmaxKHR = 5326, 610 RayTmaxNV = 5326, 611 InstanceCustomIndexKHR = 5327, 612 InstanceCustomIndexNV = 5327, 613 ObjectToWorldKHR = 5330, 614 ObjectToWorldNV = 5330, 615 WorldToObjectKHR = 5331, 616 WorldToObjectNV = 5331, 617 HitTNV = 5332, 618 HitKindKHR = 5333, 619 HitKindNV = 5333, 620 IncomingRayFlagsKHR = 5351, 621 IncomingRayFlagsNV = 5351, 622 RayGeometryIndexKHR = 5352, 623 WarpsPerSMNV = 5374, 624 SMCountNV = 5375, 625 WarpIDNV = 5376, 626 SMIDNV = 5377, 627 Max = 0x7fffffff, 628}; 629 630enum class SelectionControlShift : unsigned { 631 Flatten = 0, 632 DontFlatten = 1, 633 Max = 0x7fffffff, 634}; 635 636enum class SelectionControlMask : unsigned { 637 MaskNone = 0, 638 Flatten = 0x00000001, 639 DontFlatten = 0x00000002, 640}; 641 642enum class LoopControlShift : unsigned { 643 Unroll = 0, 644 DontUnroll = 1, 645 DependencyInfinite = 2, 646 DependencyLength = 3, 647 MinIterations = 4, 648 MaxIterations = 5, 649 IterationMultiple = 6, 650 PeelCount = 7, 651 PartialCount = 8, 652 InitiationIntervalINTEL = 16, 653 MaxConcurrencyINTEL = 17, 654 DependencyArrayINTEL = 18, 655 PipelineEnableINTEL = 19, 656 LoopCoalesceINTEL = 20, 657 MaxInterleavingINTEL = 21, 658 SpeculatedIterationsINTEL = 22, 659 Max = 0x7fffffff, 660}; 661 662enum class LoopControlMask : unsigned { 663 MaskNone = 0, 664 Unroll = 0x00000001, 665 DontUnroll = 0x00000002, 666 DependencyInfinite = 0x00000004, 667 DependencyLength = 0x00000008, 668 MinIterations = 0x00000010, 669 MaxIterations = 0x00000020, 670 IterationMultiple = 0x00000040, 671 PeelCount = 0x00000080, 672 PartialCount = 0x00000100, 673 InitiationIntervalINTEL = 0x00010000, 674 MaxConcurrencyINTEL = 0x00020000, 675 DependencyArrayINTEL = 0x00040000, 676 PipelineEnableINTEL = 0x00080000, 677 LoopCoalesceINTEL = 0x00100000, 678 MaxInterleavingINTEL = 0x00200000, 679 SpeculatedIterationsINTEL = 0x00400000, 680}; 681 682enum class FunctionControlShift : unsigned { 683 Inline = 0, 684 DontInline = 1, 685 Pure = 2, 686 Const = 3, 687 Max = 0x7fffffff, 688}; 689 690enum class FunctionControlMask : unsigned { 691 MaskNone = 0, 692 Inline = 0x00000001, 693 DontInline = 0x00000002, 694 Pure = 0x00000004, 695 Const = 0x00000008, 696}; 697 698enum class MemorySemanticsShift : unsigned { 699 Acquire = 1, 700 Release = 2, 701 AcquireRelease = 3, 702 SequentiallyConsistent = 4, 703 UniformMemory = 6, 704 SubgroupMemory = 7, 705 WorkgroupMemory = 8, 706 CrossWorkgroupMemory = 9, 707 AtomicCounterMemory = 10, 708 ImageMemory = 11, 709 OutputMemory = 12, 710 OutputMemoryKHR = 12, 711 MakeAvailable = 13, 712 MakeAvailableKHR = 13, 713 MakeVisible = 14, 714 MakeVisibleKHR = 14, 715 Volatile = 15, 716 Max = 0x7fffffff, 717}; 718 719enum class MemorySemanticsMask : unsigned { 720 MaskNone = 0, 721 Acquire = 0x00000002, 722 Release = 0x00000004, 723 AcquireRelease = 0x00000008, 724 SequentiallyConsistent = 0x00000010, 725 UniformMemory = 0x00000040, 726 SubgroupMemory = 0x00000080, 727 WorkgroupMemory = 0x00000100, 728 CrossWorkgroupMemory = 0x00000200, 729 AtomicCounterMemory = 0x00000400, 730 ImageMemory = 0x00000800, 731 OutputMemory = 0x00001000, 732 OutputMemoryKHR = 0x00001000, 733 MakeAvailable = 0x00002000, 734 MakeAvailableKHR = 0x00002000, 735 MakeVisible = 0x00004000, 736 MakeVisibleKHR = 0x00004000, 737 Volatile = 0x00008000, 738}; 739 740enum class MemoryAccessShift : unsigned { 741 Volatile = 0, 742 Aligned = 1, 743 Nontemporal = 2, 744 MakePointerAvailable = 3, 745 MakePointerAvailableKHR = 3, 746 MakePointerVisible = 4, 747 MakePointerVisibleKHR = 4, 748 NonPrivatePointer = 5, 749 NonPrivatePointerKHR = 5, 750 Max = 0x7fffffff, 751}; 752 753enum class MemoryAccessMask : unsigned { 754 MaskNone = 0, 755 Volatile = 0x00000001, 756 Aligned = 0x00000002, 757 Nontemporal = 0x00000004, 758 MakePointerAvailable = 0x00000008, 759 MakePointerAvailableKHR = 0x00000008, 760 MakePointerVisible = 0x00000010, 761 MakePointerVisibleKHR = 0x00000010, 762 NonPrivatePointer = 0x00000020, 763 NonPrivatePointerKHR = 0x00000020, 764}; 765 766enum class Scope : unsigned { 767 CrossDevice = 0, 768 Device = 1, 769 Workgroup = 2, 770 Subgroup = 3, 771 Invocation = 4, 772 QueueFamily = 5, 773 QueueFamilyKHR = 5, 774 ShaderCallKHR = 6, 775 Max = 0x7fffffff, 776}; 777 778enum class GroupOperation : unsigned { 779 Reduce = 0, 780 InclusiveScan = 1, 781 ExclusiveScan = 2, 782 ClusteredReduce = 3, 783 PartitionedReduceNV = 6, 784 PartitionedInclusiveScanNV = 7, 785 PartitionedExclusiveScanNV = 8, 786 Max = 0x7fffffff, 787}; 788 789enum class KernelEnqueueFlags : unsigned { 790 NoWait = 0, 791 WaitKernel = 1, 792 WaitWorkGroup = 2, 793 Max = 0x7fffffff, 794}; 795 796enum class KernelProfilingInfoShift : unsigned { 797 CmdExecTime = 0, 798 Max = 0x7fffffff, 799}; 800 801enum class KernelProfilingInfoMask : unsigned { 802 MaskNone = 0, 803 CmdExecTime = 0x00000001, 804}; 805 806enum class Capability : unsigned { 807 Matrix = 0, 808 Shader = 1, 809 Geometry = 2, 810 Tessellation = 3, 811 Addresses = 4, 812 Linkage = 5, 813 Kernel = 6, 814 Vector16 = 7, 815 Float16Buffer = 8, 816 Float16 = 9, 817 Float64 = 10, 818 Int64 = 11, 819 Int64Atomics = 12, 820 ImageBasic = 13, 821 ImageReadWrite = 14, 822 ImageMipmap = 15, 823 Pipes = 17, 824 Groups = 18, 825 DeviceEnqueue = 19, 826 LiteralSampler = 20, 827 AtomicStorage = 21, 828 Int16 = 22, 829 TessellationPointSize = 23, 830 GeometryPointSize = 24, 831 ImageGatherExtended = 25, 832 StorageImageMultisample = 27, 833 UniformBufferArrayDynamicIndexing = 28, 834 SampledImageArrayDynamicIndexing = 29, 835 StorageBufferArrayDynamicIndexing = 30, 836 StorageImageArrayDynamicIndexing = 31, 837 ClipDistance = 32, 838 CullDistance = 33, 839 ImageCubeArray = 34, 840 SampleRateShading = 35, 841 ImageRect = 36, 842 SampledRect = 37, 843 GenericPointer = 38, 844 Int8 = 39, 845 InputAttachment = 40, 846 SparseResidency = 41, 847 MinLod = 42, 848 Sampled1D = 43, 849 Image1D = 44, 850 SampledCubeArray = 45, 851 SampledBuffer = 46, 852 ImageBuffer = 47, 853 ImageMSArray = 48, 854 StorageImageExtendedFormats = 49, 855 ImageQuery = 50, 856 DerivativeControl = 51, 857 InterpolationFunction = 52, 858 TransformFeedback = 53, 859 GeometryStreams = 54, 860 StorageImageReadWithoutFormat = 55, 861 StorageImageWriteWithoutFormat = 56, 862 MultiViewport = 57, 863 SubgroupDispatch = 58, 864 NamedBarrier = 59, 865 PipeStorage = 60, 866 GroupNonUniform = 61, 867 GroupNonUniformVote = 62, 868 GroupNonUniformArithmetic = 63, 869 GroupNonUniformBallot = 64, 870 GroupNonUniformShuffle = 65, 871 GroupNonUniformShuffleRelative = 66, 872 GroupNonUniformClustered = 67, 873 GroupNonUniformQuad = 68, 874 ShaderLayer = 69, 875 ShaderViewportIndex = 70, 876 FragmentShadingRateKHR = 4422, 877 SubgroupBallotKHR = 4423, 878 DrawParameters = 4427, 879 SubgroupVoteKHR = 4431, 880 StorageBuffer16BitAccess = 4433, 881 StorageUniformBufferBlock16 = 4433, 882 StorageUniform16 = 4434, 883 UniformAndStorageBuffer16BitAccess = 4434, 884 StoragePushConstant16 = 4435, 885 StorageInputOutput16 = 4436, 886 DeviceGroup = 4437, 887 MultiView = 4439, 888 VariablePointersStorageBuffer = 4441, 889 VariablePointers = 4442, 890 AtomicStorageOps = 4445, 891 SampleMaskPostDepthCoverage = 4447, 892 StorageBuffer8BitAccess = 4448, 893 UniformAndStorageBuffer8BitAccess = 4449, 894 StoragePushConstant8 = 4450, 895 DenormPreserve = 4464, 896 DenormFlushToZero = 4465, 897 SignedZeroInfNanPreserve = 4466, 898 RoundingModeRTE = 4467, 899 RoundingModeRTZ = 4468, 900 RayQueryProvisionalKHR = 4471, 901 RayQueryKHR = 4472, 902 RayTraversalPrimitiveCullingKHR = 4478, 903 RayTracingKHR = 4479, 904 Float16ImageAMD = 5008, 905 ImageGatherBiasLodAMD = 5009, 906 FragmentMaskAMD = 5010, 907 StencilExportEXT = 5013, 908 ImageReadWriteLodAMD = 5015, 909 Int64ImageEXT = 5016, 910 ShaderClockKHR = 5055, 911 SampleMaskOverrideCoverageNV = 5249, 912 GeometryShaderPassthroughNV = 5251, 913 ShaderViewportIndexLayerEXT = 5254, 914 ShaderViewportIndexLayerNV = 5254, 915 ShaderViewportMaskNV = 5255, 916 ShaderStereoViewNV = 5259, 917 PerViewAttributesNV = 5260, 918 FragmentFullyCoveredEXT = 5265, 919 MeshShadingNV = 5266, 920 ImageFootprintNV = 5282, 921 FragmentBarycentricNV = 5284, 922 ComputeDerivativeGroupQuadsNV = 5288, 923 FragmentDensityEXT = 5291, 924 ShadingRateNV = 5291, 925 GroupNonUniformPartitionedNV = 5297, 926 ShaderNonUniform = 5301, 927 ShaderNonUniformEXT = 5301, 928 RuntimeDescriptorArray = 5302, 929 RuntimeDescriptorArrayEXT = 5302, 930 InputAttachmentArrayDynamicIndexing = 5303, 931 InputAttachmentArrayDynamicIndexingEXT = 5303, 932 UniformTexelBufferArrayDynamicIndexing = 5304, 933 UniformTexelBufferArrayDynamicIndexingEXT = 5304, 934 StorageTexelBufferArrayDynamicIndexing = 5305, 935 StorageTexelBufferArrayDynamicIndexingEXT = 5305, 936 UniformBufferArrayNonUniformIndexing = 5306, 937 UniformBufferArrayNonUniformIndexingEXT = 5306, 938 SampledImageArrayNonUniformIndexing = 5307, 939 SampledImageArrayNonUniformIndexingEXT = 5307, 940 StorageBufferArrayNonUniformIndexing = 5308, 941 StorageBufferArrayNonUniformIndexingEXT = 5308, 942 StorageImageArrayNonUniformIndexing = 5309, 943 StorageImageArrayNonUniformIndexingEXT = 5309, 944 InputAttachmentArrayNonUniformIndexing = 5310, 945 InputAttachmentArrayNonUniformIndexingEXT = 5310, 946 UniformTexelBufferArrayNonUniformIndexing = 5311, 947 UniformTexelBufferArrayNonUniformIndexingEXT = 5311, 948 StorageTexelBufferArrayNonUniformIndexing = 5312, 949 StorageTexelBufferArrayNonUniformIndexingEXT = 5312, 950 RayTracingNV = 5340, 951 VulkanMemoryModel = 5345, 952 VulkanMemoryModelKHR = 5345, 953 VulkanMemoryModelDeviceScope = 5346, 954 VulkanMemoryModelDeviceScopeKHR = 5346, 955 PhysicalStorageBufferAddresses = 5347, 956 PhysicalStorageBufferAddressesEXT = 5347, 957 ComputeDerivativeGroupLinearNV = 5350, 958 RayTracingProvisionalKHR = 5353, 959 CooperativeMatrixNV = 5357, 960 FragmentShaderSampleInterlockEXT = 5363, 961 FragmentShaderShadingRateInterlockEXT = 5372, 962 ShaderSMBuiltinsNV = 5373, 963 FragmentShaderPixelInterlockEXT = 5378, 964 DemoteToHelperInvocationEXT = 5379, 965 SubgroupShuffleINTEL = 5568, 966 SubgroupBufferBlockIOINTEL = 5569, 967 SubgroupImageBlockIOINTEL = 5570, 968 SubgroupImageMediaBlockIOINTEL = 5579, 969 IntegerFunctions2INTEL = 5584, 970 FunctionPointersINTEL = 5603, 971 IndirectReferencesINTEL = 5604, 972 SubgroupAvcMotionEstimationINTEL = 5696, 973 SubgroupAvcMotionEstimationIntraINTEL = 5697, 974 SubgroupAvcMotionEstimationChromaINTEL = 5698, 975 FPGAMemoryAttributesINTEL = 5824, 976 UnstructuredLoopControlsINTEL = 5886, 977 FPGALoopControlsINTEL = 5888, 978 KernelAttributesINTEL = 5892, 979 FPGAKernelAttributesINTEL = 5897, 980 BlockingPipesINTEL = 5945, 981 FPGARegINTEL = 5948, 982 AtomicFloat32AddEXT = 6033, 983 AtomicFloat64AddEXT = 6034, 984 Max = 0x7fffffff, 985}; 986 987enum class RayFlagsShift : unsigned { 988 OpaqueKHR = 0, 989 NoOpaqueKHR = 1, 990 TerminateOnFirstHitKHR = 2, 991 SkipClosestHitShaderKHR = 3, 992 CullBackFacingTrianglesKHR = 4, 993 CullFrontFacingTrianglesKHR = 5, 994 CullOpaqueKHR = 6, 995 CullNoOpaqueKHR = 7, 996 SkipTrianglesKHR = 8, 997 SkipAABBsKHR = 9, 998 Max = 0x7fffffff, 999}; 1000 1001enum class RayFlagsMask : unsigned { 1002 MaskNone = 0, 1003 OpaqueKHR = 0x00000001, 1004 NoOpaqueKHR = 0x00000002, 1005 TerminateOnFirstHitKHR = 0x00000004, 1006 SkipClosestHitShaderKHR = 0x00000008, 1007 CullBackFacingTrianglesKHR = 0x00000010, 1008 CullFrontFacingTrianglesKHR = 0x00000020, 1009 CullOpaqueKHR = 0x00000040, 1010 CullNoOpaqueKHR = 0x00000080, 1011 SkipTrianglesKHR = 0x00000100, 1012 SkipAABBsKHR = 0x00000200, 1013}; 1014 1015enum class RayQueryIntersection : unsigned { 1016 RayQueryCandidateIntersectionKHR = 0, 1017 RayQueryCommittedIntersectionKHR = 1, 1018 Max = 0x7fffffff, 1019}; 1020 1021enum class RayQueryCommittedIntersectionType : unsigned { 1022 RayQueryCommittedIntersectionNoneKHR = 0, 1023 RayQueryCommittedIntersectionTriangleKHR = 1, 1024 RayQueryCommittedIntersectionGeneratedKHR = 2, 1025 Max = 0x7fffffff, 1026}; 1027 1028enum class RayQueryCandidateIntersectionType : unsigned { 1029 RayQueryCandidateIntersectionTriangleKHR = 0, 1030 RayQueryCandidateIntersectionAABBKHR = 1, 1031 Max = 0x7fffffff, 1032}; 1033 1034enum class FragmentShadingRateShift : unsigned { 1035 Vertical2Pixels = 0, 1036 Vertical4Pixels = 1, 1037 Horizontal2Pixels = 2, 1038 Horizontal4Pixels = 3, 1039 Max = 0x7fffffff, 1040}; 1041 1042enum class FragmentShadingRateMask : unsigned { 1043 MaskNone = 0, 1044 Vertical2Pixels = 0x00000001, 1045 Vertical4Pixels = 0x00000002, 1046 Horizontal2Pixels = 0x00000004, 1047 Horizontal4Pixels = 0x00000008, 1048}; 1049 1050enum class Op : unsigned { 1051 OpNop = 0, 1052 OpUndef = 1, 1053 OpSourceContinued = 2, 1054 OpSource = 3, 1055 OpSourceExtension = 4, 1056 OpName = 5, 1057 OpMemberName = 6, 1058 OpString = 7, 1059 OpLine = 8, 1060 OpExtension = 10, 1061 OpExtInstImport = 11, 1062 OpExtInst = 12, 1063 OpMemoryModel = 14, 1064 OpEntryPoint = 15, 1065 OpExecutionMode = 16, 1066 OpCapability = 17, 1067 OpTypeVoid = 19, 1068 OpTypeBool = 20, 1069 OpTypeInt = 21, 1070 OpTypeFloat = 22, 1071 OpTypeVector = 23, 1072 OpTypeMatrix = 24, 1073 OpTypeImage = 25, 1074 OpTypeSampler = 26, 1075 OpTypeSampledImage = 27, 1076 OpTypeArray = 28, 1077 OpTypeRuntimeArray = 29, 1078 OpTypeStruct = 30, 1079 OpTypeOpaque = 31, 1080 OpTypePointer = 32, 1081 OpTypeFunction = 33, 1082 OpTypeEvent = 34, 1083 OpTypeDeviceEvent = 35, 1084 OpTypeReserveId = 36, 1085 OpTypeQueue = 37, 1086 OpTypePipe = 38, 1087 OpTypeForwardPointer = 39, 1088 OpConstantTrue = 41, 1089 OpConstantFalse = 42, 1090 OpConstant = 43, 1091 OpConstantComposite = 44, 1092 OpConstantSampler = 45, 1093 OpConstantNull = 46, 1094 OpSpecConstantTrue = 48, 1095 OpSpecConstantFalse = 49, 1096 OpSpecConstant = 50, 1097 OpSpecConstantComposite = 51, 1098 OpSpecConstantOp = 52, 1099 OpFunction = 54, 1100 OpFunctionParameter = 55, 1101 OpFunctionEnd = 56, 1102 OpFunctionCall = 57, 1103 OpVariable = 59, 1104 OpImageTexelPointer = 60, 1105 OpLoad = 61, 1106 OpStore = 62, 1107 OpCopyMemory = 63, 1108 OpCopyMemorySized = 64, 1109 OpAccessChain = 65, 1110 OpInBoundsAccessChain = 66, 1111 OpPtrAccessChain = 67, 1112 OpArrayLength = 68, 1113 OpGenericPtrMemSemantics = 69, 1114 OpInBoundsPtrAccessChain = 70, 1115 OpDecorate = 71, 1116 OpMemberDecorate = 72, 1117 OpDecorationGroup = 73, 1118 OpGroupDecorate = 74, 1119 OpGroupMemberDecorate = 75, 1120 OpVectorExtractDynamic = 77, 1121 OpVectorInsertDynamic = 78, 1122 OpVectorShuffle = 79, 1123 OpCompositeConstruct = 80, 1124 OpCompositeExtract = 81, 1125 OpCompositeInsert = 82, 1126 OpCopyObject = 83, 1127 OpTranspose = 84, 1128 OpSampledImage = 86, 1129 OpImageSampleImplicitLod = 87, 1130 OpImageSampleExplicitLod = 88, 1131 OpImageSampleDrefImplicitLod = 89, 1132 OpImageSampleDrefExplicitLod = 90, 1133 OpImageSampleProjImplicitLod = 91, 1134 OpImageSampleProjExplicitLod = 92, 1135 OpImageSampleProjDrefImplicitLod = 93, 1136 OpImageSampleProjDrefExplicitLod = 94, 1137 OpImageFetch = 95, 1138 OpImageGather = 96, 1139 OpImageDrefGather = 97, 1140 OpImageRead = 98, 1141 OpImageWrite = 99, 1142 OpImage = 100, 1143 OpImageQueryFormat = 101, 1144 OpImageQueryOrder = 102, 1145 OpImageQuerySizeLod = 103, 1146 OpImageQuerySize = 104, 1147 OpImageQueryLod = 105, 1148 OpImageQueryLevels = 106, 1149 OpImageQuerySamples = 107, 1150 OpConvertFToU = 109, 1151 OpConvertFToS = 110, 1152 OpConvertSToF = 111, 1153 OpConvertUToF = 112, 1154 OpUConvert = 113, 1155 OpSConvert = 114, 1156 OpFConvert = 115, 1157 OpQuantizeToF16 = 116, 1158 OpConvertPtrToU = 117, 1159 OpSatConvertSToU = 118, 1160 OpSatConvertUToS = 119, 1161 OpConvertUToPtr = 120, 1162 OpPtrCastToGeneric = 121, 1163 OpGenericCastToPtr = 122, 1164 OpGenericCastToPtrExplicit = 123, 1165 OpBitcast = 124, 1166 OpSNegate = 126, 1167 OpFNegate = 127, 1168 OpIAdd = 128, 1169 OpFAdd = 129, 1170 OpISub = 130, 1171 OpFSub = 131, 1172 OpIMul = 132, 1173 OpFMul = 133, 1174 OpUDiv = 134, 1175 OpSDiv = 135, 1176 OpFDiv = 136, 1177 OpUMod = 137, 1178 OpSRem = 138, 1179 OpSMod = 139, 1180 OpFRem = 140, 1181 OpFMod = 141, 1182 OpVectorTimesScalar = 142, 1183 OpMatrixTimesScalar = 143, 1184 OpVectorTimesMatrix = 144, 1185 OpMatrixTimesVector = 145, 1186 OpMatrixTimesMatrix = 146, 1187 OpOuterProduct = 147, 1188 OpDot = 148, 1189 OpIAddCarry = 149, 1190 OpISubBorrow = 150, 1191 OpUMulExtended = 151, 1192 OpSMulExtended = 152, 1193 OpAny = 154, 1194 OpAll = 155, 1195 OpIsNan = 156, 1196 OpIsInf = 157, 1197 OpIsFinite = 158, 1198 OpIsNormal = 159, 1199 OpSignBitSet = 160, 1200 OpLessOrGreater = 161, 1201 OpOrdered = 162, 1202 OpUnordered = 163, 1203 OpLogicalEqual = 164, 1204 OpLogicalNotEqual = 165, 1205 OpLogicalOr = 166, 1206 OpLogicalAnd = 167, 1207 OpLogicalNot = 168, 1208 OpSelect = 169, 1209 OpIEqual = 170, 1210 OpINotEqual = 171, 1211 OpUGreaterThan = 172, 1212 OpSGreaterThan = 173, 1213 OpUGreaterThanEqual = 174, 1214 OpSGreaterThanEqual = 175, 1215 OpULessThan = 176, 1216 OpSLessThan = 177, 1217 OpULessThanEqual = 178, 1218 OpSLessThanEqual = 179, 1219 OpFOrdEqual = 180, 1220 OpFUnordEqual = 181, 1221 OpFOrdNotEqual = 182, 1222 OpFUnordNotEqual = 183, 1223 OpFOrdLessThan = 184, 1224 OpFUnordLessThan = 185, 1225 OpFOrdGreaterThan = 186, 1226 OpFUnordGreaterThan = 187, 1227 OpFOrdLessThanEqual = 188, 1228 OpFUnordLessThanEqual = 189, 1229 OpFOrdGreaterThanEqual = 190, 1230 OpFUnordGreaterThanEqual = 191, 1231 OpShiftRightLogical = 194, 1232 OpShiftRightArithmetic = 195, 1233 OpShiftLeftLogical = 196, 1234 OpBitwiseOr = 197, 1235 OpBitwiseXor = 198, 1236 OpBitwiseAnd = 199, 1237 OpNot = 200, 1238 OpBitFieldInsert = 201, 1239 OpBitFieldSExtract = 202, 1240 OpBitFieldUExtract = 203, 1241 OpBitReverse = 204, 1242 OpBitCount = 205, 1243 OpDPdx = 207, 1244 OpDPdy = 208, 1245 OpFwidth = 209, 1246 OpDPdxFine = 210, 1247 OpDPdyFine = 211, 1248 OpFwidthFine = 212, 1249 OpDPdxCoarse = 213, 1250 OpDPdyCoarse = 214, 1251 OpFwidthCoarse = 215, 1252 OpEmitVertex = 218, 1253 OpEndPrimitive = 219, 1254 OpEmitStreamVertex = 220, 1255 OpEndStreamPrimitive = 221, 1256 OpControlBarrier = 224, 1257 OpMemoryBarrier = 225, 1258 OpAtomicLoad = 227, 1259 OpAtomicStore = 228, 1260 OpAtomicExchange = 229, 1261 OpAtomicCompareExchange = 230, 1262 OpAtomicCompareExchangeWeak = 231, 1263 OpAtomicIIncrement = 232, 1264 OpAtomicIDecrement = 233, 1265 OpAtomicIAdd = 234, 1266 OpAtomicISub = 235, 1267 OpAtomicSMin = 236, 1268 OpAtomicUMin = 237, 1269 OpAtomicSMax = 238, 1270 OpAtomicUMax = 239, 1271 OpAtomicAnd = 240, 1272 OpAtomicOr = 241, 1273 OpAtomicXor = 242, 1274 OpPhi = 245, 1275 OpLoopMerge = 246, 1276 OpSelectionMerge = 247, 1277 OpLabel = 248, 1278 OpBranch = 249, 1279 OpBranchConditional = 250, 1280 OpSwitch = 251, 1281 OpKill = 252, 1282 OpReturn = 253, 1283 OpReturnValue = 254, 1284 OpUnreachable = 255, 1285 OpLifetimeStart = 256, 1286 OpLifetimeStop = 257, 1287 OpGroupAsyncCopy = 259, 1288 OpGroupWaitEvents = 260, 1289 OpGroupAll = 261, 1290 OpGroupAny = 262, 1291 OpGroupBroadcast = 263, 1292 OpGroupIAdd = 264, 1293 OpGroupFAdd = 265, 1294 OpGroupFMin = 266, 1295 OpGroupUMin = 267, 1296 OpGroupSMin = 268, 1297 OpGroupFMax = 269, 1298 OpGroupUMax = 270, 1299 OpGroupSMax = 271, 1300 OpReadPipe = 274, 1301 OpWritePipe = 275, 1302 OpReservedReadPipe = 276, 1303 OpReservedWritePipe = 277, 1304 OpReserveReadPipePackets = 278, 1305 OpReserveWritePipePackets = 279, 1306 OpCommitReadPipe = 280, 1307 OpCommitWritePipe = 281, 1308 OpIsValidReserveId = 282, 1309 OpGetNumPipePackets = 283, 1310 OpGetMaxPipePackets = 284, 1311 OpGroupReserveReadPipePackets = 285, 1312 OpGroupReserveWritePipePackets = 286, 1313 OpGroupCommitReadPipe = 287, 1314 OpGroupCommitWritePipe = 288, 1315 OpEnqueueMarker = 291, 1316 OpEnqueueKernel = 292, 1317 OpGetKernelNDrangeSubGroupCount = 293, 1318 OpGetKernelNDrangeMaxSubGroupSize = 294, 1319 OpGetKernelWorkGroupSize = 295, 1320 OpGetKernelPreferredWorkGroupSizeMultiple = 296, 1321 OpRetainEvent = 297, 1322 OpReleaseEvent = 298, 1323 OpCreateUserEvent = 299, 1324 OpIsValidEvent = 300, 1325 OpSetUserEventStatus = 301, 1326 OpCaptureEventProfilingInfo = 302, 1327 OpGetDefaultQueue = 303, 1328 OpBuildNDRange = 304, 1329 OpImageSparseSampleImplicitLod = 305, 1330 OpImageSparseSampleExplicitLod = 306, 1331 OpImageSparseSampleDrefImplicitLod = 307, 1332 OpImageSparseSampleDrefExplicitLod = 308, 1333 OpImageSparseSampleProjImplicitLod = 309, 1334 OpImageSparseSampleProjExplicitLod = 310, 1335 OpImageSparseSampleProjDrefImplicitLod = 311, 1336 OpImageSparseSampleProjDrefExplicitLod = 312, 1337 OpImageSparseFetch = 313, 1338 OpImageSparseGather = 314, 1339 OpImageSparseDrefGather = 315, 1340 OpImageSparseTexelsResident = 316, 1341 OpNoLine = 317, 1342 OpAtomicFlagTestAndSet = 318, 1343 OpAtomicFlagClear = 319, 1344 OpImageSparseRead = 320, 1345 OpSizeOf = 321, 1346 OpTypePipeStorage = 322, 1347 OpConstantPipeStorage = 323, 1348 OpCreatePipeFromPipeStorage = 324, 1349 OpGetKernelLocalSizeForSubgroupCount = 325, 1350 OpGetKernelMaxNumSubgroups = 326, 1351 OpTypeNamedBarrier = 327, 1352 OpNamedBarrierInitialize = 328, 1353 OpMemoryNamedBarrier = 329, 1354 OpModuleProcessed = 330, 1355 OpExecutionModeId = 331, 1356 OpDecorateId = 332, 1357 OpGroupNonUniformElect = 333, 1358 OpGroupNonUniformAll = 334, 1359 OpGroupNonUniformAny = 335, 1360 OpGroupNonUniformAllEqual = 336, 1361 OpGroupNonUniformBroadcast = 337, 1362 OpGroupNonUniformBroadcastFirst = 338, 1363 OpGroupNonUniformBallot = 339, 1364 OpGroupNonUniformInverseBallot = 340, 1365 OpGroupNonUniformBallotBitExtract = 341, 1366 OpGroupNonUniformBallotBitCount = 342, 1367 OpGroupNonUniformBallotFindLSB = 343, 1368 OpGroupNonUniformBallotFindMSB = 344, 1369 OpGroupNonUniformShuffle = 345, 1370 OpGroupNonUniformShuffleXor = 346, 1371 OpGroupNonUniformShuffleUp = 347, 1372 OpGroupNonUniformShuffleDown = 348, 1373 OpGroupNonUniformIAdd = 349, 1374 OpGroupNonUniformFAdd = 350, 1375 OpGroupNonUniformIMul = 351, 1376 OpGroupNonUniformFMul = 352, 1377 OpGroupNonUniformSMin = 353, 1378 OpGroupNonUniformUMin = 354, 1379 OpGroupNonUniformFMin = 355, 1380 OpGroupNonUniformSMax = 356, 1381 OpGroupNonUniformUMax = 357, 1382 OpGroupNonUniformFMax = 358, 1383 OpGroupNonUniformBitwiseAnd = 359, 1384 OpGroupNonUniformBitwiseOr = 360, 1385 OpGroupNonUniformBitwiseXor = 361, 1386 OpGroupNonUniformLogicalAnd = 362, 1387 OpGroupNonUniformLogicalOr = 363, 1388 OpGroupNonUniformLogicalXor = 364, 1389 OpGroupNonUniformQuadBroadcast = 365, 1390 OpGroupNonUniformQuadSwap = 366, 1391 OpCopyLogical = 400, 1392 OpPtrEqual = 401, 1393 OpPtrNotEqual = 402, 1394 OpPtrDiff = 403, 1395 OpTerminateInvocation = 4416, 1396 OpSubgroupBallotKHR = 4421, 1397 OpSubgroupFirstInvocationKHR = 4422, 1398 OpSubgroupAllKHR = 4428, 1399 OpSubgroupAnyKHR = 4429, 1400 OpSubgroupAllEqualKHR = 4430, 1401 OpSubgroupReadInvocationKHR = 4432, 1402 OpTraceRayKHR = 4445, 1403 OpExecuteCallableKHR = 4446, 1404 OpConvertUToAccelerationStructureKHR = 4447, 1405 OpIgnoreIntersectionKHR = 4448, 1406 OpTerminateRayKHR = 4449, 1407 OpTypeRayQueryKHR = 4472, 1408 OpRayQueryInitializeKHR = 4473, 1409 OpRayQueryTerminateKHR = 4474, 1410 OpRayQueryGenerateIntersectionKHR = 4475, 1411 OpRayQueryConfirmIntersectionKHR = 4476, 1412 OpRayQueryProceedKHR = 4477, 1413 OpRayQueryGetIntersectionTypeKHR = 4479, 1414 OpGroupIAddNonUniformAMD = 5000, 1415 OpGroupFAddNonUniformAMD = 5001, 1416 OpGroupFMinNonUniformAMD = 5002, 1417 OpGroupUMinNonUniformAMD = 5003, 1418 OpGroupSMinNonUniformAMD = 5004, 1419 OpGroupFMaxNonUniformAMD = 5005, 1420 OpGroupUMaxNonUniformAMD = 5006, 1421 OpGroupSMaxNonUniformAMD = 5007, 1422 OpFragmentMaskFetchAMD = 5011, 1423 OpFragmentFetchAMD = 5012, 1424 OpReadClockKHR = 5056, 1425 OpImageSampleFootprintNV = 5283, 1426 OpGroupNonUniformPartitionNV = 5296, 1427 OpWritePackedPrimitiveIndices4x8NV = 5299, 1428 OpReportIntersectionKHR = 5334, 1429 OpReportIntersectionNV = 5334, 1430 OpIgnoreIntersectionNV = 5335, 1431 OpTerminateRayNV = 5336, 1432 OpTraceNV = 5337, 1433 OpTypeAccelerationStructureKHR = 5341, 1434 OpTypeAccelerationStructureNV = 5341, 1435 OpExecuteCallableNV = 5344, 1436 OpTypeCooperativeMatrixNV = 5358, 1437 OpCooperativeMatrixLoadNV = 5359, 1438 OpCooperativeMatrixStoreNV = 5360, 1439 OpCooperativeMatrixMulAddNV = 5361, 1440 OpCooperativeMatrixLengthNV = 5362, 1441 OpBeginInvocationInterlockEXT = 5364, 1442 OpEndInvocationInterlockEXT = 5365, 1443 OpDemoteToHelperInvocationEXT = 5380, 1444 OpIsHelperInvocationEXT = 5381, 1445 OpSubgroupShuffleINTEL = 5571, 1446 OpSubgroupShuffleDownINTEL = 5572, 1447 OpSubgroupShuffleUpINTEL = 5573, 1448 OpSubgroupShuffleXorINTEL = 5574, 1449 OpSubgroupBlockReadINTEL = 5575, 1450 OpSubgroupBlockWriteINTEL = 5576, 1451 OpSubgroupImageBlockReadINTEL = 5577, 1452 OpSubgroupImageBlockWriteINTEL = 5578, 1453 OpSubgroupImageMediaBlockReadINTEL = 5580, 1454 OpSubgroupImageMediaBlockWriteINTEL = 5581, 1455 OpUCountLeadingZerosINTEL = 5585, 1456 OpUCountTrailingZerosINTEL = 5586, 1457 OpAbsISubINTEL = 5587, 1458 OpAbsUSubINTEL = 5588, 1459 OpIAddSatINTEL = 5589, 1460 OpUAddSatINTEL = 5590, 1461 OpIAverageINTEL = 5591, 1462 OpUAverageINTEL = 5592, 1463 OpIAverageRoundedINTEL = 5593, 1464 OpUAverageRoundedINTEL = 5594, 1465 OpISubSatINTEL = 5595, 1466 OpUSubSatINTEL = 5596, 1467 OpIMul32x16INTEL = 5597, 1468 OpUMul32x16INTEL = 5598, 1469 OpFunctionPointerINTEL = 5600, 1470 OpFunctionPointerCallINTEL = 5601, 1471 OpDecorateString = 5632, 1472 OpDecorateStringGOOGLE = 5632, 1473 OpMemberDecorateString = 5633, 1474 OpMemberDecorateStringGOOGLE = 5633, 1475 OpVmeImageINTEL = 5699, 1476 OpTypeVmeImageINTEL = 5700, 1477 OpTypeAvcImePayloadINTEL = 5701, 1478 OpTypeAvcRefPayloadINTEL = 5702, 1479 OpTypeAvcSicPayloadINTEL = 5703, 1480 OpTypeAvcMcePayloadINTEL = 5704, 1481 OpTypeAvcMceResultINTEL = 5705, 1482 OpTypeAvcImeResultINTEL = 5706, 1483 OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, 1484 OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, 1485 OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, 1486 OpTypeAvcImeDualReferenceStreaminINTEL = 5710, 1487 OpTypeAvcRefResultINTEL = 5711, 1488 OpTypeAvcSicResultINTEL = 5712, 1489 OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, 1490 OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, 1491 OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, 1492 OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, 1493 OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, 1494 OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, 1495 OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, 1496 OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, 1497 OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, 1498 OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, 1499 OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, 1500 OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, 1501 OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, 1502 OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, 1503 OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, 1504 OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, 1505 OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, 1506 OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, 1507 OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, 1508 OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, 1509 OpSubgroupAvcMceConvertToImeResultINTEL = 5733, 1510 OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, 1511 OpSubgroupAvcMceConvertToRefResultINTEL = 5735, 1512 OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, 1513 OpSubgroupAvcMceConvertToSicResultINTEL = 5737, 1514 OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, 1515 OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, 1516 OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, 1517 OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, 1518 OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, 1519 OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, 1520 OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, 1521 OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, 1522 OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, 1523 OpSubgroupAvcImeInitializeINTEL = 5747, 1524 OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, 1525 OpSubgroupAvcImeSetDualReferenceINTEL = 5749, 1526 OpSubgroupAvcImeRefWindowSizeINTEL = 5750, 1527 OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, 1528 OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, 1529 OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, 1530 OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, 1531 OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, 1532 OpSubgroupAvcImeSetWeightedSadINTEL = 5756, 1533 OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, 1534 OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, 1535 OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, 1536 OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, 1537 OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, 1538 OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, 1539 OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, 1540 OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, 1541 OpSubgroupAvcImeConvertToMceResultINTEL = 5765, 1542 OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, 1543 OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, 1544 OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, 1545 OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, 1546 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, 1547 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, 1548 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, 1549 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, 1550 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, 1551 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, 1552 OpSubgroupAvcImeGetBorderReachedINTEL = 5776, 1553 OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, 1554 OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, 1555 OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, 1556 OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, 1557 OpSubgroupAvcFmeInitializeINTEL = 5781, 1558 OpSubgroupAvcBmeInitializeINTEL = 5782, 1559 OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, 1560 OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, 1561 OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, 1562 OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, 1563 OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, 1564 OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, 1565 OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, 1566 OpSubgroupAvcRefConvertToMceResultINTEL = 5790, 1567 OpSubgroupAvcSicInitializeINTEL = 5791, 1568 OpSubgroupAvcSicConfigureSkcINTEL = 5792, 1569 OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, 1570 OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, 1571 OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, 1572 OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, 1573 OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, 1574 OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, 1575 OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, 1576 OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, 1577 OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, 1578 OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, 1579 OpSubgroupAvcSicEvaluateIpeINTEL = 5803, 1580 OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, 1581 OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, 1582 OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, 1583 OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, 1584 OpSubgroupAvcSicConvertToMceResultINTEL = 5808, 1585 OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, 1586 OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, 1587 OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, 1588 OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, 1589 OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, 1590 OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, 1591 OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, 1592 OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, 1593 OpLoopControlINTEL = 5887, 1594 OpReadPipeBlockingINTEL = 5946, 1595 OpWritePipeBlockingINTEL = 5947, 1596 OpFPGARegINTEL = 5949, 1597 OpRayQueryGetRayTMinKHR = 6016, 1598 OpRayQueryGetRayFlagsKHR = 6017, 1599 OpRayQueryGetIntersectionTKHR = 6018, 1600 OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, 1601 OpRayQueryGetIntersectionInstanceIdKHR = 6020, 1602 OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, 1603 OpRayQueryGetIntersectionGeometryIndexKHR = 6022, 1604 OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, 1605 OpRayQueryGetIntersectionBarycentricsKHR = 6024, 1606 OpRayQueryGetIntersectionFrontFaceKHR = 6025, 1607 OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, 1608 OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, 1609 OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, 1610 OpRayQueryGetWorldRayDirectionKHR = 6029, 1611 OpRayQueryGetWorldRayOriginKHR = 6030, 1612 OpRayQueryGetIntersectionObjectToWorldKHR = 6031, 1613 OpRayQueryGetIntersectionWorldToObjectKHR = 6032, 1614 OpAtomicFAddEXT = 6035, 1615 Max = 0x7fffffff, 1616}; 1617 1618#ifdef SPV_ENABLE_UTILITY_CODE 1619inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { 1620 *hasResult = *hasResultType = false; 1621 switch (opcode) { 1622 default: /* unknown opcode */ break; 1623 case Op::OpNop: *hasResult = false; *hasResultType = false; break; 1624 case Op::OpUndef: *hasResult = true; *hasResultType = true; break; 1625 case Op::OpSourceContinued: *hasResult = false; *hasResultType = false; break; 1626 case Op::OpSource: *hasResult = false; *hasResultType = false; break; 1627 case Op::OpSourceExtension: *hasResult = false; *hasResultType = false; break; 1628 case Op::OpName: *hasResult = false; *hasResultType = false; break; 1629 case Op::OpMemberName: *hasResult = false; *hasResultType = false; break; 1630 case Op::OpString: *hasResult = true; *hasResultType = false; break; 1631 case Op::OpLine: *hasResult = false; *hasResultType = false; break; 1632 case Op::OpExtension: *hasResult = false; *hasResultType = false; break; 1633 case Op::OpExtInstImport: *hasResult = true; *hasResultType = false; break; 1634 case Op::OpExtInst: *hasResult = true; *hasResultType = true; break; 1635 case Op::OpMemoryModel: *hasResult = false; *hasResultType = false; break; 1636 case Op::OpEntryPoint: *hasResult = false; *hasResultType = false; break; 1637 case Op::OpExecutionMode: *hasResult = false; *hasResultType = false; break; 1638 case Op::OpCapability: *hasResult = false; *hasResultType = false; break; 1639 case Op::OpTypeVoid: *hasResult = true; *hasResultType = false; break; 1640 case Op::OpTypeBool: *hasResult = true; *hasResultType = false; break; 1641 case Op::OpTypeInt: *hasResult = true; *hasResultType = false; break; 1642 case Op::OpTypeFloat: *hasResult = true; *hasResultType = false; break; 1643 case Op::OpTypeVector: *hasResult = true; *hasResultType = false; break; 1644 case Op::OpTypeMatrix: *hasResult = true; *hasResultType = false; break; 1645 case Op::OpTypeImage: *hasResult = true; *hasResultType = false; break; 1646 case Op::OpTypeSampler: *hasResult = true; *hasResultType = false; break; 1647 case Op::OpTypeSampledImage: *hasResult = true; *hasResultType = false; break; 1648 case Op::OpTypeArray: *hasResult = true; *hasResultType = false; break; 1649 case Op::OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; 1650 case Op::OpTypeStruct: *hasResult = true; *hasResultType = false; break; 1651 case Op::OpTypeOpaque: *hasResult = true; *hasResultType = false; break; 1652 case Op::OpTypePointer: *hasResult = true; *hasResultType = false; break; 1653 case Op::OpTypeFunction: *hasResult = true; *hasResultType = false; break; 1654 case Op::OpTypeEvent: *hasResult = true; *hasResultType = false; break; 1655 case Op::OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; 1656 case Op::OpTypeReserveId: *hasResult = true; *hasResultType = false; break; 1657 case Op::OpTypeQueue: *hasResult = true; *hasResultType = false; break; 1658 case Op::OpTypePipe: *hasResult = true; *hasResultType = false; break; 1659 case Op::OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; 1660 case Op::OpConstantTrue: *hasResult = true; *hasResultType = true; break; 1661 case Op::OpConstantFalse: *hasResult = true; *hasResultType = true; break; 1662 case Op::OpConstant: *hasResult = true; *hasResultType = true; break; 1663 case Op::OpConstantComposite: *hasResult = true; *hasResultType = true; break; 1664 case Op::OpConstantSampler: *hasResult = true; *hasResultType = true; break; 1665 case Op::OpConstantNull: *hasResult = true; *hasResultType = true; break; 1666 case Op::OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; 1667 case Op::OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; 1668 case Op::OpSpecConstant: *hasResult = true; *hasResultType = true; break; 1669 case Op::OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; 1670 case Op::OpSpecConstantOp: *hasResult = true; *hasResultType = true; break; 1671 case Op::OpFunction: *hasResult = true; *hasResultType = true; break; 1672 case Op::OpFunctionParameter: *hasResult = true; *hasResultType = true; break; 1673 case Op::OpFunctionEnd: *hasResult = false; *hasResultType = false; break; 1674 case Op::OpFunctionCall: *hasResult = true; *hasResultType = true; break; 1675 case Op::OpVariable: *hasResult = true; *hasResultType = true; break; 1676 case Op::OpImageTexelPointer: *hasResult = true; *hasResultType = true; break; 1677 case Op::OpLoad: *hasResult = true; *hasResultType = true; break; 1678 case Op::OpStore: *hasResult = false; *hasResultType = false; break; 1679 case Op::OpCopyMemory: *hasResult = false; *hasResultType = false; break; 1680 case Op::OpCopyMemorySized: *hasResult = false; *hasResultType = false; break; 1681 case Op::OpAccessChain: *hasResult = true; *hasResultType = true; break; 1682 case Op::OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; 1683 case Op::OpPtrAccessChain: *hasResult = true; *hasResultType = true; break; 1684 case Op::OpArrayLength: *hasResult = true; *hasResultType = true; break; 1685 case Op::OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; 1686 case Op::OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; 1687 case Op::OpDecorate: *hasResult = false; *hasResultType = false; break; 1688 case Op::OpMemberDecorate: *hasResult = false; *hasResultType = false; break; 1689 case Op::OpDecorationGroup: *hasResult = true; *hasResultType = false; break; 1690 case Op::OpGroupDecorate: *hasResult = false; *hasResultType = false; break; 1691 case Op::OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; 1692 case Op::OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; 1693 case Op::OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; 1694 case Op::OpVectorShuffle: *hasResult = true; *hasResultType = true; break; 1695 case Op::OpCompositeConstruct: *hasResult = true; *hasResultType = true; break; 1696 case Op::OpCompositeExtract: *hasResult = true; *hasResultType = true; break; 1697 case Op::OpCompositeInsert: *hasResult = true; *hasResultType = true; break; 1698 case Op::OpCopyObject: *hasResult = true; *hasResultType = true; break; 1699 case Op::OpTranspose: *hasResult = true; *hasResultType = true; break; 1700 case Op::OpSampledImage: *hasResult = true; *hasResultType = true; break; 1701 case Op::OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; 1702 case Op::OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; 1703 case Op::OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; 1704 case Op::OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; 1705 case Op::OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; 1706 case Op::OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; 1707 case Op::OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; 1708 case Op::OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; 1709 case Op::OpImageFetch: *hasResult = true; *hasResultType = true; break; 1710 case Op::OpImageGather: *hasResult = true; *hasResultType = true; break; 1711 case Op::OpImageDrefGather: *hasResult = true; *hasResultType = true; break; 1712 case Op::OpImageRead: *hasResult = true; *hasResultType = true; break; 1713 case Op::OpImageWrite: *hasResult = false; *hasResultType = false; break; 1714 case Op::OpImage: *hasResult = true; *hasResultType = true; break; 1715 case Op::OpImageQueryFormat: *hasResult = true; *hasResultType = true; break; 1716 case Op::OpImageQueryOrder: *hasResult = true; *hasResultType = true; break; 1717 case Op::OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; 1718 case Op::OpImageQuerySize: *hasResult = true; *hasResultType = true; break; 1719 case Op::OpImageQueryLod: *hasResult = true; *hasResultType = true; break; 1720 case Op::OpImageQueryLevels: *hasResult = true; *hasResultType = true; break; 1721 case Op::OpImageQuerySamples: *hasResult = true; *hasResultType = true; break; 1722 case Op::OpConvertFToU: *hasResult = true; *hasResultType = true; break; 1723 case Op::OpConvertFToS: *hasResult = true; *hasResultType = true; break; 1724 case Op::OpConvertSToF: *hasResult = true; *hasResultType = true; break; 1725 case Op::OpConvertUToF: *hasResult = true; *hasResultType = true; break; 1726 case Op::OpUConvert: *hasResult = true; *hasResultType = true; break; 1727 case Op::OpSConvert: *hasResult = true; *hasResultType = true; break; 1728 case Op::OpFConvert: *hasResult = true; *hasResultType = true; break; 1729 case Op::OpQuantizeToF16: *hasResult = true; *hasResultType = true; break; 1730 case Op::OpConvertPtrToU: *hasResult = true; *hasResultType = true; break; 1731 case Op::OpSatConvertSToU: *hasResult = true; *hasResultType = true; break; 1732 case Op::OpSatConvertUToS: *hasResult = true; *hasResultType = true; break; 1733 case Op::OpConvertUToPtr: *hasResult = true; *hasResultType = true; break; 1734 case Op::OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; 1735 case Op::OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; 1736 case Op::OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; 1737 case Op::OpBitcast: *hasResult = true; *hasResultType = true; break; 1738 case Op::OpSNegate: *hasResult = true; *hasResultType = true; break; 1739 case Op::OpFNegate: *hasResult = true; *hasResultType = true; break; 1740 case Op::OpIAdd: *hasResult = true; *hasResultType = true; break; 1741 case Op::OpFAdd: *hasResult = true; *hasResultType = true; break; 1742 case Op::OpISub: *hasResult = true; *hasResultType = true; break; 1743 case Op::OpFSub: *hasResult = true; *hasResultType = true; break; 1744 case Op::OpIMul: *hasResult = true; *hasResultType = true; break; 1745 case Op::OpFMul: *hasResult = true; *hasResultType = true; break; 1746 case Op::OpUDiv: *hasResult = true; *hasResultType = true; break; 1747 case Op::OpSDiv: *hasResult = true; *hasResultType = true; break; 1748 case Op::OpFDiv: *hasResult = true; *hasResultType = true; break; 1749 case Op::OpUMod: *hasResult = true; *hasResultType = true; break; 1750 case Op::OpSRem: *hasResult = true; *hasResultType = true; break; 1751 case Op::OpSMod: *hasResult = true; *hasResultType = true; break; 1752 case Op::OpFRem: *hasResult = true; *hasResultType = true; break; 1753 case Op::OpFMod: *hasResult = true; *hasResultType = true; break; 1754 case Op::OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; 1755 case Op::OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; 1756 case Op::OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; 1757 case Op::OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; 1758 case Op::OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; 1759 case Op::OpOuterProduct: *hasResult = true; *hasResultType = true; break; 1760 case Op::OpDot: *hasResult = true; *hasResultType = true; break; 1761 case Op::OpIAddCarry: *hasResult = true; *hasResultType = true; break; 1762 case Op::OpISubBorrow: *hasResult = true; *hasResultType = true; break; 1763 case Op::OpUMulExtended: *hasResult = true; *hasResultType = true; break; 1764 case Op::OpSMulExtended: *hasResult = true; *hasResultType = true; break; 1765 case Op::OpAny: *hasResult = true; *hasResultType = true; break; 1766 case Op::OpAll: *hasResult = true; *hasResultType = true; break; 1767 case Op::OpIsNan: *hasResult = true; *hasResultType = true; break; 1768 case Op::OpIsInf: *hasResult = true; *hasResultType = true; break; 1769 case Op::OpIsFinite: *hasResult = true; *hasResultType = true; break; 1770 case Op::OpIsNormal: *hasResult = true; *hasResultType = true; break; 1771 case Op::OpSignBitSet: *hasResult = true; *hasResultType = true; break; 1772 case Op::OpLessOrGreater: *hasResult = true; *hasResultType = true; break; 1773 case Op::OpOrdered: *hasResult = true; *hasResultType = true; break; 1774 case Op::OpUnordered: *hasResult = true; *hasResultType = true; break; 1775 case Op::OpLogicalEqual: *hasResult = true; *hasResultType = true; break; 1776 case Op::OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; 1777 case Op::OpLogicalOr: *hasResult = true; *hasResultType = true; break; 1778 case Op::OpLogicalAnd: *hasResult = true; *hasResultType = true; break; 1779 case Op::OpLogicalNot: *hasResult = true; *hasResultType = true; break; 1780 case Op::OpSelect: *hasResult = true; *hasResultType = true; break; 1781 case Op::OpIEqual: *hasResult = true; *hasResultType = true; break; 1782 case Op::OpINotEqual: *hasResult = true; *hasResultType = true; break; 1783 case Op::OpUGreaterThan: *hasResult = true; *hasResultType = true; break; 1784 case Op::OpSGreaterThan: *hasResult = true; *hasResultType = true; break; 1785 case Op::OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; 1786 case Op::OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; 1787 case Op::OpULessThan: *hasResult = true; *hasResultType = true; break; 1788 case Op::OpSLessThan: *hasResult = true; *hasResultType = true; break; 1789 case Op::OpULessThanEqual: *hasResult = true; *hasResultType = true; break; 1790 case Op::OpSLessThanEqual: *hasResult = true; *hasResultType = true; break; 1791 case Op::OpFOrdEqual: *hasResult = true; *hasResultType = true; break; 1792 case Op::OpFUnordEqual: *hasResult = true; *hasResultType = true; break; 1793 case Op::OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; 1794 case Op::OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; 1795 case Op::OpFOrdLessThan: *hasResult = true; *hasResultType = true; break; 1796 case Op::OpFUnordLessThan: *hasResult = true; *hasResultType = true; break; 1797 case Op::OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; 1798 case Op::OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; 1799 case Op::OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; 1800 case Op::OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; 1801 case Op::OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; 1802 case Op::OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; 1803 case Op::OpShiftRightLogical: *hasResult = true; *hasResultType = true; break; 1804 case Op::OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; 1805 case Op::OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; 1806 case Op::OpBitwiseOr: *hasResult = true; *hasResultType = true; break; 1807 case Op::OpBitwiseXor: *hasResult = true; *hasResultType = true; break; 1808 case Op::OpBitwiseAnd: *hasResult = true; *hasResultType = true; break; 1809 case Op::OpNot: *hasResult = true; *hasResultType = true; break; 1810 case Op::OpBitFieldInsert: *hasResult = true; *hasResultType = true; break; 1811 case Op::OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; 1812 case Op::OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; 1813 case Op::OpBitReverse: *hasResult = true; *hasResultType = true; break; 1814 case Op::OpBitCount: *hasResult = true; *hasResultType = true; break; 1815 case Op::OpDPdx: *hasResult = true; *hasResultType = true; break; 1816 case Op::OpDPdy: *hasResult = true; *hasResultType = true; break; 1817 case Op::OpFwidth: *hasResult = true; *hasResultType = true; break; 1818 case Op::OpDPdxFine: *hasResult = true; *hasResultType = true; break; 1819 case Op::OpDPdyFine: *hasResult = true; *hasResultType = true; break; 1820 case Op::OpFwidthFine: *hasResult = true; *hasResultType = true; break; 1821 case Op::OpDPdxCoarse: *hasResult = true; *hasResultType = true; break; 1822 case Op::OpDPdyCoarse: *hasResult = true; *hasResultType = true; break; 1823 case Op::OpFwidthCoarse: *hasResult = true; *hasResultType = true; break; 1824 case Op::OpEmitVertex: *hasResult = false; *hasResultType = false; break; 1825 case Op::OpEndPrimitive: *hasResult = false; *hasResultType = false; break; 1826 case Op::OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; 1827 case Op::OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; 1828 case Op::OpControlBarrier: *hasResult = false; *hasResultType = false; break; 1829 case Op::OpMemoryBarrier: *hasResult = false; *hasResultType = false; break; 1830 case Op::OpAtomicLoad: *hasResult = true; *hasResultType = true; break; 1831 case Op::OpAtomicStore: *hasResult = false; *hasResultType = false; break; 1832 case Op::OpAtomicExchange: *hasResult = true; *hasResultType = true; break; 1833 case Op::OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; 1834 case Op::OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; 1835 case Op::OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; 1836 case Op::OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; 1837 case Op::OpAtomicIAdd: *hasResult = true; *hasResultType = true; break; 1838 case Op::OpAtomicISub: *hasResult = true; *hasResultType = true; break; 1839 case Op::OpAtomicSMin: *hasResult = true; *hasResultType = true; break; 1840 case Op::OpAtomicUMin: *hasResult = true; *hasResultType = true; break; 1841 case Op::OpAtomicSMax: *hasResult = true; *hasResultType = true; break; 1842 case Op::OpAtomicUMax: *hasResult = true; *hasResultType = true; break; 1843 case Op::OpAtomicAnd: *hasResult = true; *hasResultType = true; break; 1844 case Op::OpAtomicOr: *hasResult = true; *hasResultType = true; break; 1845 case Op::OpAtomicXor: *hasResult = true; *hasResultType = true; break; 1846 case Op::OpPhi: *hasResult = true; *hasResultType = true; break; 1847 case Op::OpLoopMerge: *hasResult = false; *hasResultType = false; break; 1848 case Op::OpSelectionMerge: *hasResult = false; *hasResultType = false; break; 1849 case Op::OpLabel: *hasResult = true; *hasResultType = false; break; 1850 case Op::OpBranch: *hasResult = false; *hasResultType = false; break; 1851 case Op::OpBranchConditional: *hasResult = false; *hasResultType = false; break; 1852 case Op::OpSwitch: *hasResult = false; *hasResultType = false; break; 1853 case Op::OpKill: *hasResult = false; *hasResultType = false; break; 1854 case Op::OpReturn: *hasResult = false; *hasResultType = false; break; 1855 case Op::OpReturnValue: *hasResult = false; *hasResultType = false; break; 1856 case Op::OpUnreachable: *hasResult = false; *hasResultType = false; break; 1857 case Op::OpLifetimeStart: *hasResult = false; *hasResultType = false; break; 1858 case Op::OpLifetimeStop: *hasResult = false; *hasResultType = false; break; 1859 case Op::OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; 1860 case Op::OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; 1861 case Op::OpGroupAll: *hasResult = true; *hasResultType = true; break; 1862 case Op::OpGroupAny: *hasResult = true; *hasResultType = true; break; 1863 case Op::OpGroupBroadcast: *hasResult = true; *hasResultType = true; break; 1864 case Op::OpGroupIAdd: *hasResult = true; *hasResultType = true; break; 1865 case Op::OpGroupFAdd: *hasResult = true; *hasResultType = true; break; 1866 case Op::OpGroupFMin: *hasResult = true; *hasResultType = true; break; 1867 case Op::OpGroupUMin: *hasResult = true; *hasResultType = true; break; 1868 case Op::OpGroupSMin: *hasResult = true; *hasResultType = true; break; 1869 case Op::OpGroupFMax: *hasResult = true; *hasResultType = true; break; 1870 case Op::OpGroupUMax: *hasResult = true; *hasResultType = true; break; 1871 case Op::OpGroupSMax: *hasResult = true; *hasResultType = true; break; 1872 case Op::OpReadPipe: *hasResult = true; *hasResultType = true; break; 1873 case Op::OpWritePipe: *hasResult = true; *hasResultType = true; break; 1874 case Op::OpReservedReadPipe: *hasResult = true; *hasResultType = true; break; 1875 case Op::OpReservedWritePipe: *hasResult = true; *hasResultType = true; break; 1876 case Op::OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; 1877 case Op::OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; 1878 case Op::OpCommitReadPipe: *hasResult = false; *hasResultType = false; break; 1879 case Op::OpCommitWritePipe: *hasResult = false; *hasResultType = false; break; 1880 case Op::OpIsValidReserveId: *hasResult = true; *hasResultType = true; break; 1881 case Op::OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; 1882 case Op::OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; 1883 case Op::OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; 1884 case Op::OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; 1885 case Op::OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; 1886 case Op::OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; 1887 case Op::OpEnqueueMarker: *hasResult = true; *hasResultType = true; break; 1888 case Op::OpEnqueueKernel: *hasResult = true; *hasResultType = true; break; 1889 case Op::OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; 1890 case Op::OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; 1891 case Op::OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; 1892 case Op::OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; 1893 case Op::OpRetainEvent: *hasResult = false; *hasResultType = false; break; 1894 case Op::OpReleaseEvent: *hasResult = false; *hasResultType = false; break; 1895 case Op::OpCreateUserEvent: *hasResult = true; *hasResultType = true; break; 1896 case Op::OpIsValidEvent: *hasResult = true; *hasResultType = true; break; 1897 case Op::OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; 1898 case Op::OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; 1899 case Op::OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; 1900 case Op::OpBuildNDRange: *hasResult = true; *hasResultType = true; break; 1901 case Op::OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; 1902 case Op::OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; 1903 case Op::OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; 1904 case Op::OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; 1905 case Op::OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; 1906 case Op::OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; 1907 case Op::OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; 1908 case Op::OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; 1909 case Op::OpImageSparseFetch: *hasResult = true; *hasResultType = true; break; 1910 case Op::OpImageSparseGather: *hasResult = true; *hasResultType = true; break; 1911 case Op::OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; 1912 case Op::OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; 1913 case Op::OpNoLine: *hasResult = false; *hasResultType = false; break; 1914 case Op::OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; 1915 case Op::OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; 1916 case Op::OpImageSparseRead: *hasResult = true; *hasResultType = true; break; 1917 case Op::OpSizeOf: *hasResult = true; *hasResultType = true; break; 1918 case Op::OpTypePipeStorage: *hasResult = true; *hasResultType = false; break; 1919 case Op::OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; 1920 case Op::OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; 1921 case Op::OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; 1922 case Op::OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; 1923 case Op::OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; 1924 case Op::OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; 1925 case Op::OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; 1926 case Op::OpModuleProcessed: *hasResult = false; *hasResultType = false; break; 1927 case Op::OpExecutionModeId: *hasResult = false; *hasResultType = false; break; 1928 case Op::OpDecorateId: *hasResult = false; *hasResultType = false; break; 1929 case Op::OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; 1930 case Op::OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; 1931 case Op::OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; 1932 case Op::OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; 1933 case Op::OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; 1934 case Op::OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; 1935 case Op::OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; 1936 case Op::OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; 1937 case Op::OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; 1938 case Op::OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; 1939 case Op::OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; 1940 case Op::OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; 1941 case Op::OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; 1942 case Op::OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; 1943 case Op::OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; 1944 case Op::OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; 1945 case Op::OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; 1946 case Op::OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; 1947 case Op::OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; 1948 case Op::OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; 1949 case Op::OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; 1950 case Op::OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; 1951 case Op::OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; 1952 case Op::OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; 1953 case Op::OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; 1954 case Op::OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; 1955 case Op::OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; 1956 case Op::OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; 1957 case Op::OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; 1958 case Op::OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; 1959 case Op::OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; 1960 case Op::OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; 1961 case Op::OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; 1962 case Op::OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; 1963 case Op::OpCopyLogical: *hasResult = true; *hasResultType = true; break; 1964 case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break; 1965 case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; 1966 case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break; 1967 case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break; 1968 case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; 1969 case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; 1970 case Op::OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; 1971 case Op::OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; 1972 case Op::OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; 1973 case Op::OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; 1974 case Op::OpTraceRayKHR: *hasResult = false; *hasResultType = false; break; 1975 case Op::OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; 1976 case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; 1977 case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break; 1978 case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break; 1979 case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; 1980 case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; 1981 case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; 1982 case Op::OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break; 1983 case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; 1984 case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; 1985 case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; 1986 case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; 1987 case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; 1988 case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; 1989 case Op::OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; 1990 case Op::OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; 1991 case Op::OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; 1992 case Op::OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; 1993 case Op::OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; 1994 case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; 1995 case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; 1996 case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break; 1997 case Op::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; 1998 case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; 1999 case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; 2000 case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; 2001 case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; 2002 case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; 2003 case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break; 2004 case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; 2005 case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; 2006 case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; 2007 case Op::OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; 2008 case Op::OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; 2009 case Op::OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; 2010 case Op::OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; 2011 case Op::OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; 2012 case Op::OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; 2013 case Op::OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break; 2014 case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; 2015 case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; 2016 case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; 2017 case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; 2018 case Op::OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; 2019 case Op::OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; 2020 case Op::OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; 2021 case Op::OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; 2022 case Op::OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; 2023 case Op::OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; 2024 case Op::OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; 2025 case Op::OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; 2026 case Op::OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; 2027 case Op::OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; 2028 case Op::OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; 2029 case Op::OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; 2030 case Op::OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; 2031 case Op::OpIAverageINTEL: *hasResult = true; *hasResultType = true; break; 2032 case Op::OpUAverageINTEL: *hasResult = true; *hasResultType = true; break; 2033 case Op::OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; 2034 case Op::OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; 2035 case Op::OpISubSatINTEL: *hasResult = true; *hasResultType = true; break; 2036 case Op::OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; 2037 case Op::OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; 2038 case Op::OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; 2039 case Op::OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; 2040 case Op::OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; 2041 case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break; 2042 case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; 2043 case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; 2044 case Op::OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; 2045 case Op::OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; 2046 case Op::OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; 2047 case Op::OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; 2048 case Op::OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; 2049 case Op::OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; 2050 case Op::OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; 2051 case Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; 2052 case Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; 2053 case Op::OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; 2054 case Op::OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; 2055 case Op::OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; 2056 case Op::OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; 2057 case Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2058 case Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2059 case Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2060 case Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2061 case Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2062 case Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2063 case Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2064 case Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; 2065 case Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; 2066 case Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; 2067 case Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; 2068 case Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; 2069 case Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2070 case Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2071 case Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2072 case Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; 2073 case Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; 2074 case Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; 2075 case Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; 2076 case Op::OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; 2077 case Op::OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; 2078 case Op::OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; 2079 case Op::OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; 2080 case Op::OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; 2081 case Op::OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; 2082 case Op::OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; 2083 case Op::OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; 2084 case Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; 2085 case Op::OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; 2086 case Op::OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; 2087 case Op::OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; 2088 case Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; 2089 case Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; 2090 case Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; 2091 case Op::OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; 2092 case Op::OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2093 case Op::OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2094 case Op::OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; 2095 case Op::OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; 2096 case Op::OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; 2097 case Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; 2098 case Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; 2099 case Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; 2100 case Op::OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; 2101 case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2102 case Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2103 case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; 2104 case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; 2105 case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; 2106 case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; 2107 case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; 2108 case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; 2109 case Op::OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; 2110 case Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; 2111 case Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; 2112 case Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; 2113 case Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; 2114 case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; 2115 case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; 2116 case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; 2117 case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; 2118 case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; 2119 case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; 2120 case Op::OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; 2121 case Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; 2122 case Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; 2123 case Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; 2124 case Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; 2125 case Op::OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; 2126 case Op::OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; 2127 case Op::OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; 2128 case Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; 2129 case Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; 2130 case Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2131 case Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2132 case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2133 case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; 2134 case Op::OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; 2135 case Op::OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; 2136 case Op::OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; 2137 case Op::OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; 2138 case Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; 2139 case Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; 2140 case Op::OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; 2141 case Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2142 case Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; 2143 case Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; 2144 case Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; 2145 case Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; 2146 case Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; 2147 case Op::OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; 2148 case Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2149 case Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2150 case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2151 case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; 2152 case Op::OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; 2153 case Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; 2154 case Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; 2155 case Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; 2156 case Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; 2157 case Op::OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; 2158 case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; 2159 case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; 2160 case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; 2161 case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break; 2162 case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; 2163 case Op::OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; 2164 case Op::OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; 2165 case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; 2166 case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; 2167 case Op::OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break; 2168 case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break; 2169 case Op::OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break; 2170 case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break; 2171 case Op::OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break; 2172 case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break; 2173 case Op::OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break; 2174 case Op::OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break; 2175 case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break; 2176 case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break; 2177 case Op::OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break; 2178 case Op::OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break; 2179 case Op::OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break; 2180 case Op::OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break; 2181 case Op::OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break; 2182 case Op::OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break; 2183 } 2184} 2185#endif /* SPV_ENABLE_UTILITY_CODE */ 2186 2187// Overload operator| for mask bit combining 2188 2189inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } 2190inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } 2191inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } 2192inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } 2193inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } 2194inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } 2195inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } 2196inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } 2197inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } 2198inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); } 2199 2200} // end namespace spv 2201 2202#endif // #ifndef spirv_HPP 2203 2204