Index: llvm/lib/Support/Triple.cpp =================================================================== --- llvm/lib/Support/Triple.cpp +++ 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; } Index: llvm/unittests/ADT/TripleTest.cpp =================================================================== --- llvm/unittests/ADT/TripleTest.cpp +++ llvm/unittests/ADT/TripleTest.cpp @@ -693,6 +693,13 @@ EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); EXPECT_TRUE(T.isArch64Bit()); + T = Triple("arm64ec-pc-windows-msvc"); + EXPECT_EQ(Triple::aarch64, T.getArch()); + EXPECT_EQ(Triple::AArch64SubArch_arm64ec, T.getSubArch()); + EXPECT_EQ(Triple::Win32, T.getOS()); + EXPECT_EQ(Triple::MSVC, T.getEnvironment()); + EXPECT_TRUE(T.isArch64Bit()); + T = Triple("arm64_32-apple-ios"); EXPECT_EQ(Triple::aarch64_32, T.getArch()); EXPECT_EQ(Triple::IOS, T.getOS()); @@ -1990,6 +1997,11 @@ 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()); + } } TEST(TripleTest, isArmT32) {