Home | History | Annotate | Line # | Download | only in spirv
      1 /*
      2 ** Copyright (c) 2014-2020 The Khronos Group Inc.
      3 **
      4 ** Permission is hereby granted, free of charge, to any person obtaining a copy
      5 ** of this software and/or associated documentation files (the "Materials"),
      6 ** to deal in the Materials without restriction, including without limitation
      7 ** the rights to use, copy, modify, merge, publish, distribute, sublicense,
      8 ** and/or sell copies of the Materials, and to permit persons to whom the
      9 ** Materials are furnished to do so, subject to the following conditions:
     10 **
     11 ** The above copyright notice and this permission notice shall be included in
     12 ** all copies or substantial portions of the Materials.
     13 **
     14 ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
     15 ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
     16 ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
     17 **
     18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     19 ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     20 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
     21 ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     22 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     23 ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
     24 ** IN THE MATERIALS.
     25 */
     26 
     27 /*
     28 ** This header is automatically generated by the same tool that creates
     29 ** the Binary Section of the SPIR-V specification.
     30 */
     31 
     32 /*
     33 ** Enumeration tokens for SPIR-V, in various styles:
     34 **   C, C++, C++11, JSON, Lua, Python, C#, D
     35 **
     36 ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
     37 ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
     38 ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
     39 ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
     40 ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
     41 ** - C# will use enum classes in the Specification class located in the "Spv" namespace,
     42 **     e.g.: Spv.Specification.SourceLanguage.GLSL
     43 ** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
     44 **
     45 ** Some tokens act like mask values, which can be OR'd together,
     46 ** while others are mutually exclusive.  The mask-like ones have
     47 ** "Mask" in their name, and a parallel enum that has the shift
     48 ** amount (1 << x) for each corresponding enumerant.
     49 */
     50 
     51 #ifndef spirv_H
     52 #define spirv_H
     53 
     54 typedef unsigned int SpvId;
     55 
     56 #define SPV_VERSION 0x10500
     57 #define SPV_REVISION 4
     58 
     59 static const unsigned int SpvMagicNumber = 0x07230203;
     60 static const unsigned int SpvVersion = 0x00010500;
     61 static const unsigned int SpvRevision = 4;
     62 static const unsigned int SpvOpCodeMask = 0xffff;
     63 static const unsigned int SpvWordCountShift = 16;
     64 
     65 typedef enum SpvSourceLanguage_ {
     66     SpvSourceLanguageUnknown = 0,
     67     SpvSourceLanguageESSL = 1,
     68     SpvSourceLanguageGLSL = 2,
     69     SpvSourceLanguageOpenCL_C = 3,
     70     SpvSourceLanguageOpenCL_CPP = 4,
     71     SpvSourceLanguageHLSL = 5,
     72     SpvSourceLanguageCPP_for_OpenCL = 6,
     73     SpvSourceLanguageMax = 0x7fffffff,
     74 } SpvSourceLanguage;
     75 
     76 typedef enum SpvExecutionModel_ {
     77     SpvExecutionModelVertex = 0,
     78     SpvExecutionModelTessellationControl = 1,
     79     SpvExecutionModelTessellationEvaluation = 2,
     80     SpvExecutionModelGeometry = 3,
     81     SpvExecutionModelFragment = 4,
     82     SpvExecutionModelGLCompute = 5,
     83     SpvExecutionModelKernel = 6,
     84     SpvExecutionModelTaskNV = 5267,
     85     SpvExecutionModelMeshNV = 5268,
     86     SpvExecutionModelRayGenerationKHR = 5313,
     87     SpvExecutionModelRayGenerationNV = 5313,
     88     SpvExecutionModelIntersectionKHR = 5314,
     89     SpvExecutionModelIntersectionNV = 5314,
     90     SpvExecutionModelAnyHitKHR = 5315,
     91     SpvExecutionModelAnyHitNV = 5315,
     92     SpvExecutionModelClosestHitKHR = 5316,
     93     SpvExecutionModelClosestHitNV = 5316,
     94     SpvExecutionModelMissKHR = 5317,
     95     SpvExecutionModelMissNV = 5317,
     96     SpvExecutionModelCallableKHR = 5318,
     97     SpvExecutionModelCallableNV = 5318,
     98     SpvExecutionModelMax = 0x7fffffff,
     99 } SpvExecutionModel;
    100 
    101 typedef enum SpvAddressingModel_ {
    102     SpvAddressingModelLogical = 0,
    103     SpvAddressingModelPhysical32 = 1,
    104     SpvAddressingModelPhysical64 = 2,
    105     SpvAddressingModelPhysicalStorageBuffer64 = 5348,
    106     SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
    107     SpvAddressingModelMax = 0x7fffffff,
    108 } SpvAddressingModel;
    109 
    110 typedef enum SpvMemoryModel_ {
    111     SpvMemoryModelSimple = 0,
    112     SpvMemoryModelGLSL450 = 1,
    113     SpvMemoryModelOpenCL = 2,
    114     SpvMemoryModelVulkan = 3,
    115     SpvMemoryModelVulkanKHR = 3,
    116     SpvMemoryModelMax = 0x7fffffff,
    117 } SpvMemoryModel;
    118 
    119 typedef enum SpvExecutionMode_ {
    120     SpvExecutionModeInvocations = 0,
    121     SpvExecutionModeSpacingEqual = 1,
    122     SpvExecutionModeSpacingFractionalEven = 2,
    123     SpvExecutionModeSpacingFractionalOdd = 3,
    124     SpvExecutionModeVertexOrderCw = 4,
    125     SpvExecutionModeVertexOrderCcw = 5,
    126     SpvExecutionModePixelCenterInteger = 6,
    127     SpvExecutionModeOriginUpperLeft = 7,
    128     SpvExecutionModeOriginLowerLeft = 8,
    129     SpvExecutionModeEarlyFragmentTests = 9,
    130     SpvExecutionModePointMode = 10,
    131     SpvExecutionModeXfb = 11,
    132     SpvExecutionModeDepthReplacing = 12,
    133     SpvExecutionModeDepthGreater = 14,
    134     SpvExecutionModeDepthLess = 15,
    135     SpvExecutionModeDepthUnchanged = 16,
    136     SpvExecutionModeLocalSize = 17,
    137     SpvExecutionModeLocalSizeHint = 18,
    138     SpvExecutionModeInputPoints = 19,
    139     SpvExecutionModeInputLines = 20,
    140     SpvExecutionModeInputLinesAdjacency = 21,
    141     SpvExecutionModeTriangles = 22,
    142     SpvExecutionModeInputTrianglesAdjacency = 23,
    143     SpvExecutionModeQuads = 24,
    144     SpvExecutionModeIsolines = 25,
    145     SpvExecutionModeOutputVertices = 26,
    146     SpvExecutionModeOutputPoints = 27,
    147     SpvExecutionModeOutputLineStrip = 28,
    148     SpvExecutionModeOutputTriangleStrip = 29,
    149     SpvExecutionModeVecTypeHint = 30,
    150     SpvExecutionModeContractionOff = 31,
    151     SpvExecutionModeInitializer = 33,
    152     SpvExecutionModeFinalizer = 34,
    153     SpvExecutionModeSubgroupSize = 35,
    154     SpvExecutionModeSubgroupsPerWorkgroup = 36,
    155     SpvExecutionModeSubgroupsPerWorkgroupId = 37,
    156     SpvExecutionModeLocalSizeId = 38,
    157     SpvExecutionModeLocalSizeHintId = 39,
    158     SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
    159     SpvExecutionModePostDepthCoverage = 4446,
    160     SpvExecutionModeDenormPreserve = 4459,
    161     SpvExecutionModeDenormFlushToZero = 4460,
    162     SpvExecutionModeSignedZeroInfNanPreserve = 4461,
    163     SpvExecutionModeRoundingModeRTE = 4462,
    164     SpvExecutionModeRoundingModeRTZ = 4463,
    165     SpvExecutionModeStencilRefReplacingEXT = 5027,
    166     SpvExecutionModeOutputLinesNV = 5269,
    167     SpvExecutionModeOutputPrimitivesNV = 5270,
    168     SpvExecutionModeDerivativeGroupQuadsNV = 5289,
    169     SpvExecutionModeDerivativeGroupLinearNV = 5290,
    170     SpvExecutionModeOutputTrianglesNV = 5298,
    171     SpvExecutionModePixelInterlockOrderedEXT = 5366,
    172     SpvExecutionModePixelInterlockUnorderedEXT = 5367,
    173     SpvExecutionModeSampleInterlockOrderedEXT = 5368,
    174     SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
    175     SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
    176     SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
    177     SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
    178     SpvExecutionModeRoundingModeRTPINTEL = 5620,
    179     SpvExecutionModeRoundingModeRTNINTEL = 5621,
    180     SpvExecutionModeFloatingPointModeALTINTEL = 5622,
    181     SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
    182     SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
    183     SpvExecutionModeMaxWorkDimINTEL = 5894,
    184     SpvExecutionModeNoGlobalOffsetINTEL = 5895,
    185     SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
    186     SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
    187     SpvExecutionModeMax = 0x7fffffff,
    188 } SpvExecutionMode;
    189 
    190 typedef enum SpvStorageClass_ {
    191     SpvStorageClassUniformConstant = 0,
    192     SpvStorageClassInput = 1,
    193     SpvStorageClassUniform = 2,
    194     SpvStorageClassOutput = 3,
    195     SpvStorageClassWorkgroup = 4,
    196     SpvStorageClassCrossWorkgroup = 5,
    197     SpvStorageClassPrivate = 6,
    198     SpvStorageClassFunction = 7,
    199     SpvStorageClassGeneric = 8,
    200     SpvStorageClassPushConstant = 9,
    201     SpvStorageClassAtomicCounter = 10,
    202     SpvStorageClassImage = 11,
    203     SpvStorageClassStorageBuffer = 12,
    204     SpvStorageClassCallableDataKHR = 5328,
    205     SpvStorageClassCallableDataNV = 5328,
    206     SpvStorageClassIncomingCallableDataKHR = 5329,
    207     SpvStorageClassIncomingCallableDataNV = 5329,
    208     SpvStorageClassRayPayloadKHR = 5338,
    209     SpvStorageClassRayPayloadNV = 5338,
    210     SpvStorageClassHitAttributeKHR = 5339,
    211     SpvStorageClassHitAttributeNV = 5339,
    212     SpvStorageClassIncomingRayPayloadKHR = 5342,
    213     SpvStorageClassIncomingRayPayloadNV = 5342,
    214     SpvStorageClassShaderRecordBufferKHR = 5343,
    215     SpvStorageClassShaderRecordBufferNV = 5343,
    216     SpvStorageClassPhysicalStorageBuffer = 5349,
    217     SpvStorageClassPhysicalStorageBufferEXT = 5349,
    218     SpvStorageClassCodeSectionINTEL = 5605,
    219     SpvStorageClassDeviceOnlyINTEL = 5936,
    220     SpvStorageClassHostOnlyINTEL = 5937,
    221     SpvStorageClassMax = 0x7fffffff,
    222 } SpvStorageClass;
    223 
    224 typedef enum SpvDim_ {
    225     SpvDim1D = 0,
    226     SpvDim2D = 1,
    227     SpvDim3D = 2,
    228     SpvDimCube = 3,
    229     SpvDimRect = 4,
    230     SpvDimBuffer = 5,
    231     SpvDimSubpassData = 6,
    232     SpvDimMax = 0x7fffffff,
    233 } SpvDim;
    234 
    235 typedef enum SpvSamplerAddressingMode_ {
    236     SpvSamplerAddressingModeNone = 0,
    237     SpvSamplerAddressingModeClampToEdge = 1,
    238     SpvSamplerAddressingModeClamp = 2,
    239     SpvSamplerAddressingModeRepeat = 3,
    240     SpvSamplerAddressingModeRepeatMirrored = 4,
    241     SpvSamplerAddressingModeMax = 0x7fffffff,
    242 } SpvSamplerAddressingMode;
    243 
    244 typedef enum SpvSamplerFilterMode_ {
    245     SpvSamplerFilterModeNearest = 0,
    246     SpvSamplerFilterModeLinear = 1,
    247     SpvSamplerFilterModeMax = 0x7fffffff,
    248 } SpvSamplerFilterMode;
    249 
    250 typedef enum SpvImageFormat_ {
    251     SpvImageFormatUnknown = 0,
    252     SpvImageFormatRgba32f = 1,
    253     SpvImageFormatRgba16f = 2,
    254     SpvImageFormatR32f = 3,
    255     SpvImageFormatRgba8 = 4,
    256     SpvImageFormatRgba8Snorm = 5,
    257     SpvImageFormatRg32f = 6,
    258     SpvImageFormatRg16f = 7,
    259     SpvImageFormatR11fG11fB10f = 8,
    260     SpvImageFormatR16f = 9,
    261     SpvImageFormatRgba16 = 10,
    262     SpvImageFormatRgb10A2 = 11,
    263     SpvImageFormatRg16 = 12,
    264     SpvImageFormatRg8 = 13,
    265     SpvImageFormatR16 = 14,
    266     SpvImageFormatR8 = 15,
    267     SpvImageFormatRgba16Snorm = 16,
    268     SpvImageFormatRg16Snorm = 17,
    269     SpvImageFormatRg8Snorm = 18,
    270     SpvImageFormatR16Snorm = 19,
    271     SpvImageFormatR8Snorm = 20,
    272     SpvImageFormatRgba32i = 21,
    273     SpvImageFormatRgba16i = 22,
    274     SpvImageFormatRgba8i = 23,
    275     SpvImageFormatR32i = 24,
    276     SpvImageFormatRg32i = 25,
    277     SpvImageFormatRg16i = 26,
    278     SpvImageFormatRg8i = 27,
    279     SpvImageFormatR16i = 28,
    280     SpvImageFormatR8i = 29,
    281     SpvImageFormatRgba32ui = 30,
    282     SpvImageFormatRgba16ui = 31,
    283     SpvImageFormatRgba8ui = 32,
    284     SpvImageFormatR32ui = 33,
    285     SpvImageFormatRgb10a2ui = 34,
    286     SpvImageFormatRg32ui = 35,
    287     SpvImageFormatRg16ui = 36,
    288     SpvImageFormatRg8ui = 37,
    289     SpvImageFormatR16ui = 38,
    290     SpvImageFormatR8ui = 39,
    291     SpvImageFormatR64ui = 40,
    292     SpvImageFormatR64i = 41,
    293     SpvImageFormatMax = 0x7fffffff,
    294 } SpvImageFormat;
    295 
    296 typedef enum SpvImageChannelOrder_ {
    297     SpvImageChannelOrderR = 0,
    298     SpvImageChannelOrderA = 1,
    299     SpvImageChannelOrderRG = 2,
    300     SpvImageChannelOrderRA = 3,
    301     SpvImageChannelOrderRGB = 4,
    302     SpvImageChannelOrderRGBA = 5,
    303     SpvImageChannelOrderBGRA = 6,
    304     SpvImageChannelOrderARGB = 7,
    305     SpvImageChannelOrderIntensity = 8,
    306     SpvImageChannelOrderLuminance = 9,
    307     SpvImageChannelOrderRx = 10,
    308     SpvImageChannelOrderRGx = 11,
    309     SpvImageChannelOrderRGBx = 12,
    310     SpvImageChannelOrderDepth = 13,
    311     SpvImageChannelOrderDepthStencil = 14,
    312     SpvImageChannelOrdersRGB = 15,
    313     SpvImageChannelOrdersRGBx = 16,
    314     SpvImageChannelOrdersRGBA = 17,
    315     SpvImageChannelOrdersBGRA = 18,
    316     SpvImageChannelOrderABGR = 19,
    317     SpvImageChannelOrderMax = 0x7fffffff,
    318 } SpvImageChannelOrder;
    319 
    320 typedef enum SpvImageChannelDataType_ {
    321     SpvImageChannelDataTypeSnormInt8 = 0,
    322     SpvImageChannelDataTypeSnormInt16 = 1,
    323     SpvImageChannelDataTypeUnormInt8 = 2,
    324     SpvImageChannelDataTypeUnormInt16 = 3,
    325     SpvImageChannelDataTypeUnormShort565 = 4,
    326     SpvImageChannelDataTypeUnormShort555 = 5,
    327     SpvImageChannelDataTypeUnormInt101010 = 6,
    328     SpvImageChannelDataTypeSignedInt8 = 7,
    329     SpvImageChannelDataTypeSignedInt16 = 8,
    330     SpvImageChannelDataTypeSignedInt32 = 9,
    331     SpvImageChannelDataTypeUnsignedInt8 = 10,
    332     SpvImageChannelDataTypeUnsignedInt16 = 11,
    333     SpvImageChannelDataTypeUnsignedInt32 = 12,
    334     SpvImageChannelDataTypeHalfFloat = 13,
    335     SpvImageChannelDataTypeFloat = 14,
    336     SpvImageChannelDataTypeUnormInt24 = 15,
    337     SpvImageChannelDataTypeUnormInt101010_2 = 16,
    338     SpvImageChannelDataTypeMax = 0x7fffffff,
    339 } SpvImageChannelDataType;
    340 
    341 typedef enum SpvImageOperandsShift_ {
    342     SpvImageOperandsBiasShift = 0,
    343     SpvImageOperandsLodShift = 1,
    344     SpvImageOperandsGradShift = 2,
    345     SpvImageOperandsConstOffsetShift = 3,
    346     SpvImageOperandsOffsetShift = 4,
    347     SpvImageOperandsConstOffsetsShift = 5,
    348     SpvImageOperandsSampleShift = 6,
    349     SpvImageOperandsMinLodShift = 7,
    350     SpvImageOperandsMakeTexelAvailableShift = 8,
    351     SpvImageOperandsMakeTexelAvailableKHRShift = 8,
    352     SpvImageOperandsMakeTexelVisibleShift = 9,
    353     SpvImageOperandsMakeTexelVisibleKHRShift = 9,
    354     SpvImageOperandsNonPrivateTexelShift = 10,
    355     SpvImageOperandsNonPrivateTexelKHRShift = 10,
    356     SpvImageOperandsVolatileTexelShift = 11,
    357     SpvImageOperandsVolatileTexelKHRShift = 11,
    358     SpvImageOperandsSignExtendShift = 12,
    359     SpvImageOperandsZeroExtendShift = 13,
    360     SpvImageOperandsMax = 0x7fffffff,
    361 } SpvImageOperandsShift;
    362 
    363 typedef enum SpvImageOperandsMask_ {
    364     SpvImageOperandsMaskNone = 0,
    365     SpvImageOperandsBiasMask = 0x00000001,
    366     SpvImageOperandsLodMask = 0x00000002,
    367     SpvImageOperandsGradMask = 0x00000004,
    368     SpvImageOperandsConstOffsetMask = 0x00000008,
    369     SpvImageOperandsOffsetMask = 0x00000010,
    370     SpvImageOperandsConstOffsetsMask = 0x00000020,
    371     SpvImageOperandsSampleMask = 0x00000040,
    372     SpvImageOperandsMinLodMask = 0x00000080,
    373     SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
    374     SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
    375     SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
    376     SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
    377     SpvImageOperandsNonPrivateTexelMask = 0x00000400,
    378     SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
    379     SpvImageOperandsVolatileTexelMask = 0x00000800,
    380     SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
    381     SpvImageOperandsSignExtendMask = 0x00001000,
    382     SpvImageOperandsZeroExtendMask = 0x00002000,
    383 } SpvImageOperandsMask;
    384 
    385 typedef enum SpvFPFastMathModeShift_ {
    386     SpvFPFastMathModeNotNaNShift = 0,
    387     SpvFPFastMathModeNotInfShift = 1,
    388     SpvFPFastMathModeNSZShift = 2,
    389     SpvFPFastMathModeAllowRecipShift = 3,
    390     SpvFPFastMathModeFastShift = 4,
    391     SpvFPFastMathModeAllowContractFastINTELShift = 16,
    392     SpvFPFastMathModeAllowReassocINTELShift = 17,
    393     SpvFPFastMathModeMax = 0x7fffffff,
    394 } SpvFPFastMathModeShift;
    395 
    396 typedef enum SpvFPFastMathModeMask_ {
    397     SpvFPFastMathModeMaskNone = 0,
    398     SpvFPFastMathModeNotNaNMask = 0x00000001,
    399     SpvFPFastMathModeNotInfMask = 0x00000002,
    400     SpvFPFastMathModeNSZMask = 0x00000004,
    401     SpvFPFastMathModeAllowRecipMask = 0x00000008,
    402     SpvFPFastMathModeFastMask = 0x00000010,
    403     SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
    404     SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
    405 } SpvFPFastMathModeMask;
    406 
    407 typedef enum SpvFPRoundingMode_ {
    408     SpvFPRoundingModeRTE = 0,
    409     SpvFPRoundingModeRTZ = 1,
    410     SpvFPRoundingModeRTP = 2,
    411     SpvFPRoundingModeRTN = 3,
    412     SpvFPRoundingModeMax = 0x7fffffff,
    413 } SpvFPRoundingMode;
    414 
    415 typedef enum SpvLinkageType_ {
    416     SpvLinkageTypeExport = 0,
    417     SpvLinkageTypeImport = 1,
    418     SpvLinkageTypeLinkOnceODR = 2,
    419     SpvLinkageTypeMax = 0x7fffffff,
    420 } SpvLinkageType;
    421 
    422 typedef enum SpvAccessQualifier_ {
    423     SpvAccessQualifierReadOnly = 0,
    424     SpvAccessQualifierWriteOnly = 1,
    425     SpvAccessQualifierReadWrite = 2,
    426     SpvAccessQualifierMax = 0x7fffffff,
    427 } SpvAccessQualifier;
    428 
    429 typedef enum SpvFunctionParameterAttribute_ {
    430     SpvFunctionParameterAttributeZext = 0,
    431     SpvFunctionParameterAttributeSext = 1,
    432     SpvFunctionParameterAttributeByVal = 2,
    433     SpvFunctionParameterAttributeSret = 3,
    434     SpvFunctionParameterAttributeNoAlias = 4,
    435     SpvFunctionParameterAttributeNoCapture = 5,
    436     SpvFunctionParameterAttributeNoWrite = 6,
    437     SpvFunctionParameterAttributeNoReadWrite = 7,
    438     SpvFunctionParameterAttributeMax = 0x7fffffff,
    439 } SpvFunctionParameterAttribute;
    440 
    441 typedef enum SpvDecoration_ {
    442     SpvDecorationRelaxedPrecision = 0,
    443     SpvDecorationSpecId = 1,
    444     SpvDecorationBlock = 2,
    445     SpvDecorationBufferBlock = 3,
    446     SpvDecorationRowMajor = 4,
    447     SpvDecorationColMajor = 5,
    448     SpvDecorationArrayStride = 6,
    449     SpvDecorationMatrixStride = 7,
    450     SpvDecorationGLSLShared = 8,
    451     SpvDecorationGLSLPacked = 9,
    452     SpvDecorationCPacked = 10,
    453     SpvDecorationBuiltIn = 11,
    454     SpvDecorationNoPerspective = 13,
    455     SpvDecorationFlat = 14,
    456     SpvDecorationPatch = 15,
    457     SpvDecorationCentroid = 16,
    458     SpvDecorationSample = 17,
    459     SpvDecorationInvariant = 18,
    460     SpvDecorationRestrict = 19,
    461     SpvDecorationAliased = 20,
    462     SpvDecorationVolatile = 21,
    463     SpvDecorationConstant = 22,
    464     SpvDecorationCoherent = 23,
    465     SpvDecorationNonWritable = 24,
    466     SpvDecorationNonReadable = 25,
    467     SpvDecorationUniform = 26,
    468     SpvDecorationUniformId = 27,
    469     SpvDecorationSaturatedConversion = 28,
    470     SpvDecorationStream = 29,
    471     SpvDecorationLocation = 30,
    472     SpvDecorationComponent = 31,
    473     SpvDecorationIndex = 32,
    474     SpvDecorationBinding = 33,
    475     SpvDecorationDescriptorSet = 34,
    476     SpvDecorationOffset = 35,
    477     SpvDecorationXfbBuffer = 36,
    478     SpvDecorationXfbStride = 37,
    479     SpvDecorationFuncParamAttr = 38,
    480     SpvDecorationFPRoundingMode = 39,
    481     SpvDecorationFPFastMathMode = 40,
    482     SpvDecorationLinkageAttributes = 41,
    483     SpvDecorationNoContraction = 42,
    484     SpvDecorationInputAttachmentIndex = 43,
    485     SpvDecorationAlignment = 44,
    486     SpvDecorationMaxByteOffset = 45,
    487     SpvDecorationAlignmentId = 46,
    488     SpvDecorationMaxByteOffsetId = 47,
    489     SpvDecorationNoSignedWrap = 4469,
    490     SpvDecorationNoUnsignedWrap = 4470,
    491     SpvDecorationExplicitInterpAMD = 4999,
    492     SpvDecorationOverrideCoverageNV = 5248,
    493     SpvDecorationPassthroughNV = 5250,
    494     SpvDecorationViewportRelativeNV = 5252,
    495     SpvDecorationSecondaryViewportRelativeNV = 5256,
    496     SpvDecorationPerPrimitiveNV = 5271,
    497     SpvDecorationPerViewNV = 5272,
    498     SpvDecorationPerTaskNV = 5273,
    499     SpvDecorationPerVertexNV = 5285,
    500     SpvDecorationNonUniform = 5300,
    501     SpvDecorationNonUniformEXT = 5300,
    502     SpvDecorationRestrictPointer = 5355,
    503     SpvDecorationRestrictPointerEXT = 5355,
    504     SpvDecorationAliasedPointer = 5356,
    505     SpvDecorationAliasedPointerEXT = 5356,
    506     SpvDecorationSIMTCallINTEL = 5599,
    507     SpvDecorationReferencedIndirectlyINTEL = 5602,
    508     SpvDecorationClobberINTEL = 5607,
    509     SpvDecorationSideEffectsINTEL = 5608,
    510     SpvDecorationVectorComputeVariableINTEL = 5624,
    511     SpvDecorationFuncParamIOKindINTEL = 5625,
    512     SpvDecorationVectorComputeFunctionINTEL = 5626,
    513     SpvDecorationStackCallINTEL = 5627,
    514     SpvDecorationGlobalVariableOffsetINTEL = 5628,
    515     SpvDecorationCounterBuffer = 5634,
    516     SpvDecorationHlslCounterBufferGOOGLE = 5634,
    517     SpvDecorationHlslSemanticGOOGLE = 5635,
    518     SpvDecorationUserSemantic = 5635,
    519     SpvDecorationUserTypeGOOGLE = 5636,
    520     SpvDecorationFunctionRoundingModeINTEL = 5822,
    521     SpvDecorationFunctionDenormModeINTEL = 5823,
    522     SpvDecorationRegisterINTEL = 5825,
    523     SpvDecorationMemoryINTEL = 5826,
    524     SpvDecorationNumbanksINTEL = 5827,
    525     SpvDecorationBankwidthINTEL = 5828,
    526     SpvDecorationMaxPrivateCopiesINTEL = 5829,
    527     SpvDecorationSinglepumpINTEL = 5830,
    528     SpvDecorationDoublepumpINTEL = 5831,
    529     SpvDecorationMaxReplicatesINTEL = 5832,
    530     SpvDecorationSimpleDualPortINTEL = 5833,
    531     SpvDecorationMergeINTEL = 5834,
    532     SpvDecorationBankBitsINTEL = 5835,
    533     SpvDecorationForcePow2DepthINTEL = 5836,
    534     SpvDecorationBurstCoalesceINTEL = 5899,
    535     SpvDecorationCacheSizeINTEL = 5900,
    536     SpvDecorationDontStaticallyCoalesceINTEL = 5901,
    537     SpvDecorationPrefetchINTEL = 5902,
    538     SpvDecorationStallEnableINTEL = 5905,
    539     SpvDecorationFuseLoopsInFunctionINTEL = 5907,
    540     SpvDecorationBufferLocationINTEL = 5921,
    541     SpvDecorationIOPipeStorageINTEL = 5944,
    542     SpvDecorationFunctionFloatingPointModeINTEL = 6080,
    543     SpvDecorationSingleElementVectorINTEL = 6085,
    544     SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
    545     SpvDecorationMax = 0x7fffffff,
    546 } SpvDecoration;
    547 
    548 typedef enum SpvBuiltIn_ {
    549     SpvBuiltInPosition = 0,
    550     SpvBuiltInPointSize = 1,
    551     SpvBuiltInClipDistance = 3,
    552     SpvBuiltInCullDistance = 4,
    553     SpvBuiltInVertexId = 5,
    554     SpvBuiltInInstanceId = 6,
    555     SpvBuiltInPrimitiveId = 7,
    556     SpvBuiltInInvocationId = 8,
    557     SpvBuiltInLayer = 9,
    558     SpvBuiltInViewportIndex = 10,
    559     SpvBuiltInTessLevelOuter = 11,
    560     SpvBuiltInTessLevelInner = 12,
    561     SpvBuiltInTessCoord = 13,
    562     SpvBuiltInPatchVertices = 14,
    563     SpvBuiltInFragCoord = 15,
    564     SpvBuiltInPointCoord = 16,
    565     SpvBuiltInFrontFacing = 17,
    566     SpvBuiltInSampleId = 18,
    567     SpvBuiltInSamplePosition = 19,
    568     SpvBuiltInSampleMask = 20,
    569     SpvBuiltInFragDepth = 22,
    570     SpvBuiltInHelperInvocation = 23,
    571     SpvBuiltInNumWorkgroups = 24,
    572     SpvBuiltInWorkgroupSize = 25,
    573     SpvBuiltInWorkgroupId = 26,
    574     SpvBuiltInLocalInvocationId = 27,
    575     SpvBuiltInGlobalInvocationId = 28,
    576     SpvBuiltInLocalInvocationIndex = 29,
    577     SpvBuiltInWorkDim = 30,
    578     SpvBuiltInGlobalSize = 31,
    579     SpvBuiltInEnqueuedWorkgroupSize = 32,
    580     SpvBuiltInGlobalOffset = 33,
    581     SpvBuiltInGlobalLinearId = 34,
    582     SpvBuiltInSubgroupSize = 36,
    583     SpvBuiltInSubgroupMaxSize = 37,
    584     SpvBuiltInNumSubgroups = 38,
    585     SpvBuiltInNumEnqueuedSubgroups = 39,
    586     SpvBuiltInSubgroupId = 40,
    587     SpvBuiltInSubgroupLocalInvocationId = 41,
    588     SpvBuiltInVertexIndex = 42,
    589     SpvBuiltInInstanceIndex = 43,
    590     SpvBuiltInSubgroupEqMask = 4416,
    591     SpvBuiltInSubgroupEqMaskKHR = 4416,
    592     SpvBuiltInSubgroupGeMask = 4417,
    593     SpvBuiltInSubgroupGeMaskKHR = 4417,
    594     SpvBuiltInSubgroupGtMask = 4418,
    595     SpvBuiltInSubgroupGtMaskKHR = 4418,
    596     SpvBuiltInSubgroupLeMask = 4419,
    597     SpvBuiltInSubgroupLeMaskKHR = 4419,
    598     SpvBuiltInSubgroupLtMask = 4420,
    599     SpvBuiltInSubgroupLtMaskKHR = 4420,
    600     SpvBuiltInBaseVertex = 4424,
    601     SpvBuiltInBaseInstance = 4425,
    602     SpvBuiltInDrawIndex = 4426,
    603     SpvBuiltInPrimitiveShadingRateKHR = 4432,
    604     SpvBuiltInDeviceIndex = 4438,
    605     SpvBuiltInViewIndex = 4440,
    606     SpvBuiltInShadingRateKHR = 4444,
    607     SpvBuiltInBaryCoordNoPerspAMD = 4992,
    608     SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
    609     SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
    610     SpvBuiltInBaryCoordSmoothAMD = 4995,
    611     SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
    612     SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
    613     SpvBuiltInBaryCoordPullModelAMD = 4998,
    614     SpvBuiltInFragStencilRefEXT = 5014,
    615     SpvBuiltInViewportMaskNV = 5253,
    616     SpvBuiltInSecondaryPositionNV = 5257,
    617     SpvBuiltInSecondaryViewportMaskNV = 5258,
    618     SpvBuiltInPositionPerViewNV = 5261,
    619     SpvBuiltInViewportMaskPerViewNV = 5262,
    620     SpvBuiltInFullyCoveredEXT = 5264,
    621     SpvBuiltInTaskCountNV = 5274,
    622     SpvBuiltInPrimitiveCountNV = 5275,
    623     SpvBuiltInPrimitiveIndicesNV = 5276,
    624     SpvBuiltInClipDistancePerViewNV = 5277,
    625     SpvBuiltInCullDistancePerViewNV = 5278,
    626     SpvBuiltInLayerPerViewNV = 5279,
    627     SpvBuiltInMeshViewCountNV = 5280,
    628     SpvBuiltInMeshViewIndicesNV = 5281,
    629     SpvBuiltInBaryCoordNV = 5286,
    630     SpvBuiltInBaryCoordNoPerspNV = 5287,
    631     SpvBuiltInFragSizeEXT = 5292,
    632     SpvBuiltInFragmentSizeNV = 5292,
    633     SpvBuiltInFragInvocationCountEXT = 5293,
    634     SpvBuiltInInvocationsPerPixelNV = 5293,
    635     SpvBuiltInLaunchIdKHR = 5319,
    636     SpvBuiltInLaunchIdNV = 5319,
    637     SpvBuiltInLaunchSizeKHR = 5320,
    638     SpvBuiltInLaunchSizeNV = 5320,
    639     SpvBuiltInWorldRayOriginKHR = 5321,
    640     SpvBuiltInWorldRayOriginNV = 5321,
    641     SpvBuiltInWorldRayDirectionKHR = 5322,
    642     SpvBuiltInWorldRayDirectionNV = 5322,
    643     SpvBuiltInObjectRayOriginKHR = 5323,
    644     SpvBuiltInObjectRayOriginNV = 5323,
    645     SpvBuiltInObjectRayDirectionKHR = 5324,
    646     SpvBuiltInObjectRayDirectionNV = 5324,
    647     SpvBuiltInRayTminKHR = 5325,
    648     SpvBuiltInRayTminNV = 5325,
    649     SpvBuiltInRayTmaxKHR = 5326,
    650     SpvBuiltInRayTmaxNV = 5326,
    651     SpvBuiltInInstanceCustomIndexKHR = 5327,
    652     SpvBuiltInInstanceCustomIndexNV = 5327,
    653     SpvBuiltInObjectToWorldKHR = 5330,
    654     SpvBuiltInObjectToWorldNV = 5330,
    655     SpvBuiltInWorldToObjectKHR = 5331,
    656     SpvBuiltInWorldToObjectNV = 5331,
    657     SpvBuiltInHitTNV = 5332,
    658     SpvBuiltInHitKindKHR = 5333,
    659     SpvBuiltInHitKindNV = 5333,
    660     SpvBuiltInIncomingRayFlagsKHR = 5351,
    661     SpvBuiltInIncomingRayFlagsNV = 5351,
    662     SpvBuiltInRayGeometryIndexKHR = 5352,
    663     SpvBuiltInWarpsPerSMNV = 5374,
    664     SpvBuiltInSMCountNV = 5375,
    665     SpvBuiltInWarpIDNV = 5376,
    666     SpvBuiltInSMIDNV = 5377,
    667     SpvBuiltInMax = 0x7fffffff,
    668 } SpvBuiltIn;
    669 
    670 typedef enum SpvSelectionControlShift_ {
    671     SpvSelectionControlFlattenShift = 0,
    672     SpvSelectionControlDontFlattenShift = 1,
    673     SpvSelectionControlMax = 0x7fffffff,
    674 } SpvSelectionControlShift;
    675 
    676 typedef enum SpvSelectionControlMask_ {
    677     SpvSelectionControlMaskNone = 0,
    678     SpvSelectionControlFlattenMask = 0x00000001,
    679     SpvSelectionControlDontFlattenMask = 0x00000002,
    680 } SpvSelectionControlMask;
    681 
    682 typedef enum SpvLoopControlShift_ {
    683     SpvLoopControlUnrollShift = 0,
    684     SpvLoopControlDontUnrollShift = 1,
    685     SpvLoopControlDependencyInfiniteShift = 2,
    686     SpvLoopControlDependencyLengthShift = 3,
    687     SpvLoopControlMinIterationsShift = 4,
    688     SpvLoopControlMaxIterationsShift = 5,
    689     SpvLoopControlIterationMultipleShift = 6,
    690     SpvLoopControlPeelCountShift = 7,
    691     SpvLoopControlPartialCountShift = 8,
    692     SpvLoopControlInitiationIntervalINTELShift = 16,
    693     SpvLoopControlMaxConcurrencyINTELShift = 17,
    694     SpvLoopControlDependencyArrayINTELShift = 18,
    695     SpvLoopControlPipelineEnableINTELShift = 19,
    696     SpvLoopControlLoopCoalesceINTELShift = 20,
    697     SpvLoopControlMaxInterleavingINTELShift = 21,
    698     SpvLoopControlSpeculatedIterationsINTELShift = 22,
    699     SpvLoopControlNoFusionINTELShift = 23,
    700     SpvLoopControlMax = 0x7fffffff,
    701 } SpvLoopControlShift;
    702 
    703 typedef enum SpvLoopControlMask_ {
    704     SpvLoopControlMaskNone = 0,
    705     SpvLoopControlUnrollMask = 0x00000001,
    706     SpvLoopControlDontUnrollMask = 0x00000002,
    707     SpvLoopControlDependencyInfiniteMask = 0x00000004,
    708     SpvLoopControlDependencyLengthMask = 0x00000008,
    709     SpvLoopControlMinIterationsMask = 0x00000010,
    710     SpvLoopControlMaxIterationsMask = 0x00000020,
    711     SpvLoopControlIterationMultipleMask = 0x00000040,
    712     SpvLoopControlPeelCountMask = 0x00000080,
    713     SpvLoopControlPartialCountMask = 0x00000100,
    714     SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
    715     SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
    716     SpvLoopControlDependencyArrayINTELMask = 0x00040000,
    717     SpvLoopControlPipelineEnableINTELMask = 0x00080000,
    718     SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
    719     SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
    720     SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
    721     SpvLoopControlNoFusionINTELMask = 0x00800000,
    722 } SpvLoopControlMask;
    723 
    724 typedef enum SpvFunctionControlShift_ {
    725     SpvFunctionControlInlineShift = 0,
    726     SpvFunctionControlDontInlineShift = 1,
    727     SpvFunctionControlPureShift = 2,
    728     SpvFunctionControlConstShift = 3,
    729     SpvFunctionControlOptNoneINTELShift = 16,
    730     SpvFunctionControlMax = 0x7fffffff,
    731 } SpvFunctionControlShift;
    732 
    733 typedef enum SpvFunctionControlMask_ {
    734     SpvFunctionControlMaskNone = 0,
    735     SpvFunctionControlInlineMask = 0x00000001,
    736     SpvFunctionControlDontInlineMask = 0x00000002,
    737     SpvFunctionControlPureMask = 0x00000004,
    738     SpvFunctionControlConstMask = 0x00000008,
    739     SpvFunctionControlOptNoneINTELMask = 0x00010000,
    740 } SpvFunctionControlMask;
    741 
    742 typedef enum SpvMemorySemanticsShift_ {
    743     SpvMemorySemanticsAcquireShift = 1,
    744     SpvMemorySemanticsReleaseShift = 2,
    745     SpvMemorySemanticsAcquireReleaseShift = 3,
    746     SpvMemorySemanticsSequentiallyConsistentShift = 4,
    747     SpvMemorySemanticsUniformMemoryShift = 6,
    748     SpvMemorySemanticsSubgroupMemoryShift = 7,
    749     SpvMemorySemanticsWorkgroupMemoryShift = 8,
    750     SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
    751     SpvMemorySemanticsAtomicCounterMemoryShift = 10,
    752     SpvMemorySemanticsImageMemoryShift = 11,
    753     SpvMemorySemanticsOutputMemoryShift = 12,
    754     SpvMemorySemanticsOutputMemoryKHRShift = 12,
    755     SpvMemorySemanticsMakeAvailableShift = 13,
    756     SpvMemorySemanticsMakeAvailableKHRShift = 13,
    757     SpvMemorySemanticsMakeVisibleShift = 14,
    758     SpvMemorySemanticsMakeVisibleKHRShift = 14,
    759     SpvMemorySemanticsVolatileShift = 15,
    760     SpvMemorySemanticsMax = 0x7fffffff,
    761 } SpvMemorySemanticsShift;
    762 
    763 typedef enum SpvMemorySemanticsMask_ {
    764     SpvMemorySemanticsMaskNone = 0,
    765     SpvMemorySemanticsAcquireMask = 0x00000002,
    766     SpvMemorySemanticsReleaseMask = 0x00000004,
    767     SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
    768     SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
    769     SpvMemorySemanticsUniformMemoryMask = 0x00000040,
    770     SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
    771     SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
    772     SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
    773     SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
    774     SpvMemorySemanticsImageMemoryMask = 0x00000800,
    775     SpvMemorySemanticsOutputMemoryMask = 0x00001000,
    776     SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
    777     SpvMemorySemanticsMakeAvailableMask = 0x00002000,
    778     SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
    779     SpvMemorySemanticsMakeVisibleMask = 0x00004000,
    780     SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
    781     SpvMemorySemanticsVolatileMask = 0x00008000,
    782 } SpvMemorySemanticsMask;
    783 
    784 typedef enum SpvMemoryAccessShift_ {
    785     SpvMemoryAccessVolatileShift = 0,
    786     SpvMemoryAccessAlignedShift = 1,
    787     SpvMemoryAccessNontemporalShift = 2,
    788     SpvMemoryAccessMakePointerAvailableShift = 3,
    789     SpvMemoryAccessMakePointerAvailableKHRShift = 3,
    790     SpvMemoryAccessMakePointerVisibleShift = 4,
    791     SpvMemoryAccessMakePointerVisibleKHRShift = 4,
    792     SpvMemoryAccessNonPrivatePointerShift = 5,
    793     SpvMemoryAccessNonPrivatePointerKHRShift = 5,
    794     SpvMemoryAccessMax = 0x7fffffff,
    795 } SpvMemoryAccessShift;
    796 
    797 typedef enum SpvMemoryAccessMask_ {
    798     SpvMemoryAccessMaskNone = 0,
    799     SpvMemoryAccessVolatileMask = 0x00000001,
    800     SpvMemoryAccessAlignedMask = 0x00000002,
    801     SpvMemoryAccessNontemporalMask = 0x00000004,
    802     SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
    803     SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
    804     SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
    805     SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
    806     SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
    807     SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
    808 } SpvMemoryAccessMask;
    809 
    810 typedef enum SpvScope_ {
    811     SpvScopeCrossDevice = 0,
    812     SpvScopeDevice = 1,
    813     SpvScopeWorkgroup = 2,
    814     SpvScopeSubgroup = 3,
    815     SpvScopeInvocation = 4,
    816     SpvScopeQueueFamily = 5,
    817     SpvScopeQueueFamilyKHR = 5,
    818     SpvScopeShaderCallKHR = 6,
    819     SpvScopeMax = 0x7fffffff,
    820 } SpvScope;
    821 
    822 typedef enum SpvGroupOperation_ {
    823     SpvGroupOperationReduce = 0,
    824     SpvGroupOperationInclusiveScan = 1,
    825     SpvGroupOperationExclusiveScan = 2,
    826     SpvGroupOperationClusteredReduce = 3,
    827     SpvGroupOperationPartitionedReduceNV = 6,
    828     SpvGroupOperationPartitionedInclusiveScanNV = 7,
    829     SpvGroupOperationPartitionedExclusiveScanNV = 8,
    830     SpvGroupOperationMax = 0x7fffffff,
    831 } SpvGroupOperation;
    832 
    833 typedef enum SpvKernelEnqueueFlags_ {
    834     SpvKernelEnqueueFlagsNoWait = 0,
    835     SpvKernelEnqueueFlagsWaitKernel = 1,
    836     SpvKernelEnqueueFlagsWaitWorkGroup = 2,
    837     SpvKernelEnqueueFlagsMax = 0x7fffffff,
    838 } SpvKernelEnqueueFlags;
    839 
    840 typedef enum SpvKernelProfilingInfoShift_ {
    841     SpvKernelProfilingInfoCmdExecTimeShift = 0,
    842     SpvKernelProfilingInfoMax = 0x7fffffff,
    843 } SpvKernelProfilingInfoShift;
    844 
    845 typedef enum SpvKernelProfilingInfoMask_ {
    846     SpvKernelProfilingInfoMaskNone = 0,
    847     SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
    848 } SpvKernelProfilingInfoMask;
    849 
    850 typedef enum SpvCapability_ {
    851     SpvCapabilityMatrix = 0,
    852     SpvCapabilityShader = 1,
    853     SpvCapabilityGeometry = 2,
    854     SpvCapabilityTessellation = 3,
    855     SpvCapabilityAddresses = 4,
    856     SpvCapabilityLinkage = 5,
    857     SpvCapabilityKernel = 6,
    858     SpvCapabilityVector16 = 7,
    859     SpvCapabilityFloat16Buffer = 8,
    860     SpvCapabilityFloat16 = 9,
    861     SpvCapabilityFloat64 = 10,
    862     SpvCapabilityInt64 = 11,
    863     SpvCapabilityInt64Atomics = 12,
    864     SpvCapabilityImageBasic = 13,
    865     SpvCapabilityImageReadWrite = 14,
    866     SpvCapabilityImageMipmap = 15,
    867     SpvCapabilityPipes = 17,
    868     SpvCapabilityGroups = 18,
    869     SpvCapabilityDeviceEnqueue = 19,
    870     SpvCapabilityLiteralSampler = 20,
    871     SpvCapabilityAtomicStorage = 21,
    872     SpvCapabilityInt16 = 22,
    873     SpvCapabilityTessellationPointSize = 23,
    874     SpvCapabilityGeometryPointSize = 24,
    875     SpvCapabilityImageGatherExtended = 25,
    876     SpvCapabilityStorageImageMultisample = 27,
    877     SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
    878     SpvCapabilitySampledImageArrayDynamicIndexing = 29,
    879     SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
    880     SpvCapabilityStorageImageArrayDynamicIndexing = 31,
    881     SpvCapabilityClipDistance = 32,
    882     SpvCapabilityCullDistance = 33,
    883     SpvCapabilityImageCubeArray = 34,
    884     SpvCapabilitySampleRateShading = 35,
    885     SpvCapabilityImageRect = 36,
    886     SpvCapabilitySampledRect = 37,
    887     SpvCapabilityGenericPointer = 38,
    888     SpvCapabilityInt8 = 39,
    889     SpvCapabilityInputAttachment = 40,
    890     SpvCapabilitySparseResidency = 41,
    891     SpvCapabilityMinLod = 42,
    892     SpvCapabilitySampled1D = 43,
    893     SpvCapabilityImage1D = 44,
    894     SpvCapabilitySampledCubeArray = 45,
    895     SpvCapabilitySampledBuffer = 46,
    896     SpvCapabilityImageBuffer = 47,
    897     SpvCapabilityImageMSArray = 48,
    898     SpvCapabilityStorageImageExtendedFormats = 49,
    899     SpvCapabilityImageQuery = 50,
    900     SpvCapabilityDerivativeControl = 51,
    901     SpvCapabilityInterpolationFunction = 52,
    902     SpvCapabilityTransformFeedback = 53,
    903     SpvCapabilityGeometryStreams = 54,
    904     SpvCapabilityStorageImageReadWithoutFormat = 55,
    905     SpvCapabilityStorageImageWriteWithoutFormat = 56,
    906     SpvCapabilityMultiViewport = 57,
    907     SpvCapabilitySubgroupDispatch = 58,
    908     SpvCapabilityNamedBarrier = 59,
    909     SpvCapabilityPipeStorage = 60,
    910     SpvCapabilityGroupNonUniform = 61,
    911     SpvCapabilityGroupNonUniformVote = 62,
    912     SpvCapabilityGroupNonUniformArithmetic = 63,
    913     SpvCapabilityGroupNonUniformBallot = 64,
    914     SpvCapabilityGroupNonUniformShuffle = 65,
    915     SpvCapabilityGroupNonUniformShuffleRelative = 66,
    916     SpvCapabilityGroupNonUniformClustered = 67,
    917     SpvCapabilityGroupNonUniformQuad = 68,
    918     SpvCapabilityShaderLayer = 69,
    919     SpvCapabilityShaderViewportIndex = 70,
    920     SpvCapabilityFragmentShadingRateKHR = 4422,
    921     SpvCapabilitySubgroupBallotKHR = 4423,
    922     SpvCapabilityDrawParameters = 4427,
    923     SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
    924     SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
    925     SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
    926     SpvCapabilitySubgroupVoteKHR = 4431,
    927     SpvCapabilityStorageBuffer16BitAccess = 4433,
    928     SpvCapabilityStorageUniformBufferBlock16 = 4433,
    929     SpvCapabilityStorageUniform16 = 4434,
    930     SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
    931     SpvCapabilityStoragePushConstant16 = 4435,
    932     SpvCapabilityStorageInputOutput16 = 4436,
    933     SpvCapabilityDeviceGroup = 4437,
    934     SpvCapabilityMultiView = 4439,
    935     SpvCapabilityVariablePointersStorageBuffer = 4441,
    936     SpvCapabilityVariablePointers = 4442,
    937     SpvCapabilityAtomicStorageOps = 4445,
    938     SpvCapabilitySampleMaskPostDepthCoverage = 4447,
    939     SpvCapabilityStorageBuffer8BitAccess = 4448,
    940     SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
    941     SpvCapabilityStoragePushConstant8 = 4450,
    942     SpvCapabilityDenormPreserve = 4464,
    943     SpvCapabilityDenormFlushToZero = 4465,
    944     SpvCapabilitySignedZeroInfNanPreserve = 4466,
    945     SpvCapabilityRoundingModeRTE = 4467,
    946     SpvCapabilityRoundingModeRTZ = 4468,
    947     SpvCapabilityRayQueryProvisionalKHR = 4471,
    948     SpvCapabilityRayQueryKHR = 4472,
    949     SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
    950     SpvCapabilityRayTracingKHR = 4479,
    951     SpvCapabilityFloat16ImageAMD = 5008,
    952     SpvCapabilityImageGatherBiasLodAMD = 5009,
    953     SpvCapabilityFragmentMaskAMD = 5010,
    954     SpvCapabilityStencilExportEXT = 5013,
    955     SpvCapabilityImageReadWriteLodAMD = 5015,
    956     SpvCapabilityInt64ImageEXT = 5016,
    957     SpvCapabilityShaderClockKHR = 5055,
    958     SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
    959     SpvCapabilityGeometryShaderPassthroughNV = 5251,
    960     SpvCapabilityShaderViewportIndexLayerEXT = 5254,
    961     SpvCapabilityShaderViewportIndexLayerNV = 5254,
    962     SpvCapabilityShaderViewportMaskNV = 5255,
    963     SpvCapabilityShaderStereoViewNV = 5259,
    964     SpvCapabilityPerViewAttributesNV = 5260,
    965     SpvCapabilityFragmentFullyCoveredEXT = 5265,
    966     SpvCapabilityMeshShadingNV = 5266,
    967     SpvCapabilityImageFootprintNV = 5282,
    968     SpvCapabilityFragmentBarycentricNV = 5284,
    969     SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
    970     SpvCapabilityFragmentDensityEXT = 5291,
    971     SpvCapabilityShadingRateNV = 5291,
    972     SpvCapabilityGroupNonUniformPartitionedNV = 5297,
    973     SpvCapabilityShaderNonUniform = 5301,
    974     SpvCapabilityShaderNonUniformEXT = 5301,
    975     SpvCapabilityRuntimeDescriptorArray = 5302,
    976     SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
    977     SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
    978     SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
    979     SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
    980     SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
    981     SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
    982     SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
    983     SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
    984     SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
    985     SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
    986     SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
    987     SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
    988     SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
    989     SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
    990     SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
    991     SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
    992     SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
    993     SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
    994     SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
    995     SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
    996     SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
    997     SpvCapabilityRayTracingNV = 5340,
    998     SpvCapabilityVulkanMemoryModel = 5345,
    999     SpvCapabilityVulkanMemoryModelKHR = 5345,
   1000     SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
   1001     SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
   1002     SpvCapabilityPhysicalStorageBufferAddresses = 5347,
   1003     SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
   1004     SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
   1005     SpvCapabilityRayTracingProvisionalKHR = 5353,
   1006     SpvCapabilityCooperativeMatrixNV = 5357,
   1007     SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
   1008     SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
   1009     SpvCapabilityShaderSMBuiltinsNV = 5373,
   1010     SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
   1011     SpvCapabilityDemoteToHelperInvocationEXT = 5379,
   1012     SpvCapabilitySubgroupShuffleINTEL = 5568,
   1013     SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
   1014     SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
   1015     SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
   1016     SpvCapabilityRoundToInfinityINTEL = 5582,
   1017     SpvCapabilityFloatingPointModeINTEL = 5583,
   1018     SpvCapabilityIntegerFunctions2INTEL = 5584,
   1019     SpvCapabilityFunctionPointersINTEL = 5603,
   1020     SpvCapabilityIndirectReferencesINTEL = 5604,
   1021     SpvCapabilityAsmINTEL = 5606,
   1022     SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
   1023     SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
   1024     SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
   1025     SpvCapabilityVectorComputeINTEL = 5617,
   1026     SpvCapabilityVectorAnyINTEL = 5619,
   1027     SpvCapabilityExpectAssumeKHR = 5629,
   1028     SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
   1029     SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
   1030     SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
   1031     SpvCapabilityVariableLengthArrayINTEL = 5817,
   1032     SpvCapabilityFunctionFloatControlINTEL = 5821,
   1033     SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
   1034     SpvCapabilityFPFastMathModeINTEL = 5837,
   1035     SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
   1036     SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
   1037     SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
   1038     SpvCapabilityFPGALoopControlsINTEL = 5888,
   1039     SpvCapabilityKernelAttributesINTEL = 5892,
   1040     SpvCapabilityFPGAKernelAttributesINTEL = 5897,
   1041     SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
   1042     SpvCapabilityFPGAClusterAttributesINTEL = 5904,
   1043     SpvCapabilityLoopFuseINTEL = 5906,
   1044     SpvCapabilityFPGABufferLocationINTEL = 5920,
   1045     SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
   1046     SpvCapabilityUSMStorageClassesINTEL = 5935,
   1047     SpvCapabilityIOPipesINTEL = 5943,
   1048     SpvCapabilityBlockingPipesINTEL = 5945,
   1049     SpvCapabilityFPGARegINTEL = 5948,
   1050     SpvCapabilityDotProductInputAllKHR = 6016,
   1051     SpvCapabilityDotProductInput4x8BitKHR = 6017,
   1052     SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
   1053     SpvCapabilityDotProductKHR = 6019,
   1054     SpvCapabilityBitInstructions = 6025,
   1055     SpvCapabilityAtomicFloat32AddEXT = 6033,
   1056     SpvCapabilityAtomicFloat64AddEXT = 6034,
   1057     SpvCapabilityLongConstantCompositeINTEL = 6089,
   1058     SpvCapabilityOptNoneINTEL = 6094,
   1059     SpvCapabilityAtomicFloat16AddEXT = 6095,
   1060     SpvCapabilityDebugInfoModuleINTEL = 6114,
   1061     SpvCapabilityMax = 0x7fffffff,
   1062 } SpvCapability;
   1063 
   1064 typedef enum SpvRayFlagsShift_ {
   1065     SpvRayFlagsOpaqueKHRShift = 0,
   1066     SpvRayFlagsNoOpaqueKHRShift = 1,
   1067     SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
   1068     SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
   1069     SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
   1070     SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
   1071     SpvRayFlagsCullOpaqueKHRShift = 6,
   1072     SpvRayFlagsCullNoOpaqueKHRShift = 7,
   1073     SpvRayFlagsSkipTrianglesKHRShift = 8,
   1074     SpvRayFlagsSkipAABBsKHRShift = 9,
   1075     SpvRayFlagsMax = 0x7fffffff,
   1076 } SpvRayFlagsShift;
   1077 
   1078 typedef enum SpvRayFlagsMask_ {
   1079     SpvRayFlagsMaskNone = 0,
   1080     SpvRayFlagsOpaqueKHRMask = 0x00000001,
   1081     SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
   1082     SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
   1083     SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
   1084     SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
   1085     SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
   1086     SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
   1087     SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
   1088     SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
   1089     SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
   1090 } SpvRayFlagsMask;
   1091 
   1092 typedef enum SpvRayQueryIntersection_ {
   1093     SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
   1094     SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
   1095     SpvRayQueryIntersectionMax = 0x7fffffff,
   1096 } SpvRayQueryIntersection;
   1097 
   1098 typedef enum SpvRayQueryCommittedIntersectionType_ {
   1099     SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
   1100     SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
   1101     SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
   1102     SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
   1103 } SpvRayQueryCommittedIntersectionType;
   1104 
   1105 typedef enum SpvRayQueryCandidateIntersectionType_ {
   1106     SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
   1107     SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
   1108     SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
   1109 } SpvRayQueryCandidateIntersectionType;
   1110 
   1111 typedef enum SpvFragmentShadingRateShift_ {
   1112     SpvFragmentShadingRateVertical2PixelsShift = 0,
   1113     SpvFragmentShadingRateVertical4PixelsShift = 1,
   1114     SpvFragmentShadingRateHorizontal2PixelsShift = 2,
   1115     SpvFragmentShadingRateHorizontal4PixelsShift = 3,
   1116     SpvFragmentShadingRateMax = 0x7fffffff,
   1117 } SpvFragmentShadingRateShift;
   1118 
   1119 typedef enum SpvFragmentShadingRateMask_ {
   1120     SpvFragmentShadingRateMaskNone = 0,
   1121     SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
   1122     SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
   1123     SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
   1124     SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
   1125 } SpvFragmentShadingRateMask;
   1126 
   1127 typedef enum SpvFPDenormMode_ {
   1128     SpvFPDenormModePreserve = 0,
   1129     SpvFPDenormModeFlushToZero = 1,
   1130     SpvFPDenormModeMax = 0x7fffffff,
   1131 } SpvFPDenormMode;
   1132 
   1133 typedef enum SpvFPOperationMode_ {
   1134     SpvFPOperationModeIEEE = 0,
   1135     SpvFPOperationModeALT = 1,
   1136     SpvFPOperationModeMax = 0x7fffffff,
   1137 } SpvFPOperationMode;
   1138 
   1139 typedef enum SpvQuantizationModes_ {
   1140     SpvQuantizationModesTRN = 0,
   1141     SpvQuantizationModesTRN_ZERO = 1,
   1142     SpvQuantizationModesRND = 2,
   1143     SpvQuantizationModesRND_ZERO = 3,
   1144     SpvQuantizationModesRND_INF = 4,
   1145     SpvQuantizationModesRND_MIN_INF = 5,
   1146     SpvQuantizationModesRND_CONV = 6,
   1147     SpvQuantizationModesRND_CONV_ODD = 7,
   1148     SpvQuantizationModesMax = 0x7fffffff,
   1149 } SpvQuantizationModes;
   1150 
   1151 typedef enum SpvOverflowModes_ {
   1152     SpvOverflowModesWRAP = 0,
   1153     SpvOverflowModesSAT = 1,
   1154     SpvOverflowModesSAT_ZERO = 2,
   1155     SpvOverflowModesSAT_SYM = 3,
   1156     SpvOverflowModesMax = 0x7fffffff,
   1157 } SpvOverflowModes;
   1158 
   1159 typedef enum SpvPackedVectorFormat_ {
   1160     SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
   1161     SpvPackedVectorFormatMax = 0x7fffffff,
   1162 } SpvPackedVectorFormat;
   1163 
   1164 typedef enum SpvOp_ {
   1165     SpvOpNop = 0,
   1166     SpvOpUndef = 1,
   1167     SpvOpSourceContinued = 2,
   1168     SpvOpSource = 3,
   1169     SpvOpSourceExtension = 4,
   1170     SpvOpName = 5,
   1171     SpvOpMemberName = 6,
   1172     SpvOpString = 7,
   1173     SpvOpLine = 8,
   1174     SpvOpExtension = 10,
   1175     SpvOpExtInstImport = 11,
   1176     SpvOpExtInst = 12,
   1177     SpvOpMemoryModel = 14,
   1178     SpvOpEntryPoint = 15,
   1179     SpvOpExecutionMode = 16,
   1180     SpvOpCapability = 17,
   1181     SpvOpTypeVoid = 19,
   1182     SpvOpTypeBool = 20,
   1183     SpvOpTypeInt = 21,
   1184     SpvOpTypeFloat = 22,
   1185     SpvOpTypeVector = 23,
   1186     SpvOpTypeMatrix = 24,
   1187     SpvOpTypeImage = 25,
   1188     SpvOpTypeSampler = 26,
   1189     SpvOpTypeSampledImage = 27,
   1190     SpvOpTypeArray = 28,
   1191     SpvOpTypeRuntimeArray = 29,
   1192     SpvOpTypeStruct = 30,
   1193     SpvOpTypeOpaque = 31,
   1194     SpvOpTypePointer = 32,
   1195     SpvOpTypeFunction = 33,
   1196     SpvOpTypeEvent = 34,
   1197     SpvOpTypeDeviceEvent = 35,
   1198     SpvOpTypeReserveId = 36,
   1199     SpvOpTypeQueue = 37,
   1200     SpvOpTypePipe = 38,
   1201     SpvOpTypeForwardPointer = 39,
   1202     SpvOpConstantTrue = 41,
   1203     SpvOpConstantFalse = 42,
   1204     SpvOpConstant = 43,
   1205     SpvOpConstantComposite = 44,
   1206     SpvOpConstantSampler = 45,
   1207     SpvOpConstantNull = 46,
   1208     SpvOpSpecConstantTrue = 48,
   1209     SpvOpSpecConstantFalse = 49,
   1210     SpvOpSpecConstant = 50,
   1211     SpvOpSpecConstantComposite = 51,
   1212     SpvOpSpecConstantOp = 52,
   1213     SpvOpFunction = 54,
   1214     SpvOpFunctionParameter = 55,
   1215     SpvOpFunctionEnd = 56,
   1216     SpvOpFunctionCall = 57,
   1217     SpvOpVariable = 59,
   1218     SpvOpImageTexelPointer = 60,
   1219     SpvOpLoad = 61,
   1220     SpvOpStore = 62,
   1221     SpvOpCopyMemory = 63,
   1222     SpvOpCopyMemorySized = 64,
   1223     SpvOpAccessChain = 65,
   1224     SpvOpInBoundsAccessChain = 66,
   1225     SpvOpPtrAccessChain = 67,
   1226     SpvOpArrayLength = 68,
   1227     SpvOpGenericPtrMemSemantics = 69,
   1228     SpvOpInBoundsPtrAccessChain = 70,
   1229     SpvOpDecorate = 71,
   1230     SpvOpMemberDecorate = 72,
   1231     SpvOpDecorationGroup = 73,
   1232     SpvOpGroupDecorate = 74,
   1233     SpvOpGroupMemberDecorate = 75,
   1234     SpvOpVectorExtractDynamic = 77,
   1235     SpvOpVectorInsertDynamic = 78,
   1236     SpvOpVectorShuffle = 79,
   1237     SpvOpCompositeConstruct = 80,
   1238     SpvOpCompositeExtract = 81,
   1239     SpvOpCompositeInsert = 82,
   1240     SpvOpCopyObject = 83,
   1241     SpvOpTranspose = 84,
   1242     SpvOpSampledImage = 86,
   1243     SpvOpImageSampleImplicitLod = 87,
   1244     SpvOpImageSampleExplicitLod = 88,
   1245     SpvOpImageSampleDrefImplicitLod = 89,
   1246     SpvOpImageSampleDrefExplicitLod = 90,
   1247     SpvOpImageSampleProjImplicitLod = 91,
   1248     SpvOpImageSampleProjExplicitLod = 92,
   1249     SpvOpImageSampleProjDrefImplicitLod = 93,
   1250     SpvOpImageSampleProjDrefExplicitLod = 94,
   1251     SpvOpImageFetch = 95,
   1252     SpvOpImageGather = 96,
   1253     SpvOpImageDrefGather = 97,
   1254     SpvOpImageRead = 98,
   1255     SpvOpImageWrite = 99,
   1256     SpvOpImage = 100,
   1257     SpvOpImageQueryFormat = 101,
   1258     SpvOpImageQueryOrder = 102,
   1259     SpvOpImageQuerySizeLod = 103,
   1260     SpvOpImageQuerySize = 104,
   1261     SpvOpImageQueryLod = 105,
   1262     SpvOpImageQueryLevels = 106,
   1263     SpvOpImageQuerySamples = 107,
   1264     SpvOpConvertFToU = 109,
   1265     SpvOpConvertFToS = 110,
   1266     SpvOpConvertSToF = 111,
   1267     SpvOpConvertUToF = 112,
   1268     SpvOpUConvert = 113,
   1269     SpvOpSConvert = 114,
   1270     SpvOpFConvert = 115,
   1271     SpvOpQuantizeToF16 = 116,
   1272     SpvOpConvertPtrToU = 117,
   1273     SpvOpSatConvertSToU = 118,
   1274     SpvOpSatConvertUToS = 119,
   1275     SpvOpConvertUToPtr = 120,
   1276     SpvOpPtrCastToGeneric = 121,
   1277     SpvOpGenericCastToPtr = 122,
   1278     SpvOpGenericCastToPtrExplicit = 123,
   1279     SpvOpBitcast = 124,
   1280     SpvOpSNegate = 126,
   1281     SpvOpFNegate = 127,
   1282     SpvOpIAdd = 128,
   1283     SpvOpFAdd = 129,
   1284     SpvOpISub = 130,
   1285     SpvOpFSub = 131,
   1286     SpvOpIMul = 132,
   1287     SpvOpFMul = 133,
   1288     SpvOpUDiv = 134,
   1289     SpvOpSDiv = 135,
   1290     SpvOpFDiv = 136,
   1291     SpvOpUMod = 137,
   1292     SpvOpSRem = 138,
   1293     SpvOpSMod = 139,
   1294     SpvOpFRem = 140,
   1295     SpvOpFMod = 141,
   1296     SpvOpVectorTimesScalar = 142,
   1297     SpvOpMatrixTimesScalar = 143,
   1298     SpvOpVectorTimesMatrix = 144,
   1299     SpvOpMatrixTimesVector = 145,
   1300     SpvOpMatrixTimesMatrix = 146,
   1301     SpvOpOuterProduct = 147,
   1302     SpvOpDot = 148,
   1303     SpvOpIAddCarry = 149,
   1304     SpvOpISubBorrow = 150,
   1305     SpvOpUMulExtended = 151,
   1306     SpvOpSMulExtended = 152,
   1307     SpvOpAny = 154,
   1308     SpvOpAll = 155,
   1309     SpvOpIsNan = 156,
   1310     SpvOpIsInf = 157,
   1311     SpvOpIsFinite = 158,
   1312     SpvOpIsNormal = 159,
   1313     SpvOpSignBitSet = 160,
   1314     SpvOpLessOrGreater = 161,
   1315     SpvOpOrdered = 162,
   1316     SpvOpUnordered = 163,
   1317     SpvOpLogicalEqual = 164,
   1318     SpvOpLogicalNotEqual = 165,
   1319     SpvOpLogicalOr = 166,
   1320     SpvOpLogicalAnd = 167,
   1321     SpvOpLogicalNot = 168,
   1322     SpvOpSelect = 169,
   1323     SpvOpIEqual = 170,
   1324     SpvOpINotEqual = 171,
   1325     SpvOpUGreaterThan = 172,
   1326     SpvOpSGreaterThan = 173,
   1327     SpvOpUGreaterThanEqual = 174,
   1328     SpvOpSGreaterThanEqual = 175,
   1329     SpvOpULessThan = 176,
   1330     SpvOpSLessThan = 177,
   1331     SpvOpULessThanEqual = 178,
   1332     SpvOpSLessThanEqual = 179,
   1333     SpvOpFOrdEqual = 180,
   1334     SpvOpFUnordEqual = 181,
   1335     SpvOpFOrdNotEqual = 182,
   1336     SpvOpFUnordNotEqual = 183,
   1337     SpvOpFOrdLessThan = 184,
   1338     SpvOpFUnordLessThan = 185,
   1339     SpvOpFOrdGreaterThan = 186,
   1340     SpvOpFUnordGreaterThan = 187,
   1341     SpvOpFOrdLessThanEqual = 188,
   1342     SpvOpFUnordLessThanEqual = 189,
   1343     SpvOpFOrdGreaterThanEqual = 190,
   1344     SpvOpFUnordGreaterThanEqual = 191,
   1345     SpvOpShiftRightLogical = 194,
   1346     SpvOpShiftRightArithmetic = 195,
   1347     SpvOpShiftLeftLogical = 196,
   1348     SpvOpBitwiseOr = 197,
   1349     SpvOpBitwiseXor = 198,
   1350     SpvOpBitwiseAnd = 199,
   1351     SpvOpNot = 200,
   1352     SpvOpBitFieldInsert = 201,
   1353     SpvOpBitFieldSExtract = 202,
   1354     SpvOpBitFieldUExtract = 203,
   1355     SpvOpBitReverse = 204,
   1356     SpvOpBitCount = 205,
   1357     SpvOpDPdx = 207,
   1358     SpvOpDPdy = 208,
   1359     SpvOpFwidth = 209,
   1360     SpvOpDPdxFine = 210,
   1361     SpvOpDPdyFine = 211,
   1362     SpvOpFwidthFine = 212,
   1363     SpvOpDPdxCoarse = 213,
   1364     SpvOpDPdyCoarse = 214,
   1365     SpvOpFwidthCoarse = 215,
   1366     SpvOpEmitVertex = 218,
   1367     SpvOpEndPrimitive = 219,
   1368     SpvOpEmitStreamVertex = 220,
   1369     SpvOpEndStreamPrimitive = 221,
   1370     SpvOpControlBarrier = 224,
   1371     SpvOpMemoryBarrier = 225,
   1372     SpvOpAtomicLoad = 227,
   1373     SpvOpAtomicStore = 228,
   1374     SpvOpAtomicExchange = 229,
   1375     SpvOpAtomicCompareExchange = 230,
   1376     SpvOpAtomicCompareExchangeWeak = 231,
   1377     SpvOpAtomicIIncrement = 232,
   1378     SpvOpAtomicIDecrement = 233,
   1379     SpvOpAtomicIAdd = 234,
   1380     SpvOpAtomicISub = 235,
   1381     SpvOpAtomicSMin = 236,
   1382     SpvOpAtomicUMin = 237,
   1383     SpvOpAtomicSMax = 238,
   1384     SpvOpAtomicUMax = 239,
   1385     SpvOpAtomicAnd = 240,
   1386     SpvOpAtomicOr = 241,
   1387     SpvOpAtomicXor = 242,
   1388     SpvOpPhi = 245,
   1389     SpvOpLoopMerge = 246,
   1390     SpvOpSelectionMerge = 247,
   1391     SpvOpLabel = 248,
   1392     SpvOpBranch = 249,
   1393     SpvOpBranchConditional = 250,
   1394     SpvOpSwitch = 251,
   1395     SpvOpKill = 252,
   1396     SpvOpReturn = 253,
   1397     SpvOpReturnValue = 254,
   1398     SpvOpUnreachable = 255,
   1399     SpvOpLifetimeStart = 256,
   1400     SpvOpLifetimeStop = 257,
   1401     SpvOpGroupAsyncCopy = 259,
   1402     SpvOpGroupWaitEvents = 260,
   1403     SpvOpGroupAll = 261,
   1404     SpvOpGroupAny = 262,
   1405     SpvOpGroupBroadcast = 263,
   1406     SpvOpGroupIAdd = 264,
   1407     SpvOpGroupFAdd = 265,
   1408     SpvOpGroupFMin = 266,
   1409     SpvOpGroupUMin = 267,
   1410     SpvOpGroupSMin = 268,
   1411     SpvOpGroupFMax = 269,
   1412     SpvOpGroupUMax = 270,
   1413     SpvOpGroupSMax = 271,
   1414     SpvOpReadPipe = 274,
   1415     SpvOpWritePipe = 275,
   1416     SpvOpReservedReadPipe = 276,
   1417     SpvOpReservedWritePipe = 277,
   1418     SpvOpReserveReadPipePackets = 278,
   1419     SpvOpReserveWritePipePackets = 279,
   1420     SpvOpCommitReadPipe = 280,
   1421     SpvOpCommitWritePipe = 281,
   1422     SpvOpIsValidReserveId = 282,
   1423     SpvOpGetNumPipePackets = 283,
   1424     SpvOpGetMaxPipePackets = 284,
   1425     SpvOpGroupReserveReadPipePackets = 285,
   1426     SpvOpGroupReserveWritePipePackets = 286,
   1427     SpvOpGroupCommitReadPipe = 287,
   1428     SpvOpGroupCommitWritePipe = 288,
   1429     SpvOpEnqueueMarker = 291,
   1430     SpvOpEnqueueKernel = 292,
   1431     SpvOpGetKernelNDrangeSubGroupCount = 293,
   1432     SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
   1433     SpvOpGetKernelWorkGroupSize = 295,
   1434     SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
   1435     SpvOpRetainEvent = 297,
   1436     SpvOpReleaseEvent = 298,
   1437     SpvOpCreateUserEvent = 299,
   1438     SpvOpIsValidEvent = 300,
   1439     SpvOpSetUserEventStatus = 301,
   1440     SpvOpCaptureEventProfilingInfo = 302,
   1441     SpvOpGetDefaultQueue = 303,
   1442     SpvOpBuildNDRange = 304,
   1443     SpvOpImageSparseSampleImplicitLod = 305,
   1444     SpvOpImageSparseSampleExplicitLod = 306,
   1445     SpvOpImageSparseSampleDrefImplicitLod = 307,
   1446     SpvOpImageSparseSampleDrefExplicitLod = 308,
   1447     SpvOpImageSparseSampleProjImplicitLod = 309,
   1448     SpvOpImageSparseSampleProjExplicitLod = 310,
   1449     SpvOpImageSparseSampleProjDrefImplicitLod = 311,
   1450     SpvOpImageSparseSampleProjDrefExplicitLod = 312,
   1451     SpvOpImageSparseFetch = 313,
   1452     SpvOpImageSparseGather = 314,
   1453     SpvOpImageSparseDrefGather = 315,
   1454     SpvOpImageSparseTexelsResident = 316,
   1455     SpvOpNoLine = 317,
   1456     SpvOpAtomicFlagTestAndSet = 318,
   1457     SpvOpAtomicFlagClear = 319,
   1458     SpvOpImageSparseRead = 320,
   1459     SpvOpSizeOf = 321,
   1460     SpvOpTypePipeStorage = 322,
   1461     SpvOpConstantPipeStorage = 323,
   1462     SpvOpCreatePipeFromPipeStorage = 324,
   1463     SpvOpGetKernelLocalSizeForSubgroupCount = 325,
   1464     SpvOpGetKernelMaxNumSubgroups = 326,
   1465     SpvOpTypeNamedBarrier = 327,
   1466     SpvOpNamedBarrierInitialize = 328,
   1467     SpvOpMemoryNamedBarrier = 329,
   1468     SpvOpModuleProcessed = 330,
   1469     SpvOpExecutionModeId = 331,
   1470     SpvOpDecorateId = 332,
   1471     SpvOpGroupNonUniformElect = 333,
   1472     SpvOpGroupNonUniformAll = 334,
   1473     SpvOpGroupNonUniformAny = 335,
   1474     SpvOpGroupNonUniformAllEqual = 336,
   1475     SpvOpGroupNonUniformBroadcast = 337,
   1476     SpvOpGroupNonUniformBroadcastFirst = 338,
   1477     SpvOpGroupNonUniformBallot = 339,
   1478     SpvOpGroupNonUniformInverseBallot = 340,
   1479     SpvOpGroupNonUniformBallotBitExtract = 341,
   1480     SpvOpGroupNonUniformBallotBitCount = 342,
   1481     SpvOpGroupNonUniformBallotFindLSB = 343,
   1482     SpvOpGroupNonUniformBallotFindMSB = 344,
   1483     SpvOpGroupNonUniformShuffle = 345,
   1484     SpvOpGroupNonUniformShuffleXor = 346,
   1485     SpvOpGroupNonUniformShuffleUp = 347,
   1486     SpvOpGroupNonUniformShuffleDown = 348,
   1487     SpvOpGroupNonUniformIAdd = 349,
   1488     SpvOpGroupNonUniformFAdd = 350,
   1489     SpvOpGroupNonUniformIMul = 351,
   1490     SpvOpGroupNonUniformFMul = 352,
   1491     SpvOpGroupNonUniformSMin = 353,
   1492     SpvOpGroupNonUniformUMin = 354,
   1493     SpvOpGroupNonUniformFMin = 355,
   1494     SpvOpGroupNonUniformSMax = 356,
   1495     SpvOpGroupNonUniformUMax = 357,
   1496     SpvOpGroupNonUniformFMax = 358,
   1497     SpvOpGroupNonUniformBitwiseAnd = 359,
   1498     SpvOpGroupNonUniformBitwiseOr = 360,
   1499     SpvOpGroupNonUniformBitwiseXor = 361,
   1500     SpvOpGroupNonUniformLogicalAnd = 362,
   1501     SpvOpGroupNonUniformLogicalOr = 363,
   1502     SpvOpGroupNonUniformLogicalXor = 364,
   1503     SpvOpGroupNonUniformQuadBroadcast = 365,
   1504     SpvOpGroupNonUniformQuadSwap = 366,
   1505     SpvOpCopyLogical = 400,
   1506     SpvOpPtrEqual = 401,
   1507     SpvOpPtrNotEqual = 402,
   1508     SpvOpPtrDiff = 403,
   1509     SpvOpTerminateInvocation = 4416,
   1510     SpvOpSubgroupBallotKHR = 4421,
   1511     SpvOpSubgroupFirstInvocationKHR = 4422,
   1512     SpvOpSubgroupAllKHR = 4428,
   1513     SpvOpSubgroupAnyKHR = 4429,
   1514     SpvOpSubgroupAllEqualKHR = 4430,
   1515     SpvOpSubgroupReadInvocationKHR = 4432,
   1516     SpvOpTraceRayKHR = 4445,
   1517     SpvOpExecuteCallableKHR = 4446,
   1518     SpvOpConvertUToAccelerationStructureKHR = 4447,
   1519     SpvOpIgnoreIntersectionKHR = 4448,
   1520     SpvOpTerminateRayKHR = 4449,
   1521     SpvOpSDotKHR = 4450,
   1522     SpvOpUDotKHR = 4451,
   1523     SpvOpSUDotKHR = 4452,
   1524     SpvOpSDotAccSatKHR = 4453,
   1525     SpvOpUDotAccSatKHR = 4454,
   1526     SpvOpSUDotAccSatKHR = 4455,
   1527     SpvOpTypeRayQueryKHR = 4472,
   1528     SpvOpRayQueryInitializeKHR = 4473,
   1529     SpvOpRayQueryTerminateKHR = 4474,
   1530     SpvOpRayQueryGenerateIntersectionKHR = 4475,
   1531     SpvOpRayQueryConfirmIntersectionKHR = 4476,
   1532     SpvOpRayQueryProceedKHR = 4477,
   1533     SpvOpRayQueryGetIntersectionTypeKHR = 4479,
   1534     SpvOpGroupIAddNonUniformAMD = 5000,
   1535     SpvOpGroupFAddNonUniformAMD = 5001,
   1536     SpvOpGroupFMinNonUniformAMD = 5002,
   1537     SpvOpGroupUMinNonUniformAMD = 5003,
   1538     SpvOpGroupSMinNonUniformAMD = 5004,
   1539     SpvOpGroupFMaxNonUniformAMD = 5005,
   1540     SpvOpGroupUMaxNonUniformAMD = 5006,
   1541     SpvOpGroupSMaxNonUniformAMD = 5007,
   1542     SpvOpFragmentMaskFetchAMD = 5011,
   1543     SpvOpFragmentFetchAMD = 5012,
   1544     SpvOpReadClockKHR = 5056,
   1545     SpvOpImageSampleFootprintNV = 5283,
   1546     SpvOpGroupNonUniformPartitionNV = 5296,
   1547     SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
   1548     SpvOpReportIntersectionKHR = 5334,
   1549     SpvOpReportIntersectionNV = 5334,
   1550     SpvOpIgnoreIntersectionNV = 5335,
   1551     SpvOpTerminateRayNV = 5336,
   1552     SpvOpTraceNV = 5337,
   1553     SpvOpTypeAccelerationStructureKHR = 5341,
   1554     SpvOpTypeAccelerationStructureNV = 5341,
   1555     SpvOpExecuteCallableNV = 5344,
   1556     SpvOpTypeCooperativeMatrixNV = 5358,
   1557     SpvOpCooperativeMatrixLoadNV = 5359,
   1558     SpvOpCooperativeMatrixStoreNV = 5360,
   1559     SpvOpCooperativeMatrixMulAddNV = 5361,
   1560     SpvOpCooperativeMatrixLengthNV = 5362,
   1561     SpvOpBeginInvocationInterlockEXT = 5364,
   1562     SpvOpEndInvocationInterlockEXT = 5365,
   1563     SpvOpDemoteToHelperInvocationEXT = 5380,
   1564     SpvOpIsHelperInvocationEXT = 5381,
   1565     SpvOpSubgroupShuffleINTEL = 5571,
   1566     SpvOpSubgroupShuffleDownINTEL = 5572,
   1567     SpvOpSubgroupShuffleUpINTEL = 5573,
   1568     SpvOpSubgroupShuffleXorINTEL = 5574,
   1569     SpvOpSubgroupBlockReadINTEL = 5575,
   1570     SpvOpSubgroupBlockWriteINTEL = 5576,
   1571     SpvOpSubgroupImageBlockReadINTEL = 5577,
   1572     SpvOpSubgroupImageBlockWriteINTEL = 5578,
   1573     SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
   1574     SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
   1575     SpvOpUCountLeadingZerosINTEL = 5585,
   1576     SpvOpUCountTrailingZerosINTEL = 5586,
   1577     SpvOpAbsISubINTEL = 5587,
   1578     SpvOpAbsUSubINTEL = 5588,
   1579     SpvOpIAddSatINTEL = 5589,
   1580     SpvOpUAddSatINTEL = 5590,
   1581     SpvOpIAverageINTEL = 5591,
   1582     SpvOpUAverageINTEL = 5592,
   1583     SpvOpIAverageRoundedINTEL = 5593,
   1584     SpvOpUAverageRoundedINTEL = 5594,
   1585     SpvOpISubSatINTEL = 5595,
   1586     SpvOpUSubSatINTEL = 5596,
   1587     SpvOpIMul32x16INTEL = 5597,
   1588     SpvOpUMul32x16INTEL = 5598,
   1589     SpvOpConstFunctionPointerINTEL = 5600,
   1590     SpvOpFunctionPointerCallINTEL = 5601,
   1591     SpvOpAsmTargetINTEL = 5609,
   1592     SpvOpAsmINTEL = 5610,
   1593     SpvOpAsmCallINTEL = 5611,
   1594     SpvOpAtomicFMinEXT = 5614,
   1595     SpvOpAtomicFMaxEXT = 5615,
   1596     SpvOpAssumeTrueKHR = 5630,
   1597     SpvOpExpectKHR = 5631,
   1598     SpvOpDecorateString = 5632,
   1599     SpvOpDecorateStringGOOGLE = 5632,
   1600     SpvOpMemberDecorateString = 5633,
   1601     SpvOpMemberDecorateStringGOOGLE = 5633,
   1602     SpvOpVmeImageINTEL = 5699,
   1603     SpvOpTypeVmeImageINTEL = 5700,
   1604     SpvOpTypeAvcImePayloadINTEL = 5701,
   1605     SpvOpTypeAvcRefPayloadINTEL = 5702,
   1606     SpvOpTypeAvcSicPayloadINTEL = 5703,
   1607     SpvOpTypeAvcMcePayloadINTEL = 5704,
   1608     SpvOpTypeAvcMceResultINTEL = 5705,
   1609     SpvOpTypeAvcImeResultINTEL = 5706,
   1610     SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
   1611     SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
   1612     SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
   1613     SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
   1614     SpvOpTypeAvcRefResultINTEL = 5711,
   1615     SpvOpTypeAvcSicResultINTEL = 5712,
   1616     SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
   1617     SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
   1618     SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
   1619     SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
   1620     SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
   1621     SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
   1622     SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
   1623     SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
   1624     SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
   1625     SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
   1626     SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
   1627     SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
   1628     SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
   1629     SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
   1630     SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
   1631     SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
   1632     SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
   1633     SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
   1634     SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
   1635     SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
   1636     SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
   1637     SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
   1638     SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
   1639     SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
   1640     SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
   1641     SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
   1642     SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
   1643     SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
   1644     SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
   1645     SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
   1646     SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
   1647     SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
   1648     SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
   1649     SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
   1650     SpvOpSubgroupAvcImeInitializeINTEL = 5747,
   1651     SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
   1652     SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
   1653     SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
   1654     SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
   1655     SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
   1656     SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
   1657     SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
   1658     SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
   1659     SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
   1660     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
   1661     SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
   1662     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
   1663     SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
   1664     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
   1665     SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
   1666     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
   1667     SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
   1668     SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
   1669     SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
   1670     SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
   1671     SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
   1672     SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
   1673     SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
   1674     SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
   1675     SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
   1676     SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
   1677     SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
   1678     SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
   1679     SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
   1680     SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
   1681     SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
   1682     SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
   1683     SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
   1684     SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
   1685     SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
   1686     SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
   1687     SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
   1688     SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
   1689     SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
   1690     SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
   1691     SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
   1692     SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
   1693     SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
   1694     SpvOpSubgroupAvcSicInitializeINTEL = 5791,
   1695     SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
   1696     SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
   1697     SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
   1698     SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
   1699     SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
   1700     SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
   1701     SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
   1702     SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
   1703     SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
   1704     SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
   1705     SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
   1706     SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
   1707     SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
   1708     SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
   1709     SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
   1710     SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
   1711     SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
   1712     SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
   1713     SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
   1714     SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
   1715     SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
   1716     SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
   1717     SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
   1718     SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
   1719     SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
   1720     SpvOpVariableLengthArrayINTEL = 5818,
   1721     SpvOpSaveMemoryINTEL = 5819,
   1722     SpvOpRestoreMemoryINTEL = 5820,
   1723     SpvOpArbitraryFloatSinCosPiINTEL = 5840,
   1724     SpvOpArbitraryFloatCastINTEL = 5841,
   1725     SpvOpArbitraryFloatCastFromIntINTEL = 5842,
   1726     SpvOpArbitraryFloatCastToIntINTEL = 5843,
   1727     SpvOpArbitraryFloatAddINTEL = 5846,
   1728     SpvOpArbitraryFloatSubINTEL = 5847,
   1729     SpvOpArbitraryFloatMulINTEL = 5848,
   1730     SpvOpArbitraryFloatDivINTEL = 5849,
   1731     SpvOpArbitraryFloatGTINTEL = 5850,
   1732     SpvOpArbitraryFloatGEINTEL = 5851,
   1733     SpvOpArbitraryFloatLTINTEL = 5852,
   1734     SpvOpArbitraryFloatLEINTEL = 5853,
   1735     SpvOpArbitraryFloatEQINTEL = 5854,
   1736     SpvOpArbitraryFloatRecipINTEL = 5855,
   1737     SpvOpArbitraryFloatRSqrtINTEL = 5856,
   1738     SpvOpArbitraryFloatCbrtINTEL = 5857,
   1739     SpvOpArbitraryFloatHypotINTEL = 5858,
   1740     SpvOpArbitraryFloatSqrtINTEL = 5859,
   1741     SpvOpArbitraryFloatLogINTEL = 5860,
   1742     SpvOpArbitraryFloatLog2INTEL = 5861,
   1743     SpvOpArbitraryFloatLog10INTEL = 5862,
   1744     SpvOpArbitraryFloatLog1pINTEL = 5863,
   1745     SpvOpArbitraryFloatExpINTEL = 5864,
   1746     SpvOpArbitraryFloatExp2INTEL = 5865,
   1747     SpvOpArbitraryFloatExp10INTEL = 5866,
   1748     SpvOpArbitraryFloatExpm1INTEL = 5867,
   1749     SpvOpArbitraryFloatSinINTEL = 5868,
   1750     SpvOpArbitraryFloatCosINTEL = 5869,
   1751     SpvOpArbitraryFloatSinCosINTEL = 5870,
   1752     SpvOpArbitraryFloatSinPiINTEL = 5871,
   1753     SpvOpArbitraryFloatCosPiINTEL = 5872,
   1754     SpvOpArbitraryFloatASinINTEL = 5873,
   1755     SpvOpArbitraryFloatASinPiINTEL = 5874,
   1756     SpvOpArbitraryFloatACosINTEL = 5875,
   1757     SpvOpArbitraryFloatACosPiINTEL = 5876,
   1758     SpvOpArbitraryFloatATanINTEL = 5877,
   1759     SpvOpArbitraryFloatATanPiINTEL = 5878,
   1760     SpvOpArbitraryFloatATan2INTEL = 5879,
   1761     SpvOpArbitraryFloatPowINTEL = 5880,
   1762     SpvOpArbitraryFloatPowRINTEL = 5881,
   1763     SpvOpArbitraryFloatPowNINTEL = 5882,
   1764     SpvOpLoopControlINTEL = 5887,
   1765     SpvOpFixedSqrtINTEL = 5923,
   1766     SpvOpFixedRecipINTEL = 5924,
   1767     SpvOpFixedRsqrtINTEL = 5925,
   1768     SpvOpFixedSinINTEL = 5926,
   1769     SpvOpFixedCosINTEL = 5927,
   1770     SpvOpFixedSinCosINTEL = 5928,
   1771     SpvOpFixedSinPiINTEL = 5929,
   1772     SpvOpFixedCosPiINTEL = 5930,
   1773     SpvOpFixedSinCosPiINTEL = 5931,
   1774     SpvOpFixedLogINTEL = 5932,
   1775     SpvOpFixedExpINTEL = 5933,
   1776     SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
   1777     SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
   1778     SpvOpReadPipeBlockingINTEL = 5946,
   1779     SpvOpWritePipeBlockingINTEL = 5947,
   1780     SpvOpFPGARegINTEL = 5949,
   1781     SpvOpRayQueryGetRayTMinKHR = 6016,
   1782     SpvOpRayQueryGetRayFlagsKHR = 6017,
   1783     SpvOpRayQueryGetIntersectionTKHR = 6018,
   1784     SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
   1785     SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
   1786     SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
   1787     SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
   1788     SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
   1789     SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
   1790     SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
   1791     SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
   1792     SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
   1793     SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
   1794     SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
   1795     SpvOpRayQueryGetWorldRayOriginKHR = 6030,
   1796     SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
   1797     SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
   1798     SpvOpAtomicFAddEXT = 6035,
   1799     SpvOpTypeBufferSurfaceINTEL = 6086,
   1800     SpvOpTypeStructContinuedINTEL = 6090,
   1801     SpvOpConstantCompositeContinuedINTEL = 6091,
   1802     SpvOpSpecConstantCompositeContinuedINTEL = 6092,
   1803     SpvOpMax = 0x7fffffff,
   1804 } SpvOp;
   1805 
   1806 #ifdef SPV_ENABLE_UTILITY_CODE
   1807 inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
   1808     *hasResult = *hasResultType = false;
   1809     switch (opcode) {
   1810     default: /* unknown opcode */ break;
   1811     case SpvOpNop: *hasResult = false; *hasResultType = false; break;
   1812     case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
   1813     case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
   1814     case SpvOpSource: *hasResult = false; *hasResultType = false; break;
   1815     case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
   1816     case SpvOpName: *hasResult = false; *hasResultType = false; break;
   1817     case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
   1818     case SpvOpString: *hasResult = true; *hasResultType = false; break;
   1819     case SpvOpLine: *hasResult = false; *hasResultType = false; break;
   1820     case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
   1821     case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
   1822     case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
   1823     case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
   1824     case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
   1825     case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
   1826     case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
   1827     case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
   1828     case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
   1829     case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
   1830     case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
   1831     case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
   1832     case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
   1833     case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
   1834     case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
   1835     case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
   1836     case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
   1837     case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
   1838     case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
   1839     case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
   1840     case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
   1841     case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
   1842     case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
   1843     case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
   1844     case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
   1845     case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
   1846     case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
   1847     case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
   1848     case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
   1849     case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
   1850     case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
   1851     case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
   1852     case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
   1853     case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
   1854     case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
   1855     case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
   1856     case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
   1857     case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
   1858     case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
   1859     case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
   1860     case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
   1861     case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
   1862     case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
   1863     case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
   1864     case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
   1865     case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
   1866     case SpvOpStore: *hasResult = false; *hasResultType = false; break;
   1867     case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
   1868     case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
   1869     case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
   1870     case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
   1871     case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
   1872     case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
   1873     case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
   1874     case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
   1875     case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
   1876     case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
   1877     case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
   1878     case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
   1879     case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
   1880     case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
   1881     case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
   1882     case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
   1883     case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
   1884     case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
   1885     case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
   1886     case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
   1887     case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
   1888     case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
   1889     case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
   1890     case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
   1891     case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
   1892     case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
   1893     case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
   1894     case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
   1895     case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
   1896     case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
   1897     case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
   1898     case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
   1899     case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
   1900     case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
   1901     case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
   1902     case SpvOpImage: *hasResult = true; *hasResultType = true; break;
   1903     case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
   1904     case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
   1905     case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
   1906     case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
   1907     case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
   1908     case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
   1909     case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
   1910     case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
   1911     case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
   1912     case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
   1913     case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
   1914     case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
   1915     case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
   1916     case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
   1917     case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
   1918     case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
   1919     case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
   1920     case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
   1921     case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
   1922     case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
   1923     case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
   1924     case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
   1925     case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
   1926     case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
   1927     case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
   1928     case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
   1929     case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
   1930     case SpvOpISub: *hasResult = true; *hasResultType = true; break;
   1931     case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
   1932     case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
   1933     case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
   1934     case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
   1935     case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
   1936     case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
   1937     case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
   1938     case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
   1939     case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
   1940     case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
   1941     case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
   1942     case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
   1943     case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
   1944     case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
   1945     case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
   1946     case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
   1947     case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
   1948     case SpvOpDot: *hasResult = true; *hasResultType = true; break;
   1949     case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
   1950     case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
   1951     case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
   1952     case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
   1953     case SpvOpAny: *hasResult = true; *hasResultType = true; break;
   1954     case SpvOpAll: *hasResult = true; *hasResultType = true; break;
   1955     case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
   1956     case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
   1957     case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
   1958     case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
   1959     case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
   1960     case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
   1961     case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
   1962     case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
   1963     case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
   1964     case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
   1965     case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
   1966     case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
   1967     case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
   1968     case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
   1969     case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
   1970     case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
   1971     case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
   1972     case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
   1973     case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
   1974     case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
   1975     case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
   1976     case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
   1977     case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
   1978     case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
   1979     case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
   1980     case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
   1981     case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
   1982     case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
   1983     case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
   1984     case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
   1985     case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
   1986     case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
   1987     case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
   1988     case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
   1989     case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
   1990     case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
   1991     case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
   1992     case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
   1993     case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
   1994     case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
   1995     case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
   1996     case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
   1997     case SpvOpNot: *hasResult = true; *hasResultType = true; break;
   1998     case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
   1999     case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
   2000     case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
   2001     case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
   2002     case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
   2003     case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
   2004     case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
   2005     case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
   2006     case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
   2007     case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
   2008     case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
   2009     case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
   2010     case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
   2011     case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
   2012     case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
   2013     case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
   2014     case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
   2015     case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
   2016     case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
   2017     case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
   2018     case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
   2019     case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
   2020     case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
   2021     case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
   2022     case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
   2023     case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
   2024     case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
   2025     case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
   2026     case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
   2027     case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
   2028     case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
   2029     case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
   2030     case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
   2031     case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
   2032     case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
   2033     case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
   2034     case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
   2035     case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
   2036     case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
   2037     case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
   2038     case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
   2039     case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
   2040     case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
   2041     case SpvOpKill: *hasResult = false; *hasResultType = false; break;
   2042     case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
   2043     case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
   2044     case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
   2045     case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
   2046     case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
   2047     case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
   2048     case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
   2049     case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
   2050     case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
   2051     case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
   2052     case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
   2053     case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
   2054     case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
   2055     case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
   2056     case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
   2057     case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
   2058     case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
   2059     case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
   2060     case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
   2061     case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
   2062     case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
   2063     case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
   2064     case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
   2065     case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
   2066     case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
   2067     case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
   2068     case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
   2069     case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
   2070     case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
   2071     case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
   2072     case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
   2073     case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
   2074     case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
   2075     case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
   2076     case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
   2077     case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
   2078     case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
   2079     case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
   2080     case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
   2081     case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
   2082     case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
   2083     case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
   2084     case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
   2085     case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
   2086     case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
   2087     case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
   2088     case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
   2089     case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
   2090     case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
   2091     case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
   2092     case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
   2093     case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
   2094     case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
   2095     case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
   2096     case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
   2097     case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
   2098     case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
   2099     case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
   2100     case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
   2101     case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
   2102     case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
   2103     case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
   2104     case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
   2105     case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
   2106     case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
   2107     case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
   2108     case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
   2109     case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
   2110     case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
   2111     case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
   2112     case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
   2113     case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
   2114     case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
   2115     case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
   2116     case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
   2117     case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
   2118     case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
   2119     case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
   2120     case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
   2121     case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
   2122     case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
   2123     case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
   2124     case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
   2125     case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
   2126     case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
   2127     case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
   2128     case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
   2129     case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
   2130     case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
   2131     case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
   2132     case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
   2133     case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
   2134     case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
   2135     case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
   2136     case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
   2137     case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
   2138     case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
   2139     case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
   2140     case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
   2141     case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
   2142     case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
   2143     case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
   2144     case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
   2145     case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
   2146     case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
   2147     case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
   2148     case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
   2149     case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
   2150     case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
   2151     case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
   2152     case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
   2153     case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
   2154     case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
   2155     case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
   2156     case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
   2157     case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
   2158     case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
   2159     case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
   2160     case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
   2161     case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
   2162     case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
   2163     case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
   2164     case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
   2165     case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
   2166     case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
   2167     case SpvOpSDotKHR: *hasResult = true; *hasResultType = true; break;
   2168     case SpvOpUDotKHR: *hasResult = true; *hasResultType = true; break;
   2169     case SpvOpSUDotKHR: *hasResult = true; *hasResultType = true; break;
   2170     case SpvOpSDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
   2171     case SpvOpUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
   2172     case SpvOpSUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
   2173     case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
   2174     case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
   2175     case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
   2176     case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
   2177     case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
   2178     case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
   2179     case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
   2180     case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
   2181     case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
   2182     case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
   2183     case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
   2184     case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
   2185     case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
   2186     case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
   2187     case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
   2188     case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
   2189     case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
   2190     case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
   2191     case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
   2192     case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
   2193     case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
   2194     case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
   2195     case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
   2196     case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
   2197     case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
   2198     case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
   2199     case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
   2200     case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
   2201     case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
   2202     case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
   2203     case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
   2204     case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
   2205     case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
   2206     case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
   2207     case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
   2208     case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
   2209     case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
   2210     case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
   2211     case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
   2212     case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
   2213     case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
   2214     case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
   2215     case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
   2216     case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
   2217     case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
   2218     case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
   2219     case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
   2220     case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
   2221     case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
   2222     case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
   2223     case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
   2224     case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
   2225     case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
   2226     case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
   2227     case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
   2228     case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
   2229     case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
   2230     case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
   2231     case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
   2232     case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
   2233     case SpvOpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
   2234     case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
   2235     case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
   2236     case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
   2237     case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
   2238     case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
   2239     case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
   2240     case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
   2241     case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break;
   2242     case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
   2243     case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
   2244     case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
   2245     case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
   2246     case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
   2247     case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
   2248     case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
   2249     case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
   2250     case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
   2251     case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
   2252     case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
   2253     case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
   2254     case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
   2255     case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
   2256     case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
   2257     case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
   2258     case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2259     case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2260     case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2261     case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2262     case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2263     case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2264     case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2265     case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
   2266     case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
   2267     case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
   2268     case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
   2269     case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
   2270     case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2271     case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2272     case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2273     case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
   2274     case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
   2275     case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
   2276     case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
   2277     case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
   2278     case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
   2279     case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
   2280     case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
   2281     case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
   2282     case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
   2283     case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
   2284     case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
   2285     case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
   2286     case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
   2287     case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
   2288     case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
   2289     case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
   2290     case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
   2291     case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
   2292     case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
   2293     case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2294     case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2295     case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
   2296     case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
   2297     case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
   2298     case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
   2299     case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
   2300     case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
   2301     case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
   2302     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2303     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2304     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
   2305     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
   2306     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
   2307     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
   2308     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
   2309     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
   2310     case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
   2311     case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
   2312     case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
   2313     case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
   2314     case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
   2315     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
   2316     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
   2317     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
   2318     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
   2319     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
   2320     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
   2321     case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
   2322     case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
   2323     case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
   2324     case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
   2325     case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
   2326     case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
   2327     case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
   2328     case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
   2329     case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
   2330     case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
   2331     case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2332     case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2333     case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2334     case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
   2335     case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
   2336     case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
   2337     case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
   2338     case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
   2339     case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
   2340     case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
   2341     case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
   2342     case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
   2343     case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
   2344     case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
   2345     case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
   2346     case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
   2347     case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
   2348     case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
   2349     case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2350     case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2351     case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
   2352     case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
   2353     case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
   2354     case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
   2355     case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
   2356     case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
   2357     case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
   2358     case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
   2359     case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
   2360     case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
   2361     case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
   2362     case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
   2363     case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
   2364     case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
   2365     case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
   2366     case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
   2367     case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
   2368     case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
   2369     case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
   2370     case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
   2371     case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
   2372     case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
   2373     case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
   2374     case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
   2375     case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
   2376     case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
   2377     case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
   2378     case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
   2379     case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
   2380     case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
   2381     case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
   2382     case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
   2383     case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
   2384     case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
   2385     case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
   2386     case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
   2387     case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
   2388     case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
   2389     case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
   2390     case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
   2391     case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
   2392     case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
   2393     case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
   2394     case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
   2395     case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
   2396     case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
   2397     case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
   2398     case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
   2399     case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
   2400     case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
   2401     case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
   2402     case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
   2403     case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
   2404     case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
   2405     case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
   2406     case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
   2407     case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
   2408     case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
   2409     case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
   2410     case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
   2411     case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
   2412     case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
   2413     case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
   2414     case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
   2415     case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
   2416     case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
   2417     case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
   2418     case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
   2419     case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
   2420     case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
   2421     case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
   2422     case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
   2423     case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
   2424     case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
   2425     case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
   2426     case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
   2427     case SpvOpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
   2428     case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
   2429     case SpvOpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
   2430     case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
   2431     case SpvOpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
   2432     case SpvOpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
   2433     case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
   2434     case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
   2435     case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
   2436     case SpvOpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
   2437     case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
   2438     case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
   2439     case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
   2440     case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
   2441     case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
   2442     case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
   2443     case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
   2444     case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
   2445     }
   2446 }
   2447 #endif /* SPV_ENABLE_UTILITY_CODE */
   2448 
   2449 #endif
   2450 
   2451