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