summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ADT/TripleTest.cpp
diff options
context:
space:
mode:
authorRenato Golin <renato.golin@linaro.org>2015-05-21 13:52:20 +0000
committerRenato Golin <renato.golin@linaro.org>2015-05-21 13:52:20 +0000
commitb6b9e05687f954d3bd8294fb507012432f4537d7 (patch)
tree0ecf4aa8ff1b0b9758a590c325f711bff2b6de59 /llvm/unittests/ADT/TripleTest.cpp
parent96915181433f888a1ec0f054e05b3dfb6fbd58a4 (diff)
downloadbcm5719-llvm-b6b9e05687f954d3bd8294fb507012432f4537d7.tar.gz
bcm5719-llvm-b6b9e05687f954d3bd8294fb507012432f4537d7.zip
Make Triple::parseARMArch use ARMTargetParser
Simplifying Triple::parseARMArch, leaving all the parsing to ARMTargetParser. This commit also adds AArch64 detection to ARMTargetParser canonicalization, and a two RedHat arch names (v{6,7}hl, meaning hard-float / little-endian). Adding enough unit tests to cover the basics. Clang checks fine. llvm-svn: 237902
Diffstat (limited to 'llvm/unittests/ADT/TripleTest.cpp')
-rw-r--r--llvm/unittests/ADT/TripleTest.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/TripleTest.cpp b/llvm/unittests/ADT/TripleTest.cpp
index a1b2212dea7..4af3bfe9489 100644
--- a/llvm/unittests/ADT/TripleTest.cpp
+++ b/llvm/unittests/ADT/TripleTest.cpp
@@ -878,4 +878,69 @@ TEST(TripleTest, NormalizeARM) {
EXPECT_EQ(Triple::armeb, T.getArch());
}
+TEST(TripleTest, ParseARMArch) {
+ // ARM
+ {
+ Triple T = Triple("arm");
+ EXPECT_EQ(Triple::arm, T.getArch());
+ }
+ {
+ Triple T = Triple("armv6t2");
+ EXPECT_EQ(Triple::arm, T.getArch());
+ }
+ {
+ Triple T = Triple("armv8");
+ EXPECT_EQ(Triple::arm, T.getArch());
+ }
+ {
+ Triple T = Triple("armeb");
+ EXPECT_EQ(Triple::armeb, T.getArch());
+ }
+ {
+ Triple T = Triple("armv5eb");
+ EXPECT_EQ(Triple::armeb, T.getArch());
+ }
+ // THUMB
+ {
+ Triple T = Triple("thumb");
+ EXPECT_EQ(Triple::thumb, T.getArch());
+ }
+ {
+ Triple T = Triple("thumbv7a");
+ EXPECT_EQ(Triple::thumb, T.getArch());
+ }
+ {
+ Triple T = Triple("thumbeb");
+ EXPECT_EQ(Triple::thumbeb, T.getArch());
+ }
+ {
+ Triple T = Triple("thumbv4teb");
+ EXPECT_EQ(Triple::thumbeb, T.getArch());
+ }
+ {
+ Triple T = Triple("thumbv2");
+ EXPECT_EQ(Triple::UnknownArch, T.getArch());
+ }
+ // AARCH64
+ {
+ Triple T = Triple("arm64");
+ EXPECT_EQ(Triple::aarch64, T.getArch());
+ }
+ {
+ Triple T = Triple("aarch64");
+ EXPECT_EQ(Triple::aarch64, T.getArch());
+ }
+ {
+ Triple T = Triple("aarch64_be");
+ EXPECT_EQ(Triple::aarch64_be, T.getArch());
+ }
+ {
+ Triple T = Triple("aarch64be");
+ EXPECT_EQ(Triple::UnknownArch, T.getArch());
+ }
+ {
+ Triple T = Triple("arm64be");
+ EXPECT_EQ(Triple::UnknownArch, T.getArch());
+ }
+}
} // end anonymous namespace
OpenPOWER on IntegriCloud