//===--- TargetBuiltins.h - Target specific builtin IDs ---------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file /// Enumerates target-specific builtins in their own namespaces within /// namespace ::clang. /// //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_BASIC_TARGETBUILTINS_H #define LLVM_CLANG_BASIC_TARGETBUILTINS_H #include <algorithm> #include <stdint.h> #include "clang/Basic/Builtins.h" #include "llvm/Support/MathExtras.h" #undef PPC namespace clang { namespace NEON { enum { … }; } /// ARM builtins namespace ARM { enum { … }; } namespace SVE { enum { … }; } namespace SME { enum { … }; } /// AArch64 builtins namespace AArch64 { enum { … }; } /// BPF builtins namespace BPF { enum { … }; } /// PPC builtins namespace PPC { enum { … }; } /// NVPTX builtins namespace NVPTX { enum { … }; } /// AMDGPU builtins namespace AMDGPU { enum { … }; } /// X86 builtins namespace X86 { enum { … }; } /// VE builtins namespace VE { enum { … }; } namespace RISCVVector { enum { … }; } /// RISCV builtins namespace RISCV { enum { … }; } // namespace RISCV /// LoongArch builtins namespace LoongArch { enum { … }; } // namespace LoongArch /// Flags to identify the types for overloaded Neon builtins. /// /// These must be kept in sync with the flags in utils/TableGen/NeonEmitter.h. class NeonTypeFlags { … }; // Shared between SVE/SME and NEON enum ImmCheckType { … }; /// Flags to identify the types for overloaded SVE builtins. class SVETypeFlags { … }; /// Hexagon builtins namespace Hexagon { enum { … }; } /// MIPS builtins namespace Mips { enum { … }; } /// XCore builtins namespace XCore { enum { … }; } /// SystemZ builtins namespace SystemZ { enum { … }; } /// WebAssembly builtins namespace WebAssembly { enum { … }; } static constexpr uint64_t LargestBuiltinID = …; } // end namespace clang. #endif