summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support/TargetParserTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/Support/TargetParserTest.cpp')
-rw-r--r--llvm/unittests/Support/TargetParserTest.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp
index 4bdf03aa861..21994f27b73 100644
--- a/llvm/unittests/Support/TargetParserTest.cpp
+++ b/llvm/unittests/Support/TargetParserTest.cpp
@@ -13,6 +13,20 @@
using namespace llvm;
namespace {
+static const unsigned kAArch64ArchKinds[] = {
+#define AARCH64_ARCH(NAME, ID, CPU_ATTR, SUB_ARCH, ARCH_ATTR, ARCH_FPU, \
+ ARCH_BASE_EXT) \
+ llvm::ARM::ID,
+#include "llvm/Support/AArch64TargetParser.def"
+#undef AARCH64_ARCH
+};
+
+template <typename T, size_t N>
+bool contains(const T (&array)[N], const T element) {
+ return std::find(std::begin(array), std::end(array), element) !=
+ std::end(array);
+}
+
TEST(TargetParserTest, ARMArchName) {
for (ARM::ArchKind AK = static_cast<ARM::ArchKind>(0);
AK <= ARM::ArchKind::AK_LAST;
@@ -47,5 +61,32 @@ TEST(TargetParserTest, ARMFPUName) {
EXPECT_TRUE(FK == ARM::FK_LAST ? ARM::getFPUName(FK).empty()
: !ARM::getFPUName(FK).empty());
}
+
+TEST(TargetParserTest, AArch64ArchName) {
+ for (ARM::ArchKind AK = static_cast<ARM::ArchKind>(0);
+ AK <= ARM::ArchKind::AK_LAST;
+ AK = static_cast<ARM::ArchKind>(static_cast<unsigned>(AK) + 1))
+ EXPECT_TRUE(contains(kAArch64ArchKinds, static_cast<unsigned>(AK))
+ ? !AArch64::getArchName(AK).empty()
+ : AArch64::getArchName(AK).empty());
+}
+
+TEST(TargetParserTest, AArch64CPUAttr) {
+ for (ARM::ArchKind AK = static_cast<ARM::ArchKind>(0);
+ AK <= ARM::ArchKind::AK_LAST;
+ AK = static_cast<ARM::ArchKind>(static_cast<unsigned>(AK) + 1))
+ EXPECT_TRUE(contains(kAArch64ArchKinds, static_cast<unsigned>(AK))
+ ? !AArch64::getCPUAttr(AK).empty()
+ : AArch64::getCPUAttr(AK).empty());
+}
+
+TEST(TargetParserTest, AArch64SubArch) {
+ for (ARM::ArchKind AK = static_cast<ARM::ArchKind>(0);
+ AK <= ARM::ArchKind::AK_LAST;
+ AK = static_cast<ARM::ArchKind>(static_cast<unsigned>(AK) + 1))
+ EXPECT_TRUE(contains(kAArch64ArchKinds, static_cast<unsigned>(AK))
+ ? !AArch64::getSubArch(AK).empty()
+ : AArch64::getSubArch(AK).empty());
+}
}
OpenPOWER on IntegriCloud