rpcsx/hw/amdgpu/lib/libspirv/include/spirv/spirv.hpp
2023-07-06 21:37:30 +01:00

4969 lines
129 KiB
C++

// Copyright (c) 2014-2020 The Khronos Group Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and/or associated documentation files (the "Materials"),
// to deal in the Materials without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Materials, and to permit persons to whom the
// Materials are furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Materials.
//
// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
//
// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
// IN THE MATERIALS.
// This header is automatically generated by the same tool that creates
// the Binary Section of the SPIR-V specification.
// Enumeration tokens for SPIR-V, in various styles:
// C, C++, C++11, JSON, Lua, Python, C#, D, Beef
//
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
// - C++11 will use enum classes in the spv namespace, e.g.:
// spv::SourceLanguage::GLSL
// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
// - C# will use enum classes in the Specification class located in the "Spv"
// namespace,
// e.g.: Spv.Specification.SourceLanguage.GLSL
// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
// - Beef will use enum classes in the Specification class located in the "Spv"
// namespace,
// e.g.: Spv.Specification.SourceLanguage.GLSL
//
// Some tokens act like mask values, which can be OR'd together,
// while others are mutually exclusive. The mask-like ones have
// "Mask" in their name, and a parallel enum that has the shift
// amount (1 << x) for each corresponding enumerant.
#ifndef spirv_HPP
#define spirv_HPP
namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10600
#define SPV_REVISION 1
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010600;
static const unsigned int Revision = 1;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
enum class SourceLanguage : unsigned {
Unknown = 0,
ESSL = 1,
GLSL = 2,
OpenCL_C = 3,
OpenCL_CPP = 4,
HLSL = 5,
CPP_for_OpenCL = 6,
SYCL = 7,
HERO_C = 8,
Max = 0x7fffffff,
};
enum class ExecutionModel : unsigned {
Vertex = 0,
TessellationControl = 1,
TessellationEvaluation = 2,
Geometry = 3,
Fragment = 4,
GLCompute = 5,
Kernel = 6,
TaskNV = 5267,
MeshNV = 5268,
RayGenerationKHR = 5313,
RayGenerationNV = 5313,
IntersectionKHR = 5314,
IntersectionNV = 5314,
AnyHitKHR = 5315,
AnyHitNV = 5315,
ClosestHitKHR = 5316,
ClosestHitNV = 5316,
MissKHR = 5317,
MissNV = 5317,
CallableKHR = 5318,
CallableNV = 5318,
TaskEXT = 5364,
MeshEXT = 5365,
Max = 0x7fffffff,
};
enum class AddressingModel : unsigned {
Logical = 0,
Physical32 = 1,
Physical64 = 2,
PhysicalStorageBuffer64 = 5348,
PhysicalStorageBuffer64EXT = 5348,
Max = 0x7fffffff,
};
enum class MemoryModel : unsigned {
Simple = 0,
GLSL450 = 1,
OpenCL = 2,
Vulkan = 3,
VulkanKHR = 3,
Max = 0x7fffffff,
};
enum class ExecutionMode : unsigned {
Invocations = 0,
SpacingEqual = 1,
SpacingFractionalEven = 2,
SpacingFractionalOdd = 3,
VertexOrderCw = 4,
VertexOrderCcw = 5,
PixelCenterInteger = 6,
OriginUpperLeft = 7,
OriginLowerLeft = 8,
EarlyFragmentTests = 9,
PointMode = 10,
Xfb = 11,
DepthReplacing = 12,
DepthGreater = 14,
DepthLess = 15,
DepthUnchanged = 16,
LocalSize = 17,
LocalSizeHint = 18,
InputPoints = 19,
InputLines = 20,
InputLinesAdjacency = 21,
Triangles = 22,
InputTrianglesAdjacency = 23,
Quads = 24,
Isolines = 25,
OutputVertices = 26,
OutputPoints = 27,
OutputLineStrip = 28,
OutputTriangleStrip = 29,
VecTypeHint = 30,
ContractionOff = 31,
Initializer = 33,
Finalizer = 34,
SubgroupSize = 35,
SubgroupsPerWorkgroup = 36,
SubgroupsPerWorkgroupId = 37,
LocalSizeId = 38,
LocalSizeHintId = 39,
NonCoherentColorAttachmentReadEXT = 4169,
NonCoherentDepthAttachmentReadEXT = 4170,
NonCoherentStencilAttachmentReadEXT = 4171,
SubgroupUniformControlFlowKHR = 4421,
PostDepthCoverage = 4446,
DenormPreserve = 4459,
DenormFlushToZero = 4460,
SignedZeroInfNanPreserve = 4461,
RoundingModeRTE = 4462,
RoundingModeRTZ = 4463,
EarlyAndLateFragmentTestsAMD = 5017,
StencilRefReplacingEXT = 5027,
StencilRefUnchangedFrontAMD = 5079,
StencilRefGreaterFrontAMD = 5080,
StencilRefLessFrontAMD = 5081,
StencilRefUnchangedBackAMD = 5082,
StencilRefGreaterBackAMD = 5083,
StencilRefLessBackAMD = 5084,
OutputLinesEXT = 5269,
OutputLinesNV = 5269,
OutputPrimitivesEXT = 5270,
OutputPrimitivesNV = 5270,
DerivativeGroupQuadsNV = 5289,
DerivativeGroupLinearNV = 5290,
OutputTrianglesEXT = 5298,
OutputTrianglesNV = 5298,
PixelInterlockOrderedEXT = 5366,
PixelInterlockUnorderedEXT = 5367,
SampleInterlockOrderedEXT = 5368,
SampleInterlockUnorderedEXT = 5369,
ShadingRateInterlockOrderedEXT = 5370,
ShadingRateInterlockUnorderedEXT = 5371,
SharedLocalMemorySizeINTEL = 5618,
RoundingModeRTPINTEL = 5620,
RoundingModeRTNINTEL = 5621,
FloatingPointModeALTINTEL = 5622,
FloatingPointModeIEEEINTEL = 5623,
MaxWorkgroupSizeINTEL = 5893,
MaxWorkDimINTEL = 5894,
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
SchedulerTargetFmaxMhzINTEL = 5903,
StreamingInterfaceINTEL = 6154,
RegisterMapInterfaceINTEL = 6160,
NamedBarrierCountINTEL = 6417,
Max = 0x7fffffff,
};
enum class StorageClass : unsigned {
UniformConstant = 0,
Input = 1,
Uniform = 2,
Output = 3,
Workgroup = 4,
CrossWorkgroup = 5,
Private = 6,
Function = 7,
Generic = 8,
PushConstant = 9,
AtomicCounter = 10,
Image = 11,
StorageBuffer = 12,
TileImageEXT = 4172,
CallableDataKHR = 5328,
CallableDataNV = 5328,
IncomingCallableDataKHR = 5329,
IncomingCallableDataNV = 5329,
RayPayloadKHR = 5338,
RayPayloadNV = 5338,
HitAttributeKHR = 5339,
HitAttributeNV = 5339,
IncomingRayPayloadKHR = 5342,
IncomingRayPayloadNV = 5342,
ShaderRecordBufferKHR = 5343,
ShaderRecordBufferNV = 5343,
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
HitObjectAttributeNV = 5385,
TaskPayloadWorkgroupEXT = 5402,
CodeSectionINTEL = 5605,
DeviceOnlyINTEL = 5936,
HostOnlyINTEL = 5937,
Max = 0x7fffffff,
};
enum class Dim : unsigned {
Dim1D = 0,
Dim2D = 1,
Dim3D = 2,
Cube = 3,
Rect = 4,
Buffer = 5,
SubpassData = 6,
TileImageDataEXT = 4173,
Max = 0x7fffffff,
};
enum class SamplerAddressingMode : unsigned {
None = 0,
ClampToEdge = 1,
Clamp = 2,
Repeat = 3,
RepeatMirrored = 4,
Max = 0x7fffffff,
};
enum class SamplerFilterMode : unsigned {
Nearest = 0,
Linear = 1,
Max = 0x7fffffff,
};
enum class ImageFormat : unsigned {
Unknown = 0,
Rgba32f = 1,
Rgba16f = 2,
R32f = 3,
Rgba8 = 4,
Rgba8Snorm = 5,
Rg32f = 6,
Rg16f = 7,
R11fG11fB10f = 8,
R16f = 9,
Rgba16 = 10,
Rgb10A2 = 11,
Rg16 = 12,
Rg8 = 13,
R16 = 14,
R8 = 15,
Rgba16Snorm = 16,
Rg16Snorm = 17,
Rg8Snorm = 18,
R16Snorm = 19,
R8Snorm = 20,
Rgba32i = 21,
Rgba16i = 22,
Rgba8i = 23,
R32i = 24,
Rg32i = 25,
Rg16i = 26,
Rg8i = 27,
R16i = 28,
R8i = 29,
Rgba32ui = 30,
Rgba16ui = 31,
Rgba8ui = 32,
R32ui = 33,
Rgb10a2ui = 34,
Rg32ui = 35,
Rg16ui = 36,
Rg8ui = 37,
R16ui = 38,
R8ui = 39,
R64ui = 40,
R64i = 41,
Max = 0x7fffffff,
};
enum class ImageChannelOrder : unsigned {
R = 0,
A = 1,
RG = 2,
RA = 3,
RGB = 4,
RGBA = 5,
BGRA = 6,
ARGB = 7,
Intensity = 8,
Luminance = 9,
Rx = 10,
RGx = 11,
RGBx = 12,
Depth = 13,
DepthStencil = 14,
sRGB = 15,
sRGBx = 16,
sRGBA = 17,
sBGRA = 18,
ABGR = 19,
Max = 0x7fffffff,
};
enum class ImageChannelDataType : unsigned {
SnormInt8 = 0,
SnormInt16 = 1,
UnormInt8 = 2,
UnormInt16 = 3,
UnormShort565 = 4,
UnormShort555 = 5,
UnormInt101010 = 6,
SignedInt8 = 7,
SignedInt16 = 8,
SignedInt32 = 9,
UnsignedInt8 = 10,
UnsignedInt16 = 11,
UnsignedInt32 = 12,
HalfFloat = 13,
Float = 14,
UnormInt24 = 15,
UnormInt101010_2 = 16,
Max = 0x7fffffff,
};
enum class ImageOperandsShift : unsigned {
Bias = 0,
Lod = 1,
Grad = 2,
ConstOffset = 3,
Offset = 4,
ConstOffsets = 5,
Sample = 6,
MinLod = 7,
MakeTexelAvailable = 8,
MakeTexelAvailableKHR = 8,
MakeTexelVisible = 9,
MakeTexelVisibleKHR = 9,
NonPrivateTexel = 10,
NonPrivateTexelKHR = 10,
VolatileTexel = 11,
VolatileTexelKHR = 11,
SignExtend = 12,
ZeroExtend = 13,
Nontemporal = 14,
Offsets = 16,
Max = 0x7fffffff,
};
enum class ImageOperandsMask : unsigned {
MaskNone = 0,
Bias = 0x00000001,
Lod = 0x00000002,
Grad = 0x00000004,
ConstOffset = 0x00000008,
Offset = 0x00000010,
ConstOffsets = 0x00000020,
Sample = 0x00000040,
MinLod = 0x00000080,
MakeTexelAvailable = 0x00000100,
MakeTexelAvailableKHR = 0x00000100,
MakeTexelVisible = 0x00000200,
MakeTexelVisibleKHR = 0x00000200,
NonPrivateTexel = 0x00000400,
NonPrivateTexelKHR = 0x00000400,
VolatileTexel = 0x00000800,
VolatileTexelKHR = 0x00000800,
SignExtend = 0x00001000,
ZeroExtend = 0x00002000,
Nontemporal = 0x00004000,
Offsets = 0x00010000,
};
enum class FPFastMathModeShift : unsigned {
NotNaN = 0,
NotInf = 1,
NSZ = 2,
AllowRecip = 3,
Fast = 4,
AllowContractFastINTEL = 16,
AllowReassocINTEL = 17,
Max = 0x7fffffff,
};
enum class FPFastMathModeMask : unsigned {
MaskNone = 0,
NotNaN = 0x00000001,
NotInf = 0x00000002,
NSZ = 0x00000004,
AllowRecip = 0x00000008,
Fast = 0x00000010,
AllowContractFastINTEL = 0x00010000,
AllowReassocINTEL = 0x00020000,
};
enum class FPRoundingMode : unsigned {
RTE = 0,
RTZ = 1,
RTP = 2,
RTN = 3,
Max = 0x7fffffff,
};
enum class LinkageType : unsigned {
Export = 0,
Import = 1,
LinkOnceODR = 2,
Max = 0x7fffffff,
};
enum class AccessQualifier : unsigned {
ReadOnly = 0,
WriteOnly = 1,
ReadWrite = 2,
Max = 0x7fffffff,
};
enum class FunctionParameterAttribute : unsigned {
Zext = 0,
Sext = 1,
ByVal = 2,
Sret = 3,
NoAlias = 4,
NoCapture = 5,
NoWrite = 6,
NoReadWrite = 7,
RuntimeAlignedINTEL = 5940,
Max = 0x7fffffff,
};
enum class Decoration : unsigned {
RelaxedPrecision = 0,
SpecId = 1,
Block = 2,
BufferBlock = 3,
RowMajor = 4,
ColMajor = 5,
ArrayStride = 6,
MatrixStride = 7,
GLSLShared = 8,
GLSLPacked = 9,
CPacked = 10,
BuiltIn = 11,
NoPerspective = 13,
Flat = 14,
Patch = 15,
Centroid = 16,
Sample = 17,
Invariant = 18,
Restrict = 19,
Aliased = 20,
Volatile = 21,
Constant = 22,
Coherent = 23,
NonWritable = 24,
NonReadable = 25,
Uniform = 26,
UniformId = 27,
SaturatedConversion = 28,
Stream = 29,
Location = 30,
Component = 31,
Index = 32,
Binding = 33,
DescriptorSet = 34,
Offset = 35,
XfbBuffer = 36,
XfbStride = 37,
FuncParamAttr = 38,
FPRoundingMode = 39,
FPFastMathMode = 40,
LinkageAttributes = 41,
NoContraction = 42,
InputAttachmentIndex = 43,
Alignment = 44,
MaxByteOffset = 45,
AlignmentId = 46,
MaxByteOffsetId = 47,
NoSignedWrap = 4469,
NoUnsignedWrap = 4470,
WeightTextureQCOM = 4487,
BlockMatchTextureQCOM = 4488,
ExplicitInterpAMD = 4999,
OverrideCoverageNV = 5248,
PassthroughNV = 5250,
ViewportRelativeNV = 5252,
SecondaryViewportRelativeNV = 5256,
PerPrimitiveEXT = 5271,
PerPrimitiveNV = 5271,
PerViewNV = 5272,
PerTaskNV = 5273,
PerVertexKHR = 5285,
PerVertexNV = 5285,
NonUniform = 5300,
NonUniformEXT = 5300,
RestrictPointer = 5355,
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
HitObjectShaderRecordBufferNV = 5386,
BindlessSamplerNV = 5398,
BindlessImageNV = 5399,
BoundSamplerNV = 5400,
BoundImageNV = 5401,
SIMTCallINTEL = 5599,
ReferencedIndirectlyINTEL = 5602,
ClobberINTEL = 5607,
SideEffectsINTEL = 5608,
VectorComputeVariableINTEL = 5624,
FuncParamIOKindINTEL = 5625,
VectorComputeFunctionINTEL = 5626,
StackCallINTEL = 5627,
GlobalVariableOffsetINTEL = 5628,
CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
UserSemantic = 5635,
UserTypeGOOGLE = 5636,
FunctionRoundingModeINTEL = 5822,
FunctionDenormModeINTEL = 5823,
RegisterINTEL = 5825,
MemoryINTEL = 5826,
NumbanksINTEL = 5827,
BankwidthINTEL = 5828,
MaxPrivateCopiesINTEL = 5829,
SinglepumpINTEL = 5830,
DoublepumpINTEL = 5831,
MaxReplicatesINTEL = 5832,
SimpleDualPortINTEL = 5833,
MergeINTEL = 5834,
BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836,
BurstCoalesceINTEL = 5899,
CacheSizeINTEL = 5900,
DontStaticallyCoalesceINTEL = 5901,
PrefetchINTEL = 5902,
StallEnableINTEL = 5905,
FuseLoopsInFunctionINTEL = 5907,
MathOpDSPModeINTEL = 5909,
AliasScopeINTEL = 5914,
NoAliasINTEL = 5915,
InitiationIntervalINTEL = 5917,
MaxConcurrencyINTEL = 5918,
PipelineEnableINTEL = 5919,
BufferLocationINTEL = 5921,
IOPipeStorageINTEL = 5944,
FunctionFloatingPointModeINTEL = 6080,
SingleElementVectorINTEL = 6085,
VectorComputeCallableFunctionINTEL = 6087,
MediaBlockIOINTEL = 6140,
LatencyControlLabelINTEL = 6172,
LatencyControlConstraintINTEL = 6173,
ConduitKernelArgumentINTEL = 6175,
RegisterMapKernelArgumentINTEL = 6176,
MMHostInterfaceAddressWidthINTEL = 6177,
MMHostInterfaceDataWidthINTEL = 6178,
MMHostInterfaceLatencyINTEL = 6179,
MMHostInterfaceReadWriteModeINTEL = 6180,
MMHostInterfaceMaxBurstINTEL = 6181,
MMHostInterfaceWaitRequestINTEL = 6182,
StableKernelArgumentINTEL = 6183,
Max = 0x7fffffff,
};
enum class BuiltIn : unsigned {
Position = 0,
PointSize = 1,
ClipDistance = 3,
CullDistance = 4,
VertexId = 5,
InstanceId = 6,
PrimitiveId = 7,
InvocationId = 8,
Layer = 9,
ViewportIndex = 10,
TessLevelOuter = 11,
TessLevelInner = 12,
TessCoord = 13,
PatchVertices = 14,
FragCoord = 15,
PointCoord = 16,
FrontFacing = 17,
SampleId = 18,
SamplePosition = 19,
SampleMask = 20,
FragDepth = 22,
HelperInvocation = 23,
NumWorkgroups = 24,
WorkgroupSize = 25,
WorkgroupId = 26,
LocalInvocationId = 27,
GlobalInvocationId = 28,
LocalInvocationIndex = 29,
WorkDim = 30,
GlobalSize = 31,
EnqueuedWorkgroupSize = 32,
GlobalOffset = 33,
GlobalLinearId = 34,
SubgroupSize = 36,
SubgroupMaxSize = 37,
NumSubgroups = 38,
NumEnqueuedSubgroups = 39,
SubgroupId = 40,
SubgroupLocalInvocationId = 41,
VertexIndex = 42,
InstanceIndex = 43,
CoreIDARM = 4160,
CoreCountARM = 4161,
CoreMaxIDARM = 4162,
WarpIDARM = 4163,
WarpMaxIDARM = 4164,
SubgroupEqMask = 4416,
SubgroupEqMaskKHR = 4416,
SubgroupGeMask = 4417,
SubgroupGeMaskKHR = 4417,
SubgroupGtMask = 4418,
SubgroupGtMaskKHR = 4418,
SubgroupLeMask = 4419,
SubgroupLeMaskKHR = 4419,
SubgroupLtMask = 4420,
SubgroupLtMaskKHR = 4420,
BaseVertex = 4424,
BaseInstance = 4425,
DrawIndex = 4426,
PrimitiveShadingRateKHR = 4432,
DeviceIndex = 4438,
ViewIndex = 4440,
ShadingRateKHR = 4444,
BaryCoordNoPerspAMD = 4992,
BaryCoordNoPerspCentroidAMD = 4993,
BaryCoordNoPerspSampleAMD = 4994,
BaryCoordSmoothAMD = 4995,
BaryCoordSmoothCentroidAMD = 4996,
BaryCoordSmoothSampleAMD = 4997,
BaryCoordPullModelAMD = 4998,
FragStencilRefEXT = 5014,
ViewportMaskNV = 5253,
SecondaryPositionNV = 5257,
SecondaryViewportMaskNV = 5258,
PositionPerViewNV = 5261,
ViewportMaskPerViewNV = 5262,
FullyCoveredEXT = 5264,
TaskCountNV = 5274,
PrimitiveCountNV = 5275,
PrimitiveIndicesNV = 5276,
ClipDistancePerViewNV = 5277,
CullDistancePerViewNV = 5278,
LayerPerViewNV = 5279,
MeshViewCountNV = 5280,
MeshViewIndicesNV = 5281,
BaryCoordKHR = 5286,
BaryCoordNV = 5286,
BaryCoordNoPerspKHR = 5287,
BaryCoordNoPerspNV = 5287,
FragSizeEXT = 5292,
FragmentSizeNV = 5292,
FragInvocationCountEXT = 5293,
InvocationsPerPixelNV = 5293,
PrimitivePointIndicesEXT = 5294,
PrimitiveLineIndicesEXT = 5295,
PrimitiveTriangleIndicesEXT = 5296,
CullPrimitiveEXT = 5299,
LaunchIdKHR = 5319,
LaunchIdNV = 5319,
LaunchSizeKHR = 5320,
LaunchSizeNV = 5320,
WorldRayOriginKHR = 5321,
WorldRayOriginNV = 5321,
WorldRayDirectionKHR = 5322,
WorldRayDirectionNV = 5322,
ObjectRayOriginKHR = 5323,
ObjectRayOriginNV = 5323,
ObjectRayDirectionKHR = 5324,
ObjectRayDirectionNV = 5324,
RayTminKHR = 5325,
RayTminNV = 5325,
RayTmaxKHR = 5326,
RayTmaxNV = 5326,
InstanceCustomIndexKHR = 5327,
InstanceCustomIndexNV = 5327,
ObjectToWorldKHR = 5330,
ObjectToWorldNV = 5330,
WorldToObjectKHR = 5331,
WorldToObjectNV = 5331,
HitTNV = 5332,
HitKindKHR = 5333,
HitKindNV = 5333,
CurrentRayTimeNV = 5334,
HitTriangleVertexPositionsKHR = 5335,
IncomingRayFlagsKHR = 5351,
IncomingRayFlagsNV = 5351,
RayGeometryIndexKHR = 5352,
WarpsPerSMNV = 5374,
SMCountNV = 5375,
WarpIDNV = 5376,
SMIDNV = 5377,
CullMaskKHR = 6021,
Max = 0x7fffffff,
};
enum class SelectionControlShift : unsigned {
Flatten = 0,
DontFlatten = 1,
Max = 0x7fffffff,
};
enum class SelectionControlMask : unsigned {
MaskNone = 0,
Flatten = 0x00000001,
DontFlatten = 0x00000002,
};
enum class LoopControlShift : unsigned {
Unroll = 0,
DontUnroll = 1,
DependencyInfinite = 2,
DependencyLength = 3,
MinIterations = 4,
MaxIterations = 5,
IterationMultiple = 6,
PeelCount = 7,
PartialCount = 8,
InitiationIntervalINTEL = 16,
MaxConcurrencyINTEL = 17,
DependencyArrayINTEL = 18,
PipelineEnableINTEL = 19,
LoopCoalesceINTEL = 20,
MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22,
NoFusionINTEL = 23,
LoopCountINTEL = 24,
MaxReinvocationDelayINTEL = 25,
Max = 0x7fffffff,
};
enum class LoopControlMask : unsigned {
MaskNone = 0,
Unroll = 0x00000001,
DontUnroll = 0x00000002,
DependencyInfinite = 0x00000004,
DependencyLength = 0x00000008,
MinIterations = 0x00000010,
MaxIterations = 0x00000020,
IterationMultiple = 0x00000040,
PeelCount = 0x00000080,
PartialCount = 0x00000100,
InitiationIntervalINTEL = 0x00010000,
MaxConcurrencyINTEL = 0x00020000,
DependencyArrayINTEL = 0x00040000,
PipelineEnableINTEL = 0x00080000,
LoopCoalesceINTEL = 0x00100000,
MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000,
NoFusionINTEL = 0x00800000,
LoopCountINTEL = 0x01000000,
MaxReinvocationDelayINTEL = 0x02000000,
};
enum class FunctionControlShift : unsigned {
Inline = 0,
DontInline = 1,
Pure = 2,
Const = 3,
OptNoneINTEL = 16,
Max = 0x7fffffff,
};
enum class FunctionControlMask : unsigned {
MaskNone = 0,
Inline = 0x00000001,
DontInline = 0x00000002,
Pure = 0x00000004,
Const = 0x00000008,
OptNoneINTEL = 0x00010000,
};
enum class MemorySemanticsShift : unsigned {
Acquire = 1,
Release = 2,
AcquireRelease = 3,
SequentiallyConsistent = 4,
UniformMemory = 6,
SubgroupMemory = 7,
WorkgroupMemory = 8,
CrossWorkgroupMemory = 9,
AtomicCounterMemory = 10,
ImageMemory = 11,
OutputMemory = 12,
OutputMemoryKHR = 12,
MakeAvailable = 13,
MakeAvailableKHR = 13,
MakeVisible = 14,
MakeVisibleKHR = 14,
Volatile = 15,
Max = 0x7fffffff,
};
enum class MemorySemanticsMask : unsigned {
MaskNone = 0,
Acquire = 0x00000002,
Release = 0x00000004,
AcquireRelease = 0x00000008,
SequentiallyConsistent = 0x00000010,
UniformMemory = 0x00000040,
SubgroupMemory = 0x00000080,
WorkgroupMemory = 0x00000100,
CrossWorkgroupMemory = 0x00000200,
AtomicCounterMemory = 0x00000400,
ImageMemory = 0x00000800,
OutputMemory = 0x00001000,
OutputMemoryKHR = 0x00001000,
MakeAvailable = 0x00002000,
MakeAvailableKHR = 0x00002000,
MakeVisible = 0x00004000,
MakeVisibleKHR = 0x00004000,
Volatile = 0x00008000,
};
enum class MemoryAccessShift : unsigned {
Volatile = 0,
Aligned = 1,
Nontemporal = 2,
MakePointerAvailable = 3,
MakePointerAvailableKHR = 3,
MakePointerVisible = 4,
MakePointerVisibleKHR = 4,
NonPrivatePointer = 5,
NonPrivatePointerKHR = 5,
AliasScopeINTELMask = 16,
NoAliasINTELMask = 17,
Max = 0x7fffffff,
};
enum class MemoryAccessMask : unsigned {
MaskNone = 0,
Volatile = 0x00000001,
Aligned = 0x00000002,
Nontemporal = 0x00000004,
MakePointerAvailable = 0x00000008,
MakePointerAvailableKHR = 0x00000008,
MakePointerVisible = 0x00000010,
MakePointerVisibleKHR = 0x00000010,
NonPrivatePointer = 0x00000020,
NonPrivatePointerKHR = 0x00000020,
AliasScopeINTELMask = 0x00010000,
NoAliasINTELMask = 0x00020000,
};
enum class Scope : unsigned {
CrossDevice = 0,
Device = 1,
Workgroup = 2,
Subgroup = 3,
Invocation = 4,
QueueFamily = 5,
QueueFamilyKHR = 5,
ShaderCallKHR = 6,
Max = 0x7fffffff,
};
enum class GroupOperation : unsigned {
Reduce = 0,
InclusiveScan = 1,
ExclusiveScan = 2,
ClusteredReduce = 3,
PartitionedReduceNV = 6,
PartitionedInclusiveScanNV = 7,
PartitionedExclusiveScanNV = 8,
Max = 0x7fffffff,
};
enum class KernelEnqueueFlags : unsigned {
NoWait = 0,
WaitKernel = 1,
WaitWorkGroup = 2,
Max = 0x7fffffff,
};
enum class KernelProfilingInfoShift : unsigned {
CmdExecTime = 0,
Max = 0x7fffffff,
};
enum class KernelProfilingInfoMask : unsigned {
MaskNone = 0,
CmdExecTime = 0x00000001,
};
enum class Capability : unsigned {
Matrix = 0,
Shader = 1,
Geometry = 2,
Tessellation = 3,
Addresses = 4,
Linkage = 5,
Kernel = 6,
Vector16 = 7,
Float16Buffer = 8,
Float16 = 9,
Float64 = 10,
Int64 = 11,
Int64Atomics = 12,
ImageBasic = 13,
ImageReadWrite = 14,
ImageMipmap = 15,
Pipes = 17,
Groups = 18,
DeviceEnqueue = 19,
LiteralSampler = 20,
AtomicStorage = 21,
Int16 = 22,
TessellationPointSize = 23,
GeometryPointSize = 24,
ImageGatherExtended = 25,
StorageImageMultisample = 27,
UniformBufferArrayDynamicIndexing = 28,
SampledImageArrayDynamicIndexing = 29,
StorageBufferArrayDynamicIndexing = 30,
StorageImageArrayDynamicIndexing = 31,
ClipDistance = 32,
CullDistance = 33,
ImageCubeArray = 34,
SampleRateShading = 35,
ImageRect = 36,
SampledRect = 37,
GenericPointer = 38,
Int8 = 39,
InputAttachment = 40,
SparseResidency = 41,
MinLod = 42,
Sampled1D = 43,
Image1D = 44,
SampledCubeArray = 45,
SampledBuffer = 46,
ImageBuffer = 47,
ImageMSArray = 48,
StorageImageExtendedFormats = 49,
ImageQuery = 50,
DerivativeControl = 51,
InterpolationFunction = 52,
TransformFeedback = 53,
GeometryStreams = 54,
StorageImageReadWithoutFormat = 55,
StorageImageWriteWithoutFormat = 56,
MultiViewport = 57,
SubgroupDispatch = 58,
NamedBarrier = 59,
PipeStorage = 60,
GroupNonUniform = 61,
GroupNonUniformVote = 62,
GroupNonUniformArithmetic = 63,
GroupNonUniformBallot = 64,
GroupNonUniformShuffle = 65,
GroupNonUniformShuffleRelative = 66,
GroupNonUniformClustered = 67,
GroupNonUniformQuad = 68,
ShaderLayer = 69,
ShaderViewportIndex = 70,
UniformDecoration = 71,
CoreBuiltinsARM = 4165,
TileImageColorReadAccessEXT = 4166,
TileImageDepthReadAccessEXT = 4167,
TileImageStencilReadAccessEXT = 4168,
FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
WorkgroupMemoryExplicitLayoutKHR = 4428,
WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SubgroupVoteKHR = 4431,
StorageBuffer16BitAccess = 4433,
StorageUniformBufferBlock16 = 4433,
StorageUniform16 = 4434,
UniformAndStorageBuffer16BitAccess = 4434,
StoragePushConstant16 = 4435,
StorageInputOutput16 = 4436,
DeviceGroup = 4437,
MultiView = 4439,
VariablePointersStorageBuffer = 4441,
VariablePointers = 4442,
AtomicStorageOps = 4445,
SampleMaskPostDepthCoverage = 4447,
StorageBuffer8BitAccess = 4448,
UniformAndStorageBuffer8BitAccess = 4449,
StoragePushConstant8 = 4450,
DenormPreserve = 4464,
DenormFlushToZero = 4465,
SignedZeroInfNanPreserve = 4466,
RoundingModeRTE = 4467,
RoundingModeRTZ = 4468,
RayQueryProvisionalKHR = 4471,
RayQueryKHR = 4472,
RayTraversalPrimitiveCullingKHR = 4478,
RayTracingKHR = 4479,
TextureSampleWeightedQCOM = 4484,
TextureBoxFilterQCOM = 4485,
TextureBlockMatchQCOM = 4486,
Float16ImageAMD = 5008,
ImageGatherBiasLodAMD = 5009,
FragmentMaskAMD = 5010,
StencilExportEXT = 5013,
ImageReadWriteLodAMD = 5015,
Int64ImageEXT = 5016,
ShaderClockKHR = 5055,
SampleMaskOverrideCoverageNV = 5249,
GeometryShaderPassthroughNV = 5251,
ShaderViewportIndexLayerEXT = 5254,
ShaderViewportIndexLayerNV = 5254,
ShaderViewportMaskNV = 5255,
ShaderStereoViewNV = 5259,
PerViewAttributesNV = 5260,
FragmentFullyCoveredEXT = 5265,
MeshShadingNV = 5266,
ImageFootprintNV = 5282,
MeshShadingEXT = 5283,
FragmentBarycentricKHR = 5284,
FragmentBarycentricNV = 5284,
ComputeDerivativeGroupQuadsNV = 5288,
FragmentDensityEXT = 5291,
ShadingRateNV = 5291,
GroupNonUniformPartitionedNV = 5297,
ShaderNonUniform = 5301,
ShaderNonUniformEXT = 5301,
RuntimeDescriptorArray = 5302,
RuntimeDescriptorArrayEXT = 5302,
InputAttachmentArrayDynamicIndexing = 5303,
InputAttachmentArrayDynamicIndexingEXT = 5303,
UniformTexelBufferArrayDynamicIndexing = 5304,
UniformTexelBufferArrayDynamicIndexingEXT = 5304,
StorageTexelBufferArrayDynamicIndexing = 5305,
StorageTexelBufferArrayDynamicIndexingEXT = 5305,
UniformBufferArrayNonUniformIndexing = 5306,
UniformBufferArrayNonUniformIndexingEXT = 5306,
SampledImageArrayNonUniformIndexing = 5307,
SampledImageArrayNonUniformIndexingEXT = 5307,
StorageBufferArrayNonUniformIndexing = 5308,
StorageBufferArrayNonUniformIndexingEXT = 5308,
StorageImageArrayNonUniformIndexing = 5309,
StorageImageArrayNonUniformIndexingEXT = 5309,
InputAttachmentArrayNonUniformIndexing = 5310,
InputAttachmentArrayNonUniformIndexingEXT = 5310,
UniformTexelBufferArrayNonUniformIndexing = 5311,
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
StorageTexelBufferArrayNonUniformIndexing = 5312,
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
RayTracingPositionFetchKHR = 5336,
RayTracingNV = 5340,
RayTracingMotionBlurNV = 5341,
VulkanMemoryModel = 5345,
VulkanMemoryModelKHR = 5345,
VulkanMemoryModelDeviceScope = 5346,
VulkanMemoryModelDeviceScopeKHR = 5346,
PhysicalStorageBufferAddresses = 5347,
PhysicalStorageBufferAddressesEXT = 5347,
ComputeDerivativeGroupLinearNV = 5350,
RayTracingProvisionalKHR = 5353,
CooperativeMatrixNV = 5357,
FragmentShaderSampleInterlockEXT = 5363,
FragmentShaderShadingRateInterlockEXT = 5372,
ShaderSMBuiltinsNV = 5373,
FragmentShaderPixelInterlockEXT = 5378,
DemoteToHelperInvocation = 5379,
DemoteToHelperInvocationEXT = 5379,
RayTracingOpacityMicromapEXT = 5381,
ShaderInvocationReorderNV = 5383,
BindlessTextureNV = 5390,
RayQueryPositionFetchKHR = 5391,
SubgroupShuffleINTEL = 5568,
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
SubgroupImageMediaBlockIOINTEL = 5579,
RoundToInfinityINTEL = 5582,
FloatingPointModeINTEL = 5583,
IntegerFunctions2INTEL = 5584,
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
AtomicFloat32MinMaxEXT = 5612,
AtomicFloat64MinMaxEXT = 5613,
AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
ExpectAssumeKHR = 5629,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
VariableLengthArrayINTEL = 5817,
FunctionFloatControlINTEL = 5821,
FPGAMemoryAttributesINTEL = 5824,
FPFastMathModeINTEL = 5837,
ArbitraryPrecisionIntegersINTEL = 5844,
ArbitraryPrecisionFloatingPointINTEL = 5845,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
FPGAKernelAttributesINTEL = 5897,
FPGAMemoryAccessesINTEL = 5898,
FPGAClusterAttributesINTEL = 5904,
LoopFuseINTEL = 5906,
FPGADSPControlINTEL = 5908,
MemoryAccessAliasingINTEL = 5910,
FPGAInvocationPipeliningAttributesINTEL = 5916,
FPGABufferLocationINTEL = 5920,
ArbitraryPrecisionFixedPointINTEL = 5922,
USMStorageClassesINTEL = 5935,
RuntimeAlignedAttributeINTEL = 5939,
IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
DotProductInputAll = 6016,
DotProductInputAllKHR = 6016,
DotProductInput4x8Bit = 6017,
DotProductInput4x8BitKHR = 6017,
DotProductInput4x8BitPacked = 6018,
DotProductInput4x8BitPackedKHR = 6018,
DotProduct = 6019,
DotProductKHR = 6019,
RayCullMaskKHR = 6020,
BitInstructions = 6025,
GroupNonUniformRotateKHR = 6026,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
LongConstantCompositeINTEL = 6089,
OptNoneINTEL = 6094,
AtomicFloat16AddEXT = 6095,
DebugInfoModuleINTEL = 6114,
BFloat16ConversionINTEL = 6115,
SplitBarrierINTEL = 6141,
FPGAKernelAttributesv2INTEL = 6161,
FPGALatencyControlINTEL = 6171,
FPGAArgumentInterfacesINTEL = 6174,
GroupUniformArithmeticKHR = 6400,
Max = 0x7fffffff,
};
enum class RayFlagsShift : unsigned {
OpaqueKHR = 0,
NoOpaqueKHR = 1,
TerminateOnFirstHitKHR = 2,
SkipClosestHitShaderKHR = 3,
CullBackFacingTrianglesKHR = 4,
CullFrontFacingTrianglesKHR = 5,
CullOpaqueKHR = 6,
CullNoOpaqueKHR = 7,
SkipTrianglesKHR = 8,
SkipAABBsKHR = 9,
ForceOpacityMicromap2StateEXT = 10,
Max = 0x7fffffff,
};
enum class RayFlagsMask : unsigned {
MaskNone = 0,
OpaqueKHR = 0x00000001,
NoOpaqueKHR = 0x00000002,
TerminateOnFirstHitKHR = 0x00000004,
SkipClosestHitShaderKHR = 0x00000008,
CullBackFacingTrianglesKHR = 0x00000010,
CullFrontFacingTrianglesKHR = 0x00000020,
CullOpaqueKHR = 0x00000040,
CullNoOpaqueKHR = 0x00000080,
SkipTrianglesKHR = 0x00000100,
SkipAABBsKHR = 0x00000200,
ForceOpacityMicromap2StateEXT = 0x00000400,
};
enum class RayQueryIntersection : unsigned {
RayQueryCandidateIntersectionKHR = 0,
RayQueryCommittedIntersectionKHR = 1,
Max = 0x7fffffff,
};
enum class RayQueryCommittedIntersectionType : unsigned {
RayQueryCommittedIntersectionNoneKHR = 0,
RayQueryCommittedIntersectionTriangleKHR = 1,
RayQueryCommittedIntersectionGeneratedKHR = 2,
Max = 0x7fffffff,
};
enum class RayQueryCandidateIntersectionType : unsigned {
RayQueryCandidateIntersectionTriangleKHR = 0,
RayQueryCandidateIntersectionAABBKHR = 1,
Max = 0x7fffffff,
};
enum class FragmentShadingRateShift : unsigned {
Vertical2Pixels = 0,
Vertical4Pixels = 1,
Horizontal2Pixels = 2,
Horizontal4Pixels = 3,
Max = 0x7fffffff,
};
enum class FragmentShadingRateMask : unsigned {
MaskNone = 0,
Vertical2Pixels = 0x00000001,
Vertical4Pixels = 0x00000002,
Horizontal2Pixels = 0x00000004,
Horizontal4Pixels = 0x00000008,
};
enum class FPDenormMode : unsigned {
Preserve = 0,
FlushToZero = 1,
Max = 0x7fffffff,
};
enum class FPOperationMode : unsigned {
IEEE = 0,
ALT = 1,
Max = 0x7fffffff,
};
enum class QuantizationModes : unsigned {
TRN = 0,
TRN_ZERO = 1,
RND = 2,
RND_ZERO = 3,
RND_INF = 4,
RND_MIN_INF = 5,
RND_CONV = 6,
RND_CONV_ODD = 7,
Max = 0x7fffffff,
};
enum class OverflowModes : unsigned {
WRAP = 0,
SAT = 1,
SAT_ZERO = 2,
SAT_SYM = 3,
Max = 0x7fffffff,
};
enum class PackedVectorFormat : unsigned {
PackedVectorFormat4x8Bit = 0,
PackedVectorFormat4x8BitKHR = 0,
Max = 0x7fffffff,
};
enum class Op : unsigned {
OpNop = 0,
OpUndef = 1,
OpSourceContinued = 2,
OpSource = 3,
OpSourceExtension = 4,
OpName = 5,
OpMemberName = 6,
OpString = 7,
OpLine = 8,
OpExtension = 10,
OpExtInstImport = 11,
OpExtInst = 12,
OpMemoryModel = 14,
OpEntryPoint = 15,
OpExecutionMode = 16,
OpCapability = 17,
OpTypeVoid = 19,
OpTypeBool = 20,
OpTypeInt = 21,
OpTypeFloat = 22,
OpTypeVector = 23,
OpTypeMatrix = 24,
OpTypeImage = 25,
OpTypeSampler = 26,
OpTypeSampledImage = 27,
OpTypeArray = 28,
OpTypeRuntimeArray = 29,
OpTypeStruct = 30,
OpTypeOpaque = 31,
OpTypePointer = 32,
OpTypeFunction = 33,
OpTypeEvent = 34,
OpTypeDeviceEvent = 35,
OpTypeReserveId = 36,
OpTypeQueue = 37,
OpTypePipe = 38,
OpTypeForwardPointer = 39,
OpConstantTrue = 41,
OpConstantFalse = 42,
OpConstant = 43,
OpConstantComposite = 44,
OpConstantSampler = 45,
OpConstantNull = 46,
OpSpecConstantTrue = 48,
OpSpecConstantFalse = 49,
OpSpecConstant = 50,
OpSpecConstantComposite = 51,
OpSpecConstantOp = 52,
OpFunction = 54,
OpFunctionParameter = 55,
OpFunctionEnd = 56,
OpFunctionCall = 57,
OpVariable = 59,
OpImageTexelPointer = 60,
OpLoad = 61,
OpStore = 62,
OpCopyMemory = 63,
OpCopyMemorySized = 64,
OpAccessChain = 65,
OpInBoundsAccessChain = 66,
OpPtrAccessChain = 67,
OpArrayLength = 68,
OpGenericPtrMemSemantics = 69,
OpInBoundsPtrAccessChain = 70,
OpDecorate = 71,
OpMemberDecorate = 72,
OpDecorationGroup = 73,
OpGroupDecorate = 74,
OpGroupMemberDecorate = 75,
OpVectorExtractDynamic = 77,
OpVectorInsertDynamic = 78,
OpVectorShuffle = 79,
OpCompositeConstruct = 80,
OpCompositeExtract = 81,
OpCompositeInsert = 82,
OpCopyObject = 83,
OpTranspose = 84,
OpSampledImage = 86,
OpImageSampleImplicitLod = 87,
OpImageSampleExplicitLod = 88,
OpImageSampleDrefImplicitLod = 89,
OpImageSampleDrefExplicitLod = 90,
OpImageSampleProjImplicitLod = 91,
OpImageSampleProjExplicitLod = 92,
OpImageSampleProjDrefImplicitLod = 93,
OpImageSampleProjDrefExplicitLod = 94,
OpImageFetch = 95,
OpImageGather = 96,
OpImageDrefGather = 97,
OpImageRead = 98,
OpImageWrite = 99,
OpImage = 100,
OpImageQueryFormat = 101,
OpImageQueryOrder = 102,
OpImageQuerySizeLod = 103,
OpImageQuerySize = 104,
OpImageQueryLod = 105,
OpImageQueryLevels = 106,
OpImageQuerySamples = 107,
OpConvertFToU = 109,
OpConvertFToS = 110,
OpConvertSToF = 111,
OpConvertUToF = 112,
OpUConvert = 113,
OpSConvert = 114,
OpFConvert = 115,
OpQuantizeToF16 = 116,
OpConvertPtrToU = 117,
OpSatConvertSToU = 118,
OpSatConvertUToS = 119,
OpConvertUToPtr = 120,
OpPtrCastToGeneric = 121,
OpGenericCastToPtr = 122,
OpGenericCastToPtrExplicit = 123,
OpBitcast = 124,
OpSNegate = 126,
OpFNegate = 127,
OpIAdd = 128,
OpFAdd = 129,
OpISub = 130,
OpFSub = 131,
OpIMul = 132,
OpFMul = 133,
OpUDiv = 134,
OpSDiv = 135,
OpFDiv = 136,
OpUMod = 137,
OpSRem = 138,
OpSMod = 139,
OpFRem = 140,
OpFMod = 141,
OpVectorTimesScalar = 142,
OpMatrixTimesScalar = 143,
OpVectorTimesMatrix = 144,
OpMatrixTimesVector = 145,
OpMatrixTimesMatrix = 146,
OpOuterProduct = 147,
OpDot = 148,
OpIAddCarry = 149,
OpISubBorrow = 150,
OpUMulExtended = 151,
OpSMulExtended = 152,
OpAny = 154,
OpAll = 155,
OpIsNan = 156,
OpIsInf = 157,
OpIsFinite = 158,
OpIsNormal = 159,
OpSignBitSet = 160,
OpLessOrGreater = 161,
OpOrdered = 162,
OpUnordered = 163,
OpLogicalEqual = 164,
OpLogicalNotEqual = 165,
OpLogicalOr = 166,
OpLogicalAnd = 167,
OpLogicalNot = 168,
OpSelect = 169,
OpIEqual = 170,
OpINotEqual = 171,
OpUGreaterThan = 172,
OpSGreaterThan = 173,
OpUGreaterThanEqual = 174,
OpSGreaterThanEqual = 175,
OpULessThan = 176,
OpSLessThan = 177,
OpULessThanEqual = 178,
OpSLessThanEqual = 179,
OpFOrdEqual = 180,
OpFUnordEqual = 181,
OpFOrdNotEqual = 182,
OpFUnordNotEqual = 183,
OpFOrdLessThan = 184,
OpFUnordLessThan = 185,
OpFOrdGreaterThan = 186,
OpFUnordGreaterThan = 187,
OpFOrdLessThanEqual = 188,
OpFUnordLessThanEqual = 189,
OpFOrdGreaterThanEqual = 190,
OpFUnordGreaterThanEqual = 191,
OpShiftRightLogical = 194,
OpShiftRightArithmetic = 195,
OpShiftLeftLogical = 196,
OpBitwiseOr = 197,
OpBitwiseXor = 198,
OpBitwiseAnd = 199,
OpNot = 200,
OpBitFieldInsert = 201,
OpBitFieldSExtract = 202,
OpBitFieldUExtract = 203,
OpBitReverse = 204,
OpBitCount = 205,
OpDPdx = 207,
OpDPdy = 208,
OpFwidth = 209,
OpDPdxFine = 210,
OpDPdyFine = 211,
OpFwidthFine = 212,
OpDPdxCoarse = 213,
OpDPdyCoarse = 214,
OpFwidthCoarse = 215,
OpEmitVertex = 218,
OpEndPrimitive = 219,
OpEmitStreamVertex = 220,
OpEndStreamPrimitive = 221,
OpControlBarrier = 224,
OpMemoryBarrier = 225,
OpAtomicLoad = 227,
OpAtomicStore = 228,
OpAtomicExchange = 229,
OpAtomicCompareExchange = 230,
OpAtomicCompareExchangeWeak = 231,
OpAtomicIIncrement = 232,
OpAtomicIDecrement = 233,
OpAtomicIAdd = 234,
OpAtomicISub = 235,
OpAtomicSMin = 236,
OpAtomicUMin = 237,
OpAtomicSMax = 238,
OpAtomicUMax = 239,
OpAtomicAnd = 240,
OpAtomicOr = 241,
OpAtomicXor = 242,
OpPhi = 245,
OpLoopMerge = 246,
OpSelectionMerge = 247,
OpLabel = 248,
OpBranch = 249,
OpBranchConditional = 250,
OpSwitch = 251,
OpKill = 252,
OpReturn = 253,
OpReturnValue = 254,
OpUnreachable = 255,
OpLifetimeStart = 256,
OpLifetimeStop = 257,
OpGroupAsyncCopy = 259,
OpGroupWaitEvents = 260,
OpGroupAll = 261,
OpGroupAny = 262,
OpGroupBroadcast = 263,
OpGroupIAdd = 264,
OpGroupFAdd = 265,
OpGroupFMin = 266,
OpGroupUMin = 267,
OpGroupSMin = 268,
OpGroupFMax = 269,
OpGroupUMax = 270,
OpGroupSMax = 271,
OpReadPipe = 274,
OpWritePipe = 275,
OpReservedReadPipe = 276,
OpReservedWritePipe = 277,
OpReserveReadPipePackets = 278,
OpReserveWritePipePackets = 279,
OpCommitReadPipe = 280,
OpCommitWritePipe = 281,
OpIsValidReserveId = 282,
OpGetNumPipePackets = 283,
OpGetMaxPipePackets = 284,
OpGroupReserveReadPipePackets = 285,
OpGroupReserveWritePipePackets = 286,
OpGroupCommitReadPipe = 287,
OpGroupCommitWritePipe = 288,
OpEnqueueMarker = 291,
OpEnqueueKernel = 292,
OpGetKernelNDrangeSubGroupCount = 293,
OpGetKernelNDrangeMaxSubGroupSize = 294,
OpGetKernelWorkGroupSize = 295,
OpGetKernelPreferredWorkGroupSizeMultiple = 296,
OpRetainEvent = 297,
OpReleaseEvent = 298,
OpCreateUserEvent = 299,
OpIsValidEvent = 300,
OpSetUserEventStatus = 301,
OpCaptureEventProfilingInfo = 302,
OpGetDefaultQueue = 303,
OpBuildNDRange = 304,
OpImageSparseSampleImplicitLod = 305,
OpImageSparseSampleExplicitLod = 306,
OpImageSparseSampleDrefImplicitLod = 307,
OpImageSparseSampleDrefExplicitLod = 308,
OpImageSparseSampleProjImplicitLod = 309,
OpImageSparseSampleProjExplicitLod = 310,
OpImageSparseSampleProjDrefImplicitLod = 311,
OpImageSparseSampleProjDrefExplicitLod = 312,
OpImageSparseFetch = 313,
OpImageSparseGather = 314,
OpImageSparseDrefGather = 315,
OpImageSparseTexelsResident = 316,
OpNoLine = 317,
OpAtomicFlagTestAndSet = 318,
OpAtomicFlagClear = 319,
OpImageSparseRead = 320,
OpSizeOf = 321,
OpTypePipeStorage = 322,
OpConstantPipeStorage = 323,
OpCreatePipeFromPipeStorage = 324,
OpGetKernelLocalSizeForSubgroupCount = 325,
OpGetKernelMaxNumSubgroups = 326,
OpTypeNamedBarrier = 327,
OpNamedBarrierInitialize = 328,
OpMemoryNamedBarrier = 329,
OpModuleProcessed = 330,
OpExecutionModeId = 331,
OpDecorateId = 332,
OpGroupNonUniformElect = 333,
OpGroupNonUniformAll = 334,
OpGroupNonUniformAny = 335,
OpGroupNonUniformAllEqual = 336,
OpGroupNonUniformBroadcast = 337,
OpGroupNonUniformBroadcastFirst = 338,
OpGroupNonUniformBallot = 339,
OpGroupNonUniformInverseBallot = 340,
OpGroupNonUniformBallotBitExtract = 341,
OpGroupNonUniformBallotBitCount = 342,
OpGroupNonUniformBallotFindLSB = 343,
OpGroupNonUniformBallotFindMSB = 344,
OpGroupNonUniformShuffle = 345,
OpGroupNonUniformShuffleXor = 346,
OpGroupNonUniformShuffleUp = 347,
OpGroupNonUniformShuffleDown = 348,
OpGroupNonUniformIAdd = 349,
OpGroupNonUniformFAdd = 350,
OpGroupNonUniformIMul = 351,
OpGroupNonUniformFMul = 352,
OpGroupNonUniformSMin = 353,
OpGroupNonUniformUMin = 354,
OpGroupNonUniformFMin = 355,
OpGroupNonUniformSMax = 356,
OpGroupNonUniformUMax = 357,
OpGroupNonUniformFMax = 358,
OpGroupNonUniformBitwiseAnd = 359,
OpGroupNonUniformBitwiseOr = 360,
OpGroupNonUniformBitwiseXor = 361,
OpGroupNonUniformLogicalAnd = 362,
OpGroupNonUniformLogicalOr = 363,
OpGroupNonUniformLogicalXor = 364,
OpGroupNonUniformQuadBroadcast = 365,
OpGroupNonUniformQuadSwap = 366,
OpCopyLogical = 400,
OpPtrEqual = 401,
OpPtrNotEqual = 402,
OpPtrDiff = 403,
OpColorAttachmentReadEXT = 4160,
OpDepthAttachmentReadEXT = 4161,
OpStencilAttachmentReadEXT = 4162,
OpTerminateInvocation = 4416,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpGroupNonUniformRotateKHR = 4431,
OpSubgroupReadInvocationKHR = 4432,
OpTraceRayKHR = 4445,
OpExecuteCallableKHR = 4446,
OpConvertUToAccelerationStructureKHR = 4447,
OpIgnoreIntersectionKHR = 4448,
OpTerminateRayKHR = 4449,
OpSDot = 4450,
OpSDotKHR = 4450,
OpUDot = 4451,
OpUDotKHR = 4451,
OpSUDot = 4452,
OpSUDotKHR = 4452,
OpSDotAccSat = 4453,
OpSDotAccSatKHR = 4453,
OpUDotAccSat = 4454,
OpUDotAccSatKHR = 4454,
OpSUDotAccSat = 4455,
OpSUDotAccSatKHR = 4455,
OpTypeRayQueryKHR = 4472,
OpRayQueryInitializeKHR = 4473,
OpRayQueryTerminateKHR = 4474,
OpRayQueryGenerateIntersectionKHR = 4475,
OpRayQueryConfirmIntersectionKHR = 4476,
OpRayQueryProceedKHR = 4477,
OpRayQueryGetIntersectionTypeKHR = 4479,
OpImageSampleWeightedQCOM = 4480,
OpImageBoxFilterQCOM = 4481,
OpImageBlockMatchSSDQCOM = 4482,
OpImageBlockMatchSADQCOM = 4483,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
OpGroupUMinNonUniformAMD = 5003,
OpGroupSMinNonUniformAMD = 5004,
OpGroupFMaxNonUniformAMD = 5005,
OpGroupUMaxNonUniformAMD = 5006,
OpGroupSMaxNonUniformAMD = 5007,
OpFragmentMaskFetchAMD = 5011,
OpFragmentFetchAMD = 5012,
OpReadClockKHR = 5056,
OpHitObjectRecordHitMotionNV = 5249,
OpHitObjectRecordHitWithIndexMotionNV = 5250,
OpHitObjectRecordMissMotionNV = 5251,
OpHitObjectGetWorldToObjectNV = 5252,
OpHitObjectGetObjectToWorldNV = 5253,
OpHitObjectGetObjectRayDirectionNV = 5254,
OpHitObjectGetObjectRayOriginNV = 5255,
OpHitObjectTraceRayMotionNV = 5256,
OpHitObjectGetShaderRecordBufferHandleNV = 5257,
OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
OpHitObjectRecordEmptyNV = 5259,
OpHitObjectTraceRayNV = 5260,
OpHitObjectRecordHitNV = 5261,
OpHitObjectRecordHitWithIndexNV = 5262,
OpHitObjectRecordMissNV = 5263,
OpHitObjectExecuteShaderNV = 5264,
OpHitObjectGetCurrentTimeNV = 5265,
OpHitObjectGetAttributesNV = 5266,
OpHitObjectGetHitKindNV = 5267,
OpHitObjectGetPrimitiveIndexNV = 5268,
OpHitObjectGetGeometryIndexNV = 5269,
OpHitObjectGetInstanceIdNV = 5270,
OpHitObjectGetInstanceCustomIndexNV = 5271,
OpHitObjectGetWorldRayDirectionNV = 5272,
OpHitObjectGetWorldRayOriginNV = 5273,
OpHitObjectGetRayTMaxNV = 5274,
OpHitObjectGetRayTMinNV = 5275,
OpHitObjectIsEmptyNV = 5276,
OpHitObjectIsHitNV = 5277,
OpHitObjectIsMissNV = 5278,
OpReorderThreadWithHitObjectNV = 5279,
OpReorderThreadWithHintNV = 5280,
OpTypeHitObjectNV = 5281,
OpImageSampleFootprintNV = 5283,
OpEmitMeshTasksEXT = 5294,
OpSetMeshOutputsEXT = 5295,
OpGroupNonUniformPartitionNV = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
OpReportIntersectionKHR = 5334,
OpReportIntersectionNV = 5334,
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
OpTraceNV = 5337,
OpTraceMotionNV = 5338,
OpTraceRayMotionNV = 5339,
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
OpTypeAccelerationStructureKHR = 5341,
OpTypeAccelerationStructureNV = 5341,
OpExecuteCallableNV = 5344,
OpTypeCooperativeMatrixNV = 5358,
OpCooperativeMatrixLoadNV = 5359,
OpCooperativeMatrixStoreNV = 5360,
OpCooperativeMatrixMulAddNV = 5361,
OpCooperativeMatrixLengthNV = 5362,
OpBeginInvocationInterlockEXT = 5364,
OpEndInvocationInterlockEXT = 5365,
OpDemoteToHelperInvocation = 5380,
OpDemoteToHelperInvocationEXT = 5380,
OpIsHelperInvocationEXT = 5381,
OpConvertUToImageNV = 5391,
OpConvertUToSamplerNV = 5392,
OpConvertImageToUNV = 5393,
OpConvertSamplerToUNV = 5394,
OpConvertUToSampledImageNV = 5395,
OpConvertSampledImageToUNV = 5396,
OpSamplerImageAddressingModeNV = 5397,
OpSubgroupShuffleINTEL = 5571,
OpSubgroupShuffleDownINTEL = 5572,
OpSubgroupShuffleUpINTEL = 5573,
OpSubgroupShuffleXorINTEL = 5574,
OpSubgroupBlockReadINTEL = 5575,
OpSubgroupBlockWriteINTEL = 5576,
OpSubgroupImageBlockReadINTEL = 5577,
OpSubgroupImageBlockWriteINTEL = 5578,
OpSubgroupImageMediaBlockReadINTEL = 5580,
OpSubgroupImageMediaBlockWriteINTEL = 5581,
OpUCountLeadingZerosINTEL = 5585,
OpUCountTrailingZerosINTEL = 5586,
OpAbsISubINTEL = 5587,
OpAbsUSubINTEL = 5588,
OpIAddSatINTEL = 5589,
OpUAddSatINTEL = 5590,
OpIAverageINTEL = 5591,
OpUAverageINTEL = 5592,
OpIAverageRoundedINTEL = 5593,
OpUAverageRoundedINTEL = 5594,
OpISubSatINTEL = 5595,
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
OpConstantFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
OpAtomicFMinEXT = 5614,
OpAtomicFMaxEXT = 5615,
OpAssumeTrueKHR = 5630,
OpExpectKHR = 5631,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
OpMemberDecorateStringGOOGLE = 5633,
OpVmeImageINTEL = 5699,
OpTypeVmeImageINTEL = 5700,
OpTypeAvcImePayloadINTEL = 5701,
OpTypeAvcRefPayloadINTEL = 5702,
OpTypeAvcSicPayloadINTEL = 5703,
OpTypeAvcMcePayloadINTEL = 5704,
OpTypeAvcMceResultINTEL = 5705,
OpTypeAvcImeResultINTEL = 5706,
OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
OpTypeAvcRefResultINTEL = 5711,
OpTypeAvcSicResultINTEL = 5712,
OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
OpSubgroupAvcImeInitializeINTEL = 5747,
OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL =
5770,
OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
OpSubgroupAvcFmeInitializeINTEL = 5781,
OpSubgroupAvcBmeInitializeINTEL = 5782,
OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
OpSubgroupAvcSicInitializeINTEL = 5791,
OpSubgroupAvcSicConfigureSkcINTEL = 5792,
OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
OpVariableLengthArrayINTEL = 5818,
OpSaveMemoryINTEL = 5819,
OpRestoreMemoryINTEL = 5820,
OpArbitraryFloatSinCosPiINTEL = 5840,
OpArbitraryFloatCastINTEL = 5841,
OpArbitraryFloatCastFromIntINTEL = 5842,
OpArbitraryFloatCastToIntINTEL = 5843,
OpArbitraryFloatAddINTEL = 5846,
OpArbitraryFloatSubINTEL = 5847,
OpArbitraryFloatMulINTEL = 5848,
OpArbitraryFloatDivINTEL = 5849,
OpArbitraryFloatGTINTEL = 5850,
OpArbitraryFloatGEINTEL = 5851,
OpArbitraryFloatLTINTEL = 5852,
OpArbitraryFloatLEINTEL = 5853,
OpArbitraryFloatEQINTEL = 5854,
OpArbitraryFloatRecipINTEL = 5855,
OpArbitraryFloatRSqrtINTEL = 5856,
OpArbitraryFloatCbrtINTEL = 5857,
OpArbitraryFloatHypotINTEL = 5858,
OpArbitraryFloatSqrtINTEL = 5859,
OpArbitraryFloatLogINTEL = 5860,
OpArbitraryFloatLog2INTEL = 5861,
OpArbitraryFloatLog10INTEL = 5862,
OpArbitraryFloatLog1pINTEL = 5863,
OpArbitraryFloatExpINTEL = 5864,
OpArbitraryFloatExp2INTEL = 5865,
OpArbitraryFloatExp10INTEL = 5866,
OpArbitraryFloatExpm1INTEL = 5867,
OpArbitraryFloatSinINTEL = 5868,
OpArbitraryFloatCosINTEL = 5869,
OpArbitraryFloatSinCosINTEL = 5870,
OpArbitraryFloatSinPiINTEL = 5871,
OpArbitraryFloatCosPiINTEL = 5872,
OpArbitraryFloatASinINTEL = 5873,
OpArbitraryFloatASinPiINTEL = 5874,
OpArbitraryFloatACosINTEL = 5875,
OpArbitraryFloatACosPiINTEL = 5876,
OpArbitraryFloatATanINTEL = 5877,
OpArbitraryFloatATanPiINTEL = 5878,
OpArbitraryFloatATan2INTEL = 5879,
OpArbitraryFloatPowINTEL = 5880,
OpArbitraryFloatPowRINTEL = 5881,
OpArbitraryFloatPowNINTEL = 5882,
OpLoopControlINTEL = 5887,
OpAliasDomainDeclINTEL = 5911,
OpAliasScopeDeclINTEL = 5912,
OpAliasScopeListDeclINTEL = 5913,
OpFixedSqrtINTEL = 5923,
OpFixedRecipINTEL = 5924,
OpFixedRsqrtINTEL = 5925,
OpFixedSinINTEL = 5926,
OpFixedCosINTEL = 5927,
OpFixedSinCosINTEL = 5928,
OpFixedSinPiINTEL = 5929,
OpFixedCosPiINTEL = 5930,
OpFixedSinCosPiINTEL = 5931,
OpFixedLogINTEL = 5932,
OpFixedExpINTEL = 5933,
OpPtrCastToCrossWorkgroupINTEL = 5934,
OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
OpWritePipeBlockingINTEL = 5947,
OpFPGARegINTEL = 5949,
OpRayQueryGetRayTMinKHR = 6016,
OpRayQueryGetRayFlagsKHR = 6017,
OpRayQueryGetIntersectionTKHR = 6018,
OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
OpRayQueryGetIntersectionInstanceIdKHR = 6020,
OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
OpRayQueryGetIntersectionBarycentricsKHR = 6024,
OpRayQueryGetIntersectionFrontFaceKHR = 6025,
OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
OpRayQueryGetWorldRayDirectionKHR = 6029,
OpRayQueryGetWorldRayOriginKHR = 6030,
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpAtomicFAddEXT = 6035,
OpTypeBufferSurfaceINTEL = 6086,
OpTypeStructContinuedINTEL = 6090,
OpConstantCompositeContinuedINTEL = 6091,
OpSpecConstantCompositeContinuedINTEL = 6092,
OpConvertFToBF16INTEL = 6116,
OpConvertBF16ToFINTEL = 6117,
OpControlBarrierArriveINTEL = 6142,
OpControlBarrierWaitINTEL = 6143,
OpGroupIMulKHR = 6401,
OpGroupFMulKHR = 6402,
OpGroupBitwiseAndKHR = 6403,
OpGroupBitwiseOrKHR = 6404,
OpGroupBitwiseXorKHR = 6405,
OpGroupLogicalAndKHR = 6406,
OpGroupLogicalOrKHR = 6407,
OpGroupLogicalXorKHR = 6408,
Max = 0x7fffffff,
};
#ifdef SPV_ENABLE_UTILITY_CODE
#ifndef __cplusplus
#include <stdbool.h>
#endif
inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
*hasResult = *hasResultType = false;
switch (opcode) {
default: /* unknown opcode */
break;
case Op::OpNop:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpUndef:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSourceContinued:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSource:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSourceExtension:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpName:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpMemberName:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpString:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpLine:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpExtension:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpExtInstImport:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpExtInst:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpMemoryModel:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpEntryPoint:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpExecutionMode:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpCapability:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpTypeVoid:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeBool:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeInt:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeFloat:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeVector:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeMatrix:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeImage:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeSampler:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeSampledImage:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeArray:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeRuntimeArray:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeStruct:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeOpaque:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypePointer:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeFunction:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeEvent:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeDeviceEvent:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeReserveId:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeQueue:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypePipe:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeForwardPointer:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpConstantTrue:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConstantFalse:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConstant:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConstantComposite:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConstantSampler:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConstantNull:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSpecConstantTrue:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSpecConstantFalse:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSpecConstant:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSpecConstantComposite:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSpecConstantOp:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFunction:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFunctionParameter:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFunctionEnd:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpFunctionCall:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpVariable:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageTexelPointer:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpLoad:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpStore:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpCopyMemory:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpCopyMemorySized:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpAccessChain:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpInBoundsAccessChain:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpPtrAccessChain:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArrayLength:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGenericPtrMemSemantics:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpInBoundsPtrAccessChain:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDecorate:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpMemberDecorate:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpDecorationGroup:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpGroupDecorate:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpGroupMemberDecorate:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpVectorExtractDynamic:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpVectorInsertDynamic:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpVectorShuffle:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCompositeConstruct:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCompositeExtract:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCompositeInsert:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCopyObject:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpTranspose:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSampledImage:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSampleImplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSampleExplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSampleDrefImplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSampleDrefExplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSampleProjImplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSampleProjExplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSampleProjDrefImplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSampleProjDrefExplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageFetch:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageGather:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageDrefGather:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageRead:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageWrite:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpImage:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageQueryFormat:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageQueryOrder:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageQuerySizeLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageQuerySize:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageQueryLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageQueryLevels:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageQuerySamples:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertFToU:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertFToS:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertSToF:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertUToF:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUConvert:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSConvert:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFConvert:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpQuantizeToF16:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertPtrToU:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSatConvertSToU:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSatConvertUToS:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertUToPtr:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpPtrCastToGeneric:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGenericCastToPtr:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGenericCastToPtrExplicit:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBitcast:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSNegate:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFNegate:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIAdd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFAdd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpISub:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFSub:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIMul:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFMul:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUDiv:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSDiv:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFDiv:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUMod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSRem:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSMod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFRem:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFMod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpVectorTimesScalar:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpMatrixTimesScalar:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpVectorTimesMatrix:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpMatrixTimesVector:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpMatrixTimesMatrix:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpOuterProduct:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDot:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIAddCarry:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpISubBorrow:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUMulExtended:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSMulExtended:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAny:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAll:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIsNan:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIsInf:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIsFinite:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIsNormal:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSignBitSet:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpLessOrGreater:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpOrdered:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUnordered:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpLogicalEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpLogicalNotEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpLogicalOr:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpLogicalAnd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpLogicalNot:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSelect:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpINotEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUGreaterThan:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSGreaterThan:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUGreaterThanEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSGreaterThanEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpULessThan:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSLessThan:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpULessThanEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSLessThanEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFOrdEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFUnordEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFOrdNotEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFUnordNotEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFOrdLessThan:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFUnordLessThan:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFOrdGreaterThan:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFUnordGreaterThan:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFOrdLessThanEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFUnordLessThanEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFOrdGreaterThanEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFUnordGreaterThanEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpShiftRightLogical:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpShiftRightArithmetic:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpShiftLeftLogical:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBitwiseOr:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBitwiseXor:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBitwiseAnd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpNot:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBitFieldInsert:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBitFieldSExtract:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBitFieldUExtract:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBitReverse:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBitCount:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDPdx:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDPdy:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFwidth:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDPdxFine:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDPdyFine:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFwidthFine:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDPdxCoarse:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDPdyCoarse:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFwidthCoarse:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpEmitVertex:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpEndPrimitive:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpEmitStreamVertex:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpEndStreamPrimitive:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpControlBarrier:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpMemoryBarrier:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpAtomicLoad:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicStore:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpAtomicExchange:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicCompareExchange:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicCompareExchangeWeak:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicIIncrement:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicIDecrement:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicIAdd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicISub:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicSMin:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicUMin:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicSMax:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicUMax:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicAnd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicOr:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicXor:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpPhi:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpLoopMerge:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSelectionMerge:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpLabel:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpBranch:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpBranchConditional:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSwitch:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpKill:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpReturn:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpReturnValue:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpUnreachable:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpLifetimeStart:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpLifetimeStop:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpGroupAsyncCopy:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupWaitEvents:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpGroupAll:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupAny:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupBroadcast:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupIAdd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupFAdd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupFMin:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupUMin:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupSMin:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupFMax:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupUMax:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupSMax:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpReadPipe:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpWritePipe:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpReservedReadPipe:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpReservedWritePipe:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpReserveReadPipePackets:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpReserveWritePipePackets:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCommitReadPipe:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpCommitWritePipe:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpIsValidReserveId:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGetNumPipePackets:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGetMaxPipePackets:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupReserveReadPipePackets:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupReserveWritePipePackets:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupCommitReadPipe:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpGroupCommitWritePipe:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpEnqueueMarker:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpEnqueueKernel:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGetKernelNDrangeSubGroupCount:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGetKernelNDrangeMaxSubGroupSize:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGetKernelWorkGroupSize:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGetKernelPreferredWorkGroupSizeMultiple:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRetainEvent:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpReleaseEvent:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpCreateUserEvent:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIsValidEvent:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSetUserEventStatus:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpCaptureEventProfilingInfo:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpGetDefaultQueue:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBuildNDRange:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseSampleImplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseSampleExplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseSampleDrefImplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseSampleDrefExplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseSampleProjImplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseSampleProjExplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseSampleProjDrefImplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseSampleProjDrefExplicitLod:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseFetch:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseGather:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseDrefGather:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSparseTexelsResident:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpNoLine:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpAtomicFlagTestAndSet:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicFlagClear:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpImageSparseRead:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSizeOf:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpTypePipeStorage:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpConstantPipeStorage:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCreatePipeFromPipeStorage:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGetKernelLocalSizeForSubgroupCount:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGetKernelMaxNumSubgroups:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpTypeNamedBarrier:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpNamedBarrierInitialize:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpMemoryNamedBarrier:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpModuleProcessed:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpExecutionModeId:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpDecorateId:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpGroupNonUniformElect:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformAll:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformAny:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformAllEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBroadcast:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBroadcastFirst:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBallot:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformInverseBallot:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBallotBitExtract:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBallotBitCount:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBallotFindLSB:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBallotFindMSB:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformShuffle:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformShuffleXor:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformShuffleUp:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformShuffleDown:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformIAdd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformFAdd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformIMul:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformFMul:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformSMin:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformUMin:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformFMin:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformSMax:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformUMax:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformFMax:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBitwiseAnd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBitwiseOr:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformBitwiseXor:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformLogicalAnd:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformLogicalOr:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformLogicalXor:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformQuadBroadcast:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformQuadSwap:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCopyLogical:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpPtrEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpPtrNotEqual:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpPtrDiff:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpColorAttachmentReadEXT:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDepthAttachmentReadEXT:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpStencilAttachmentReadEXT:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpTerminateInvocation:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSubgroupBallotKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupFirstInvocationKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAllKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAnyKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAllEqualKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupNonUniformRotateKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupReadInvocationKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpTraceRayKHR:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpExecuteCallableKHR:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpConvertUToAccelerationStructureKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIgnoreIntersectionKHR:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpTerminateRayKHR:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSDot:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUDot:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSUDot:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSDotAccSat:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUDotAccSat:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSUDotAccSat:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpTypeRayQueryKHR:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpRayQueryInitializeKHR:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpRayQueryTerminateKHR:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpRayQueryGenerateIntersectionKHR:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpRayQueryConfirmIntersectionKHR:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpRayQueryProceedKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionTypeKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageSampleWeightedQCOM:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageBoxFilterQCOM:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageBlockMatchSSDQCOM:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpImageBlockMatchSADQCOM:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupIAddNonUniformAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupFAddNonUniformAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupFMinNonUniformAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupUMinNonUniformAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupSMinNonUniformAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupFMaxNonUniformAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupUMaxNonUniformAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupSMaxNonUniformAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFragmentMaskFetchAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFragmentFetchAMD:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpReadClockKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectRecordHitMotionNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectRecordHitWithIndexMotionNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectRecordMissMotionNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectGetWorldToObjectNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetObjectToWorldNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetObjectRayDirectionNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetObjectRayOriginNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectTraceRayMotionNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectGetShaderRecordBufferHandleNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetShaderBindingTableRecordIndexNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectRecordEmptyNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectTraceRayNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectRecordHitNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectRecordHitWithIndexNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectRecordMissNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectExecuteShaderNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectGetCurrentTimeNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetAttributesNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpHitObjectGetHitKindNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetPrimitiveIndexNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetGeometryIndexNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetInstanceIdNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetInstanceCustomIndexNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetWorldRayDirectionNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetWorldRayOriginNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetRayTMaxNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectGetRayTMinNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectIsEmptyNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectIsHitNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpHitObjectIsMissNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpReorderThreadWithHitObjectNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpReorderThreadWithHintNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpTypeHitObjectNV:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpImageSampleFootprintNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpEmitMeshTasksEXT:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSetMeshOutputsEXT:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpGroupNonUniformPartitionNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpWritePackedPrimitiveIndices4x8NV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpReportIntersectionNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIgnoreIntersectionNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpTerminateRayNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpTraceNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpTraceMotionNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpTraceRayMotionNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpTypeAccelerationStructureNV:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpExecuteCallableNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpTypeCooperativeMatrixNV:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpCooperativeMatrixLoadNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCooperativeMatrixStoreNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpCooperativeMatrixMulAddNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCooperativeMatrixLengthNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpBeginInvocationInterlockEXT:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpEndInvocationInterlockEXT:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpDemoteToHelperInvocation:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpIsHelperInvocationEXT:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertUToImageNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertUToSamplerNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertImageToUNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertSamplerToUNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertUToSampledImageNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertSampledImageToUNV:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSamplerImageAddressingModeNV:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSubgroupShuffleINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupShuffleDownINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupShuffleUpINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupShuffleXorINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupBlockReadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupBlockWriteINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSubgroupImageBlockReadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupImageBlockWriteINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSubgroupImageMediaBlockReadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupImageMediaBlockWriteINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpUCountLeadingZerosINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUCountTrailingZerosINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAbsISubINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAbsUSubINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIAddSatINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUAddSatINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIAverageINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUAverageINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIAverageRoundedINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUAverageRoundedINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpISubSatINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUSubSatINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpIMul32x16INTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpUMul32x16INTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConstantFunctionPointerINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFunctionPointerCallINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAsmTargetINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAsmINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAsmCallINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicFMinEXT:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicFMaxEXT:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAssumeTrueKHR:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpExpectKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpDecorateString:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpMemberDecorateString:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpVmeImageINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpTypeVmeImageINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcImePayloadINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcRefPayloadINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcSicPayloadINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcMcePayloadINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcMceResultINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcImeResultINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcImeSingleReferenceStreaminINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcImeDualReferenceStreaminINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcRefResultINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeAvcSicResultINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceConvertToImePayloadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceConvertToImeResultINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceConvertToRefPayloadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceConvertToRefResultINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceConvertToSicPayloadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceConvertToSicResultINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetMotionVectorsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetInterDistortionsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetInterMajorShapeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetInterMinorShapeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetInterDirectionsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeInitializeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeSetSingleReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeSetDualReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeRefWindowSizeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeAdjustRefOffsetINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeConvertToMcePayloadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeSetWeightedSadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeConvertToMceResultINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::
OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::
OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::
OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::
OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeGetBorderReachedINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcFmeInitializeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcBmeInitializeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcRefConvertToMcePayloadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcRefConvertToMceResultINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicInitializeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicConfigureSkcINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicConfigureIpeLumaINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicConvertToMcePayloadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicEvaluateIpeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicConvertToMceResultINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicGetIpeChromaModeINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSubgroupAvcSicGetInterRawSadsINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpVariableLengthArrayINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpSaveMemoryINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRestoreMemoryINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpArbitraryFloatSinCosPiINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatCastINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatCastFromIntINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatCastToIntINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatAddINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatSubINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatMulINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatDivINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatGTINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatGEINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatLTINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatLEINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatEQINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatRecipINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatRSqrtINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatCbrtINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatHypotINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatSqrtINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatLogINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatLog2INTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatLog10INTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatLog1pINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatExpINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatExp2INTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatExp10INTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatExpm1INTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatSinINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatCosINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatSinCosINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatSinPiINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatCosPiINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatASinINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatASinPiINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatACosINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatACosPiINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatATanINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatATanPiINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatATan2INTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatPowINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatPowRINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpArbitraryFloatPowNINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpLoopControlINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpAliasDomainDeclINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpAliasScopeDeclINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpAliasScopeListDeclINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpFixedSqrtINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedRecipINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedRsqrtINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedSinINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedCosINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedSinCosINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedSinPiINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedCosPiINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedSinCosPiINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedLogINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFixedExpINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpPtrCastToCrossWorkgroupINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpCrossWorkgroupCastToPtrINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpReadPipeBlockingINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpWritePipeBlockingINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpFPGARegINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetRayTMinKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetRayFlagsKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionTKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionInstanceIdKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionGeometryIndexKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionBarycentricsKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionFrontFaceKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionObjectRayOriginKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetWorldRayDirectionKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetWorldRayOriginKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionObjectToWorldKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpRayQueryGetIntersectionWorldToObjectKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpAtomicFAddEXT:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpTypeBufferSurfaceINTEL:
*hasResult = true;
*hasResultType = false;
break;
case Op::OpTypeStructContinuedINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpConstantCompositeContinuedINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpSpecConstantCompositeContinuedINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpConvertFToBF16INTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpConvertBF16ToFINTEL:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpControlBarrierArriveINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpControlBarrierWaitINTEL:
*hasResult = false;
*hasResultType = false;
break;
case Op::OpGroupIMulKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupFMulKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupBitwiseAndKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupBitwiseOrKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupBitwiseXorKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupLogicalAndKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupLogicalOrKHR:
*hasResult = true;
*hasResultType = true;
break;
case Op::OpGroupLogicalXorKHR:
*hasResult = true;
*hasResultType = true;
break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
// Overload bitwise operators for mask bit combining
constexpr ImageOperandsMask operator|(ImageOperandsMask a,
ImageOperandsMask b) {
return ImageOperandsMask(unsigned(a) | unsigned(b));
}
constexpr ImageOperandsMask operator&(ImageOperandsMask a,
ImageOperandsMask b) {
return ImageOperandsMask(unsigned(a) & unsigned(b));
}
constexpr ImageOperandsMask operator^(ImageOperandsMask a,
ImageOperandsMask b) {
return ImageOperandsMask(unsigned(a) ^ unsigned(b));
}
constexpr ImageOperandsMask operator~(ImageOperandsMask a) {
return ImageOperandsMask(~unsigned(a));
}
constexpr FPFastMathModeMask operator|(FPFastMathModeMask a,
FPFastMathModeMask b) {
return FPFastMathModeMask(unsigned(a) | unsigned(b));
}
constexpr FPFastMathModeMask operator&(FPFastMathModeMask a,
FPFastMathModeMask b) {
return FPFastMathModeMask(unsigned(a) & unsigned(b));
}
constexpr FPFastMathModeMask operator^(FPFastMathModeMask a,
FPFastMathModeMask b) {
return FPFastMathModeMask(unsigned(a) ^ unsigned(b));
}
constexpr FPFastMathModeMask operator~(FPFastMathModeMask a) {
return FPFastMathModeMask(~unsigned(a));
}
constexpr SelectionControlMask operator|(SelectionControlMask a,
SelectionControlMask b) {
return SelectionControlMask(unsigned(a) | unsigned(b));
}
constexpr SelectionControlMask operator&(SelectionControlMask a,
SelectionControlMask b) {
return SelectionControlMask(unsigned(a) & unsigned(b));
}
constexpr SelectionControlMask operator^(SelectionControlMask a,
SelectionControlMask b) {
return SelectionControlMask(unsigned(a) ^ unsigned(b));
}
constexpr SelectionControlMask operator~(SelectionControlMask a) {
return SelectionControlMask(~unsigned(a));
}
constexpr LoopControlMask operator|(LoopControlMask a, LoopControlMask b) {
return LoopControlMask(unsigned(a) | unsigned(b));
}
constexpr LoopControlMask operator&(LoopControlMask a, LoopControlMask b) {
return LoopControlMask(unsigned(a) & unsigned(b));
}
constexpr LoopControlMask operator^(LoopControlMask a, LoopControlMask b) {
return LoopControlMask(unsigned(a) ^ unsigned(b));
}
constexpr LoopControlMask operator~(LoopControlMask a) {
return LoopControlMask(~unsigned(a));
}
constexpr FunctionControlMask operator|(FunctionControlMask a,
FunctionControlMask b) {
return FunctionControlMask(unsigned(a) | unsigned(b));
}
constexpr FunctionControlMask operator&(FunctionControlMask a,
FunctionControlMask b) {
return FunctionControlMask(unsigned(a) & unsigned(b));
}
constexpr FunctionControlMask operator^(FunctionControlMask a,
FunctionControlMask b) {
return FunctionControlMask(unsigned(a) ^ unsigned(b));
}
constexpr FunctionControlMask operator~(FunctionControlMask a) {
return FunctionControlMask(~unsigned(a));
}
constexpr MemorySemanticsMask operator|(MemorySemanticsMask a,
MemorySemanticsMask b) {
return MemorySemanticsMask(unsigned(a) | unsigned(b));
}
constexpr MemorySemanticsMask operator&(MemorySemanticsMask a,
MemorySemanticsMask b) {
return MemorySemanticsMask(unsigned(a) & unsigned(b));
}
constexpr MemorySemanticsMask operator^(MemorySemanticsMask a,
MemorySemanticsMask b) {
return MemorySemanticsMask(unsigned(a) ^ unsigned(b));
}
constexpr MemorySemanticsMask operator~(MemorySemanticsMask a) {
return MemorySemanticsMask(~unsigned(a));
}
constexpr MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) {
return MemoryAccessMask(unsigned(a) | unsigned(b));
}
constexpr MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) {
return MemoryAccessMask(unsigned(a) & unsigned(b));
}
constexpr MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) {
return MemoryAccessMask(unsigned(a) ^ unsigned(b));
}
constexpr MemoryAccessMask operator~(MemoryAccessMask a) {
return MemoryAccessMask(~unsigned(a));
}
constexpr KernelProfilingInfoMask operator|(KernelProfilingInfoMask a,
KernelProfilingInfoMask b) {
return KernelProfilingInfoMask(unsigned(a) | unsigned(b));
}
constexpr KernelProfilingInfoMask operator&(KernelProfilingInfoMask a,
KernelProfilingInfoMask b) {
return KernelProfilingInfoMask(unsigned(a) & unsigned(b));
}
constexpr KernelProfilingInfoMask operator^(KernelProfilingInfoMask a,
KernelProfilingInfoMask b) {
return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b));
}
constexpr KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) {
return KernelProfilingInfoMask(~unsigned(a));
}
constexpr RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) {
return RayFlagsMask(unsigned(a) | unsigned(b));
}
constexpr RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) {
return RayFlagsMask(unsigned(a) & unsigned(b));
}
constexpr RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) {
return RayFlagsMask(unsigned(a) ^ unsigned(b));
}
constexpr RayFlagsMask operator~(RayFlagsMask a) {
return RayFlagsMask(~unsigned(a));
}
constexpr FragmentShadingRateMask operator|(FragmentShadingRateMask a,
FragmentShadingRateMask b) {
return FragmentShadingRateMask(unsigned(a) | unsigned(b));
}
constexpr FragmentShadingRateMask operator&(FragmentShadingRateMask a,
FragmentShadingRateMask b) {
return FragmentShadingRateMask(unsigned(a) & unsigned(b));
}
constexpr FragmentShadingRateMask operator^(FragmentShadingRateMask a,
FragmentShadingRateMask b) {
return FragmentShadingRateMask(unsigned(a) ^ unsigned(b));
}
constexpr FragmentShadingRateMask operator~(FragmentShadingRateMask a) {
return FragmentShadingRateMask(~unsigned(a));
}
} // end namespace spv
#endif // #ifndef spirv_HPP