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