godot/thirdparty/spirv-reflect/include/spirv/unified1/spirv.h

/*
** Copyright (c) 2014-2020 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a copy
** of this software and/or associated documentation files (the "Materials"),
** to deal in the Materials without restriction, including without limitation
** the rights to use, copy, modify, merge, publish, distribute, sublicense,
** and/or sell copies of the Materials, and to permit persons to whom the
** Materials are furnished to do so, subject to the following conditions:
**
** The above copyright notice and this permission notice shall be included in
** all copies or substantial portions of the Materials.
**
** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
**
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
** IN THE MATERIALS.
*/

/*
** This header is automatically generated by the same tool that creates
** the Binary Section of the SPIR-V specification.
*/

/*
** Enumeration tokens for SPIR-V, in various styles:
**   C, C++, C++11, JSON, Lua, Python, C#, D, Beef
**
** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
** - C++11 will use enum classes in the spv namespace, e.g.:
*spv::SourceLanguage::GLSL
** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
** - C# will use enum classes in the Specification class located in the "Spv"
*namespace,
**     e.g.: Spv.Specification.SourceLanguage.GLSL
** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
** - Beef will use enum classes in the Specification class located in the "Spv"
*namespace,
**     e.g.: Spv.Specification.SourceLanguage.GLSL
**
** Some tokens act like mask values, which can be OR'd together,
** while others are mutually exclusive.  The mask-like ones have
** "Mask" in their name, and a parallel enum that has the shift
** amount (1 << x) for each corresponding enumerant.
*/

#ifndef spirv_H
#define spirv_H

SpvId;

#define SPV_VERSION
#define SPV_REVISION

static const unsigned int SpvMagicNumber =;
static const unsigned int SpvVersion =;
static const unsigned int SpvRevision =;
static const unsigned int SpvOpCodeMask =;
static const unsigned int SpvWordCountShift =;

SpvSourceLanguage;

SpvExecutionModel;

SpvAddressingModel;

SpvMemoryModel;

SpvExecutionMode;

SpvStorageClass;

SpvDim;

SpvSamplerAddressingMode;

SpvSamplerFilterMode;

SpvImageFormat;

SpvImageChannelOrder;

SpvImageChannelDataType;

SpvImageOperandsShift;

SpvImageOperandsMask;

SpvFPFastMathModeShift;

SpvFPFastMathModeMask;

SpvFPRoundingMode;

SpvLinkageType;

SpvAccessQualifier;

SpvFunctionParameterAttribute;

SpvDecoration;

SpvBuiltIn;

SpvSelectionControlShift;

SpvSelectionControlMask;

SpvLoopControlShift;

SpvLoopControlMask;

SpvFunctionControlShift;

SpvFunctionControlMask;

SpvMemorySemanticsShift;

SpvMemorySemanticsMask;

SpvMemoryAccessShift;

SpvMemoryAccessMask;

SpvScope;

SpvGroupOperation;

SpvKernelEnqueueFlags;

SpvKernelProfilingInfoShift;

SpvKernelProfilingInfoMask;

SpvCapability;

SpvRayFlagsShift;

SpvRayFlagsMask;

SpvRayQueryIntersection;

SpvRayQueryCommittedIntersectionType;

SpvRayQueryCandidateIntersectionType;

SpvFragmentShadingRateShift;

SpvFragmentShadingRateMask;

SpvFPDenormMode;

SpvFPOperationMode;

SpvQuantizationModes;

SpvOverflowModes;

SpvPackedVectorFormat;

SpvCooperativeMatrixOperandsShift;

SpvCooperativeMatrixOperandsMask;

SpvCooperativeMatrixLayout;

SpvCooperativeMatrixUse;

SpvOp;

#ifdef SPV_ENABLE_UTILITY_CODE
#ifndef __cplusplus
#include <stdbool.h>
#endif
inline void SpvHasResultAndType(SpvOp opcode, bool* hasResult,
                                bool* hasResultType) {
  *hasResult = *hasResultType = false;
  switch (opcode) {
    default: /* unknown opcode */
      break;
    case SpvOpNop:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpUndef:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSourceContinued:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSource:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSourceExtension:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpName:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemberName:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpString:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpLine:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExtension:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExtInstImport:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpExtInst:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMemoryModel:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEntryPoint:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExecutionMode:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCapability:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeVoid:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeBool:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeInt:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeFloat:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeVector:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeMatrix:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeImage:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeSampler:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeSampledImage:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeArray:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeRuntimeArray:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeStruct:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeOpaque:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypePointer:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeFunction:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeEvent:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeDeviceEvent:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeReserveId:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeQueue:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypePipe:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeForwardPointer:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConstantTrue:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantFalse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstant:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantComposite:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantSampler:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantNull:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantTrue:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantFalse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstant:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantComposite:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantOp:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunction:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunctionParameter:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunctionEnd:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpFunctionCall:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVariable:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageTexelPointer:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLoad:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpStore:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCopyMemory:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCopyMemorySized:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpInBoundsAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArrayLength:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGenericPtrMemSemantics:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpInBoundsPtrAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemberDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpDecorationGroup:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpGroupDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupMemberDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpVectorExtractDynamic:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorInsertDynamic:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorShuffle:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeConstruct:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeInsert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCopyObject:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTranspose:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSampledImage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageFetch:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageDrefGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageRead:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageWrite:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpImage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryFormat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryOrder:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQuerySizeLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQuerySize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryLevels:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQuerySamples:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertFToU:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertFToS:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertSToF:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToF:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUConvert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSConvert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFConvert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpQuantizeToF16:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertPtrToU:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSatConvertSToU:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSatConvertUToS:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToPtr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrCastToGeneric:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGenericCastToPtr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGenericCastToPtrExplicit:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSNegate:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFNegate:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpISub:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFSub:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUDiv:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSDiv:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFDiv:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUMod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSRem:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSMod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFRem:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFMod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorTimesScalar:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMatrixTimesScalar:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorTimesMatrix:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMatrixTimesVector:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMatrixTimesMatrix:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpOuterProduct:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAddCarry:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpISubBorrow:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUMulExtended:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSMulExtended:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAny:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAll:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsNan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsInf:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsFinite:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsNormal:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSignBitSet:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLessOrGreater:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpOrdered:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUnordered:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalNot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSelect:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpINotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpULessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSLessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpULessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSLessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdLessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordLessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdLessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordLessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpShiftRightLogical:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpShiftRightArithmetic:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpShiftLeftLogical:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpNot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitFieldInsert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitFieldSExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitFieldUExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitReverse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdx:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdy:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFwidth:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdxFine:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdyFine:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFwidthFine:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdxCoarse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdyCoarse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFwidthCoarse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEmitVertex:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEndPrimitive:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEmitStreamVertex:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEndStreamPrimitive:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpControlBarrier:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemoryBarrier:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAtomicLoad:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicStore:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAtomicExchange:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicCompareExchange:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicCompareExchangeWeak:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicIIncrement:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicIDecrement:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicISub:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicSMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicUMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicSMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicUMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPhi:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLoopMerge:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSelectionMerge:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpLabel:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpBranch:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpBranchConditional:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSwitch:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpKill:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReturn:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReturnValue:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpUnreachable:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpLifetimeStart:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpLifetimeStop:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupAsyncCopy:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupWaitEvents:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupAll:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupAny:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBroadcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReadPipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpWritePipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReservedReadPipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReservedWritePipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReserveReadPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReserveWritePipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCommitReadPipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCommitWritePipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpIsValidReserveId:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetNumPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetMaxPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupReserveReadPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupReserveWritePipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupCommitReadPipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupCommitWritePipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEnqueueMarker:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEnqueueKernel:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelNDrangeSubGroupCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelNDrangeMaxSubGroupSize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelWorkGroupSize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelPreferredWorkGroupSizeMultiple:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRetainEvent:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReleaseEvent:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCreateUserEvent:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsValidEvent:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSetUserEventStatus:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCaptureEventProfilingInfo:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGetDefaultQueue:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBuildNDRange:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseFetch:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseDrefGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseTexelsResident:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpNoLine:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAtomicFlagTestAndSet:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFlagClear:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpImageSparseRead:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSizeOf:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypePipeStorage:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpConstantPipeStorage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCreatePipeFromPipeStorage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelLocalSizeForSubgroupCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelMaxNumSubgroups:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeNamedBarrier:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpNamedBarrierInitialize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMemoryNamedBarrier:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpModuleProcessed:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExecutionModeId:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpDecorateId:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupNonUniformElect:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformAll:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformAny:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformAllEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBroadcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBroadcastFirst:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformInverseBallot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotBitExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotBitCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotFindLSB:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotFindMSB:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffle:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffleXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffleUp:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffleDown:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformIMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformSMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformUMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformSMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformUMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBitwiseAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBitwiseOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBitwiseXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformLogicalAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformLogicalOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformLogicalXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformQuadBroadcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformQuadSwap:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCopyLogical:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrDiff:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpColorAttachmentReadEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDepthAttachmentReadEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpStencilAttachmentReadEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTerminateInvocation:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupBallotKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupFirstInvocationKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAllKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAnyKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAllEqualKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformRotateKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupReadInvocationKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTraceRayKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExecuteCallableKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConvertUToAccelerationStructureKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIgnoreIntersectionKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTerminateRayKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSUDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSDotAccSat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUDotAccSat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSUDotAccSat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeCooperativeMatrixKHR:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixLoadKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixStoreKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixMulAddKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixLengthKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeRayQueryKHR:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpRayQueryInitializeKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryTerminateKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryGenerateIntersectionKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryConfirmIntersectionKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryProceedKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionTypeKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleWeightedQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBoxFilterQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchSSDQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchSADQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupIAddNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFAddNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMinNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMinNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMinNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMaxNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMaxNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMaxNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFragmentMaskFetchAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFragmentFetchAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReadClockKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectRecordHitMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordHitWithIndexMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordMissMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetWorldToObjectNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetObjectToWorldNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetObjectRayDirectionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetObjectRayOriginNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectTraceRayMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetShaderRecordBufferHandleNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetShaderBindingTableRecordIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectRecordEmptyNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectTraceRayNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordHitNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordHitWithIndexNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordMissNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectExecuteShaderNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetCurrentTimeNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetAttributesNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetHitKindNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetPrimitiveIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetGeometryIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetInstanceIdNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetInstanceCustomIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetWorldRayDirectionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetWorldRayOriginNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetRayTMaxNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetRayTMinNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsEmptyNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsHitNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsMissNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReorderThreadWithHitObjectNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReorderThreadWithHintNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeHitObjectNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpImageSampleFootprintNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEmitMeshTasksEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSetMeshOutputsEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupNonUniformPartitionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpWritePackedPrimitiveIndices4x8NV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReportIntersectionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIgnoreIntersectionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTerminateRayNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTraceNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTraceMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTraceRayMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeAccelerationStructureNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpExecuteCallableNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeCooperativeMatrixNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixLoadNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixStoreNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixMulAddNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixLengthNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBeginInvocationInterlockEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEndInvocationInterlockEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpDemoteToHelperInvocation:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpIsHelperInvocationEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToImageNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToSamplerNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertImageToUNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertSamplerToUNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToSampledImageNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertSampledImageToUNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSamplerImageAddressingModeNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupShuffleINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleDownINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleUpINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleXorINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupBlockReadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupBlockWriteINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupImageBlockReadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupImageBlockWriteINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupImageMediaBlockReadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupImageMediaBlockWriteINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpUCountLeadingZerosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUCountTrailingZerosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAbsISubINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAbsUSubINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAddSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUAddSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAverageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUAverageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAverageRoundedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUAverageRoundedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpISubSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUSubSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIMul32x16INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUMul32x16INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantFunctionPointerINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunctionPointerCallINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAsmTargetINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAsmINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAsmCallINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFMinEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFMaxEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAssumeTrueKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExpectKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDecorateString:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemberDecorateString:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpVmeImageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeVmeImageINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImePayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcRefPayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcSicPayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcMceResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeSingleReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeDualReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcRefResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcSicResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToImePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToImeResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToRefResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToSicResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetMotionVectorsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterDirectionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeRefWindowSizeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetWeightedSadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeConvertToMceResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetBorderReachedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcFmeInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcBmeInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefConvertToMceResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConfigureSkcINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateIpeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConvertToMceResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetInterRawSadsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVariableLengthArrayINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSaveMemoryINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRestoreMemoryINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpArbitraryFloatSinCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCastINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCastFromIntINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCastToIntINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatAddINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSubINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatMulINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatDivINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatGTINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatGEINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLTINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLEINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatEQINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatRecipINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatRSqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCbrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatHypotINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLogINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLog2INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLog10INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLog1pINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExpINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExp2INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExp10INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExpm1INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSinINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSinCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSinPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatASinINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatASinPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatACosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatACosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatATanINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatATanPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatATan2INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatPowINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatPowRINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatPowNINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLoopControlINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAliasDomainDeclINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpAliasScopeDeclINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpAliasScopeListDeclINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpFixedSqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedRecipINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedRsqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedLogINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedExpINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrCastToCrossWorkgroupINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCrossWorkgroupCastToPtrINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReadPipeBlockingINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpWritePipeBlockingINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFPGARegINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetRayTMinKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetRayFlagsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionTKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionInstanceIdKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionGeometryIndexKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionBarycentricsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionFrontFaceKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionObjectRayOriginKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetWorldRayDirectionKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetWorldRayOriginKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionObjectToWorldKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionWorldToObjectKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFAddEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeBufferSurfaceINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeStructContinuedINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConstantCompositeContinuedINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSpecConstantCompositeContinuedINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConvertFToBF16INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertBF16ToFINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpControlBarrierArriveINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpControlBarrierWaitINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupIMulKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMulKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBitwiseAndKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBitwiseOrKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBitwiseXorKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupLogicalAndKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupLogicalOrKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupLogicalXorKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
  }
}
#endif /* SPV_ENABLE_UTILITY_CODE */

#endif