diff options
author | Renato Golin <renato.golin@linaro.org> | 2015-05-21 13:52:20 +0000 |
---|---|---|
committer | Renato Golin <renato.golin@linaro.org> | 2015-05-21 13:52:20 +0000 |
commit | b6b9e05687f954d3bd8294fb507012432f4537d7 (patch) | |
tree | 0ecf4aa8ff1b0b9758a590c325f711bff2b6de59 /llvm/unittests/ADT/TripleTest.cpp | |
parent | 96915181433f888a1ec0f054e05b3dfb6fbd58a4 (diff) | |
download | bcm5719-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.cpp | 65 |
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 |