duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

spirv.hpp (125162B)


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