CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
307 lines
9.3 KiB
C++
307 lines
9.3 KiB
C++
//===- SPIRVIsValidEnum.h - SPIR-V isValid enums ----------------*- C++ -*-===//
|
|
//
|
|
// The LLVM/SPIRV Translator
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
// Copyright (c) 2014 Advanced Micro Devices, Inc. All rights reserved.
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
// copy of this software and associated documentation files (the "Software"),
|
|
// to deal with the Software without restriction, including without limitation
|
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
// and/or sell copies of the Software, and to permit persons to whom the
|
|
// Software is furnished to do so, subject to the following conditions:
|
|
//
|
|
// Redistributions of source code must retain the above copyright notice,
|
|
// this list of conditions and the following disclaimers.
|
|
// Redistributions in binary form must reproduce the above copyright notice,
|
|
// this list of conditions and the following disclaimers in the documentation
|
|
// and/or other materials provided with the distribution.
|
|
// Neither the names of Advanced Micro Devices, Inc., nor the names of its
|
|
// contributors may be used to endorse or promote products derived from this
|
|
// Software without specific prior written permission.
|
|
// THE SOFTWARE IS 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
|
|
// CONTRIBUTORS 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 SOFTWARE OR THE USE OR OTHER DEALINGS WITH
|
|
// THE SOFTWARE.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
/// \file
|
|
///
|
|
/// This file defines SPIR-V isValid enums.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
// WARNING:
|
|
//
|
|
// This file has been generated using `tools/spirv-tool/gen_spirv.bash` and
|
|
// should not be modified manually. If the file needs to be updated, edit the
|
|
// script and any other source file instead, before re-generating this file.
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SPIRV_LIBSPIRV_SPIRVISVALIDENUM_H
|
|
#define SPIRV_LIBSPIRV_SPIRVISVALIDENUM_H
|
|
|
|
#include "SPIRVEnum.h"
|
|
#include "spirv/unified1/spirv.hpp"
|
|
#include "spirv_internal.hpp"
|
|
|
|
using namespace spv;
|
|
|
|
namespace SPIRV {
|
|
|
|
inline bool isValid(spv::ExecutionModel V) {
|
|
switch (static_cast<uint32_t>(V)) {
|
|
case ExecutionModelVertex:
|
|
case ExecutionModelTessellationControl:
|
|
case ExecutionModelTessellationEvaluation:
|
|
case ExecutionModelGeometry:
|
|
case ExecutionModelFragment:
|
|
case ExecutionModelGLCompute:
|
|
case ExecutionModelKernel:
|
|
case ExecutionModelTaskNV:
|
|
case ExecutionModelMeshNV:
|
|
case ExecutionModelRayGenerationKHR:
|
|
case ExecutionModelIntersectionKHR:
|
|
case ExecutionModelAnyHitKHR:
|
|
case ExecutionModelClosestHitKHR:
|
|
case ExecutionModelMissKHR:
|
|
case ExecutionModelCallableKHR:
|
|
case ExecutionModeRegisterMapInterfaceINTEL:
|
|
case ExecutionModeStreamingInterfaceINTEL:
|
|
case ExecutionModeMaximumRegistersINTEL:
|
|
case ExecutionModeMaximumRegistersIdINTEL:
|
|
case ExecutionModeNamedMaximumRegistersINTEL:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
inline bool isValid(spv::AddressingModel V) {
|
|
switch (V) {
|
|
case AddressingModelLogical:
|
|
case AddressingModelPhysical32:
|
|
case AddressingModelPhysical64:
|
|
case AddressingModelPhysicalStorageBuffer64:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
inline bool isValid(spv::MemoryModel V) {
|
|
switch (V) {
|
|
case MemoryModelSimple:
|
|
case MemoryModelGLSL450:
|
|
case MemoryModelOpenCL:
|
|
case MemoryModelVulkan:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
inline bool isValid(spv::StorageClass V) {
|
|
switch (V) {
|
|
case StorageClassUniformConstant:
|
|
case StorageClassInput:
|
|
case StorageClassUniform:
|
|
case StorageClassOutput:
|
|
case StorageClassWorkgroup:
|
|
case StorageClassCrossWorkgroup:
|
|
case StorageClassPrivate:
|
|
case StorageClassFunction:
|
|
case StorageClassGeneric:
|
|
case StorageClassPushConstant:
|
|
case StorageClassAtomicCounter:
|
|
case StorageClassImage:
|
|
case StorageClassStorageBuffer:
|
|
case StorageClassCallableDataKHR:
|
|
case StorageClassIncomingCallableDataKHR:
|
|
case StorageClassRayPayloadKHR:
|
|
case StorageClassHitAttributeKHR:
|
|
case StorageClassIncomingRayPayloadKHR:
|
|
case StorageClassShaderRecordBufferKHR:
|
|
case StorageClassPhysicalStorageBuffer:
|
|
case StorageClassCodeSectionINTEL:
|
|
case StorageClassDeviceOnlyINTEL:
|
|
case StorageClassHostOnlyINTEL:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
inline bool isValid(spv::LinkageType V) {
|
|
int LT = V;
|
|
switch (LT) {
|
|
case LinkageTypeExport:
|
|
case LinkageTypeImport:
|
|
case LinkageTypeLinkOnceODR:
|
|
case LinkageTypeWeakAMD:
|
|
case internal::LinkageTypeInternal:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
inline bool isValid(spv::AccessQualifier V) {
|
|
switch (V) {
|
|
case AccessQualifierReadOnly:
|
|
case AccessQualifierWriteOnly:
|
|
case AccessQualifierReadWrite:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
inline bool isValid(spv::FunctionParameterAttribute V) {
|
|
switch (V) {
|
|
case FunctionParameterAttributeZext:
|
|
case FunctionParameterAttributeSext:
|
|
case FunctionParameterAttributeByVal:
|
|
case FunctionParameterAttributeSret:
|
|
case FunctionParameterAttributeNoAlias:
|
|
case FunctionParameterAttributeNoCapture:
|
|
case FunctionParameterAttributeNoWrite:
|
|
case FunctionParameterAttributeNoReadWrite:
|
|
case FunctionParameterAttributeRuntimeAlignedINTEL:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
inline bool isValid(spv::BuiltIn V) {
|
|
switch (static_cast<uint32_t>(V)) {
|
|
case BuiltInPosition:
|
|
case BuiltInPointSize:
|
|
case BuiltInClipDistance:
|
|
case BuiltInCullDistance:
|
|
case BuiltInVertexId:
|
|
case BuiltInInstanceId:
|
|
case BuiltInPrimitiveId:
|
|
case BuiltInInvocationId:
|
|
case BuiltInLayer:
|
|
case BuiltInViewportIndex:
|
|
case BuiltInTessLevelOuter:
|
|
case BuiltInTessLevelInner:
|
|
case BuiltInTessCoord:
|
|
case BuiltInPatchVertices:
|
|
case BuiltInFragCoord:
|
|
case BuiltInPointCoord:
|
|
case BuiltInFrontFacing:
|
|
case BuiltInSampleId:
|
|
case BuiltInSamplePosition:
|
|
case BuiltInSampleMask:
|
|
case BuiltInFragDepth:
|
|
case BuiltInHelperInvocation:
|
|
case BuiltInNumWorkgroups:
|
|
case BuiltInWorkgroupSize:
|
|
case BuiltInWorkgroupId:
|
|
case BuiltInLocalInvocationId:
|
|
case BuiltInGlobalInvocationId:
|
|
case BuiltInLocalInvocationIndex:
|
|
case BuiltInWorkDim:
|
|
case BuiltInGlobalSize:
|
|
case BuiltInEnqueuedWorkgroupSize:
|
|
case BuiltInGlobalOffset:
|
|
case BuiltInGlobalLinearId:
|
|
case BuiltInSubgroupSize:
|
|
case BuiltInSubgroupMaxSize:
|
|
case BuiltInNumSubgroups:
|
|
case BuiltInNumEnqueuedSubgroups:
|
|
case BuiltInSubgroupId:
|
|
case BuiltInSubgroupLocalInvocationId:
|
|
case BuiltInVertexIndex:
|
|
case BuiltInInstanceIndex:
|
|
case BuiltInSubgroupEqMask:
|
|
case BuiltInSubgroupGeMask:
|
|
case BuiltInSubgroupGtMask:
|
|
case BuiltInSubgroupLeMask:
|
|
case BuiltInSubgroupLtMask:
|
|
case BuiltInBaseVertex:
|
|
case BuiltInBaseInstance:
|
|
case BuiltInDrawIndex:
|
|
case BuiltInPrimitiveShadingRateKHR:
|
|
case BuiltInDeviceIndex:
|
|
case BuiltInViewIndex:
|
|
case BuiltInShadingRateKHR:
|
|
case BuiltInBaryCoordNoPerspAMD:
|
|
case BuiltInBaryCoordNoPerspCentroidAMD:
|
|
case BuiltInBaryCoordNoPerspSampleAMD:
|
|
case BuiltInBaryCoordSmoothAMD:
|
|
case BuiltInBaryCoordSmoothCentroidAMD:
|
|
case BuiltInBaryCoordSmoothSampleAMD:
|
|
case BuiltInBaryCoordPullModelAMD:
|
|
case BuiltInFragStencilRefEXT:
|
|
case BuiltInViewportMaskNV:
|
|
case BuiltInSecondaryPositionNV:
|
|
case BuiltInSecondaryViewportMaskNV:
|
|
case BuiltInPositionPerViewNV:
|
|
case BuiltInViewportMaskPerViewNV:
|
|
case BuiltInFullyCoveredEXT:
|
|
case BuiltInTaskCountNV:
|
|
case BuiltInPrimitiveCountNV:
|
|
case BuiltInPrimitiveIndicesNV:
|
|
case BuiltInClipDistancePerViewNV:
|
|
case BuiltInCullDistancePerViewNV:
|
|
case BuiltInLayerPerViewNV:
|
|
case BuiltInMeshViewCountNV:
|
|
case BuiltInMeshViewIndicesNV:
|
|
case BuiltInBaryCoordKHR:
|
|
case BuiltInBaryCoordNoPerspKHR:
|
|
case BuiltInFragSizeEXT:
|
|
case BuiltInFragInvocationCountEXT:
|
|
case BuiltInLaunchIdKHR:
|
|
case BuiltInLaunchSizeKHR:
|
|
case BuiltInWorldRayOriginKHR:
|
|
case BuiltInWorldRayDirectionKHR:
|
|
case BuiltInObjectRayOriginKHR:
|
|
case BuiltInObjectRayDirectionKHR:
|
|
case BuiltInRayTminKHR:
|
|
case BuiltInRayTmaxKHR:
|
|
case BuiltInInstanceCustomIndexKHR:
|
|
case BuiltInObjectToWorldKHR:
|
|
case BuiltInWorldToObjectKHR:
|
|
case BuiltInHitTNV:
|
|
case BuiltInHitKindKHR:
|
|
case BuiltInCurrentRayTimeNV:
|
|
case BuiltInIncomingRayFlagsKHR:
|
|
case BuiltInRayGeometryIndexKHR:
|
|
case BuiltInWarpsPerSMNV:
|
|
case BuiltInSMCountNV:
|
|
case BuiltInWarpIDNV:
|
|
case BuiltInSMIDNV:
|
|
case BuiltInCullMaskKHR:
|
|
case internal::BuiltInSubDeviceIDINTEL:
|
|
case internal::BuiltInGlobalHWThreadIDINTEL:
|
|
case internal::BuiltInDeviceBarrierValidINTEL:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
inline bool isValidFunctionControlMask(SPIRVWord Mask) {
|
|
SPIRVWord ValidMask = 0u;
|
|
ValidMask |= FunctionControlInlineMask;
|
|
ValidMask |= FunctionControlDontInlineMask;
|
|
ValidMask |= FunctionControlPureMask;
|
|
ValidMask |= FunctionControlConstMask;
|
|
ValidMask |= FunctionControlOptNoneEXTMask;
|
|
|
|
return (Mask & ~ValidMask) == 0;
|
|
}
|
|
|
|
} /* namespace SPIRV */
|
|
|
|
#endif // SPIRV_LIBSPIRV_SPIRVISVALIDENUM_H
|