diff options
| author | Daniel Kiss <daniel.kiss@arm.com> | 2022-09-27 10:22:20 +0200 |
|---|---|---|
| committer | Daniel Kiss <daniel.kiss@arm.com> | 2022-09-27 10:23:21 +0200 |
| commit | 712de9d1716c010e895a578ad86cbd47680a4fdd (patch) | |
| tree | 17041c0f660c3a1d92dd5946800a43196fd96888 /llvm/unittests/Support/TargetParserTest.cpp | |
| parent | 97dfa536260c434e68913129d79d863b26c1c179 (diff) | |
| download | llvm-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.cpp | 21 |
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"}, |
