aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/TargetParserTest.cpp
diff options
context:
space:
mode:
authorDaniel Kiss <daniel.kiss@arm.com>2022-09-27 10:22:20 +0200
committerDaniel Kiss <daniel.kiss@arm.com>2022-09-27 10:23:21 +0200
commit712de9d1716c010e895a578ad86cbd47680a4fdd (patch)
tree17041c0f660c3a1d92dd5946800a43196fd96888 /llvm/unittests/Support/TargetParserTest.cpp
parent97dfa536260c434e68913129d79d863b26c1c179 (diff)
downloadllvm-712de9d1716c010e895a578ad86cbd47680a4fdd.zip
llvm-712de9d1716c010e895a578ad86cbd47680a4fdd.tar.gz
llvm-712de9d1716c010e895a578ad86cbd47680a4fdd.tar.bz2
[AArch64] Add all predecessor archs in target info
A given function is compatible with all previous arch versions. To avoid compering values of the attribute this logic adds all predecessor architecture values. Reviewed By: dmgreen, DavidSpickett Differential Revision: https://reviews.llvm.org/D134353
Diffstat (limited to 'llvm/unittests/Support/TargetParserTest.cpp')
-rw-r--r--llvm/unittests/Support/TargetParserTest.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp
index f25b72e..06008ee 100644
--- a/llvm/unittests/Support/TargetParserTest.cpp
+++ b/llvm/unittests/Support/TargetParserTest.cpp
@@ -1584,6 +1584,27 @@ TEST(TargetParserTest, AArch64ArchFeatures) {
}
}
+TEST(TargetParserTest, AArch64ArchV9toV8Conversion) {
+ for (auto AK : AArch64::ArchKinds) {
+ if (AK == AArch64::ArchKind::INVALID)
+ EXPECT_EQ(AK, AArch64::convertV9toV8(AK));
+ else if (AK < AArch64::ArchKind::ARMV9A)
+ EXPECT_EQ(AK, AArch64::convertV9toV8(AK));
+ else if (AK >= AArch64::ArchKind::ARMV8R)
+ EXPECT_EQ(AArch64::ArchKind::INVALID, AArch64::convertV9toV8(AK));
+ else
+ EXPECT_TRUE(AArch64::convertV9toV8(AK) < AArch64::ArchKind::ARMV9A);
+ }
+ EXPECT_EQ(AArch64::ArchKind::ARMV8_5A,
+ AArch64::convertV9toV8(AArch64::ArchKind::ARMV9A));
+ EXPECT_EQ(AArch64::ArchKind::ARMV8_6A,
+ AArch64::convertV9toV8(AArch64::ArchKind::ARMV9_1A));
+ EXPECT_EQ(AArch64::ArchKind::ARMV8_7A,
+ AArch64::convertV9toV8(AArch64::ArchKind::ARMV9_2A));
+ EXPECT_EQ(AArch64::ArchKind::ARMV8_8A,
+ AArch64::convertV9toV8(AArch64::ArchKind::ARMV9_3A));
+}
+
TEST(TargetParserTest, AArch64ArchExtFeature) {
const char *ArchExt[][4] = {
{"crc", "nocrc", "+crc", "-crc"},