diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp --- a/llvm/lib/Support/Triple.cpp +++ b/llvm/lib/Support/Triple.cpp @@ -1149,6 +1149,10 @@ if (SubArch == MipsSubArch_r6) return "mipsisa64r6el"; break; + case Triple::aarch64: + if (SubArch == AArch64SubArch_arm64ec) + return "arm64ec"; + break; default: break; } diff --git a/llvm/unittests/ADT/TripleTest.cpp b/llvm/unittests/ADT/TripleTest.cpp --- a/llvm/unittests/ADT/TripleTest.cpp +++ b/llvm/unittests/ADT/TripleTest.cpp @@ -1990,6 +1990,16 @@ EXPECT_EQ(Triple::aarch64, T.getArch()); EXPECT_EQ(Triple::AArch64SubArch_arm64e, T.getSubArch()); } + { + Triple T = Triple("arm64ec"); + EXPECT_EQ(Triple::aarch64, T.getArch()); + EXPECT_EQ(Triple::AArch64SubArch_arm64ec, T.getSubArch()); + } + { + Triple T; + T.setArch(Triple::aarch64, Triple::AArch64SubArch_arm64ec); + EXPECT_EQ("arm64ec", T.getArchName()); + } } TEST(TripleTest, isArmT32) {