diff options
Diffstat (limited to 'llvm/unittests/Support/TargetParserTest.cpp')
-rw-r--r-- | llvm/unittests/Support/TargetParserTest.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp index e4d3664d6b5..c3c805e6b1e 100644 --- a/llvm/unittests/Support/TargetParserTest.cpp +++ b/llvm/unittests/Support/TargetParserTest.cpp @@ -448,8 +448,12 @@ TEST(TargetParserTest, testARMExtension) { ARM::ArchKind::INVALID, "fp16")); EXPECT_TRUE(testARMExtension("cortex-a55", ARM::ArchKind::INVALID, "fp16")); + EXPECT_FALSE(testARMExtension("cortex-a55", + ARM::ArchKind::INVALID, "fp16fml")); EXPECT_TRUE(testARMExtension("cortex-a75", ARM::ArchKind::INVALID, "fp16")); + EXPECT_FALSE(testARMExtension("cortex-a75", + ARM::ArchKind::INVALID, "fp16fml")); EXPECT_FALSE(testARMExtension("cortex-r52", ARM::ArchKind::INVALID, "ras")); EXPECT_FALSE(testARMExtension("iwmmxt", ARM::ArchKind::INVALID, "crc")); @@ -481,8 +485,11 @@ TEST(TargetParserTest, testARMExtension) { EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_1A, "ras")); EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_2A, "spe")); EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_2A, "fp16")); + EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_2A, "fp16fml")); EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_3A, "fp16")); + EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_3A, "fp16fml")); EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_4A, "fp16")); + EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_4A, "fp16fml")); EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8R, "ras")); EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8MBaseline, "crc")); @@ -536,7 +543,8 @@ TEST(TargetParserTest, ARMExtensionFeatures) { std::vector<StringRef> Features; unsigned Extensions = ARM::AEK_CRC | ARM::AEK_CRYPTO | ARM::AEK_DSP | ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB | ARM::AEK_MP | - ARM::AEK_SEC | ARM::AEK_VIRT | ARM::AEK_RAS | ARM::AEK_FP16; + ARM::AEK_SEC | ARM::AEK_VIRT | ARM::AEK_RAS | ARM::AEK_FP16 | + ARM::AEK_FP16FML; for (unsigned i = 0; i <= Extensions; i++) EXPECT_TRUE(i == 0 ? !ARM::getExtensionFeatures(i, Features) @@ -564,6 +572,7 @@ TEST(TargetParserTest, ARMArchExtFeature) { {"sec", "nosec", nullptr, nullptr}, {"virt", "novirt", nullptr, nullptr}, {"fp16", "nofp16", "+fullfp16", "-fullfp16"}, + {"fp16fml", "nofp16fml", "+fp16fml", "-fp16fml"}, {"ras", "noras", "+ras", "-ras"}, {"dotprod", "nodotprod", "+dotprod", "-dotprod"}, {"os", "noos", nullptr, nullptr}, @@ -864,8 +873,12 @@ TEST(TargetParserTest, testAArch64Extension) { AArch64::ArchKind::INVALID, "fp16")); EXPECT_TRUE(testAArch64Extension("cortex-a55", AArch64::ArchKind::INVALID, "fp16")); + EXPECT_FALSE(testAArch64Extension("cortex-a55", + AArch64::ArchKind::INVALID, "fp16fml")); EXPECT_TRUE(testAArch64Extension("cortex-a75", AArch64::ArchKind::INVALID, "fp16")); + EXPECT_FALSE(testAArch64Extension("cortex-a75", + AArch64::ArchKind::INVALID, "fp16fml")); EXPECT_FALSE(testAArch64Extension("thunderx2t99", AArch64::ArchKind::INVALID, "ras")); EXPECT_FALSE(testAArch64Extension("thunderx", @@ -886,9 +899,15 @@ TEST(TargetParserTest, testAArch64Extension) { EXPECT_FALSE(testAArch64Extension( "generic", AArch64::ArchKind::ARMV8_2A, "fp16")); EXPECT_FALSE(testAArch64Extension( + "generic", AArch64::ArchKind::ARMV8_2A, "fp16fml")); + EXPECT_FALSE(testAArch64Extension( "generic", AArch64::ArchKind::ARMV8_3A, "fp16")); EXPECT_FALSE(testAArch64Extension( + "generic", AArch64::ArchKind::ARMV8_3A, "fp16fml")); + EXPECT_FALSE(testAArch64Extension( "generic", AArch64::ArchKind::ARMV8_4A, "fp16")); + EXPECT_FALSE(testAArch64Extension( + "generic", AArch64::ArchKind::ARMV8_4A, "fp16fml")); } TEST(TargetParserTest, AArch64ExtensionFeatures) { @@ -898,7 +917,8 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) { AArch64::AEK_FP16 | AArch64::AEK_PROFILE | AArch64::AEK_RAS | AArch64::AEK_LSE | AArch64::AEK_RDM | AArch64::AEK_SVE | - AArch64::AEK_DOTPROD | AArch64::AEK_RCPC; + AArch64::AEK_DOTPROD | AArch64::AEK_RCPC | + AArch64::AEK_FP16FML; for (unsigned i = 0; i <= Extensions; i++) EXPECT_TRUE(i == 0 ? !AArch64::getExtensionFeatures(i, Features) @@ -925,6 +945,7 @@ TEST(TargetParserTest, AArch64ArchExtFeature) { {"fp", "nofp", "+fp-armv8", "-fp-armv8"}, {"simd", "nosimd", "+neon", "-neon"}, {"fp16", "nofp16", "+fullfp16", "-fullfp16"}, + {"fp16fml", "nofp16fml", "+fp16fml", "-fp16fml"}, {"profile", "noprofile", "+spe", "-spe"}, {"ras", "noras", "+ras", "-ras"}, {"lse", "nolse", "+lse", "-lse"}, |