aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/TargetParserTest.cpp
diff options
context:
space:
mode:
authorLucas Prates <lucas.prates@arm.com>2022-12-05 13:26:21 +0000
committerLucas Prates <lucas.prates@arm.com>2022-12-08 10:15:29 +0000
commit2050e7ebe18cc4cf906d9b54d17ee885cd868327 (patch)
tree07103b0ad64289a1a2ec3eb9cc75ff4e0b9e6815 /llvm/unittests/Support/TargetParserTest.cpp
parent8a900f2438b4a167b98404565ad4da2645cc9330 (diff)
downloadllvm-2050e7ebe18cc4cf906d9b54d17ee885cd868327.zip
llvm-2050e7ebe18cc4cf906d9b54d17ee885cd868327.tar.gz
llvm-2050e7ebe18cc4cf906d9b54d17ee885cd868327.tar.bz2
[Arm][AArch64] Add support for v8.9-A/v9.4-A base extensions
This implements the base extensions that are part of the v8.9-A and v9.4-A architecture versions, including: * The Clear BHB Instruction (FEAT_CLRBHB) * The Speculation Restriction Instruction (FEAT_SPECRES2) * The SLC target for the PRFM instruction * New system registers: * ID_AA64PFR2_EL1 * ID_AA64MMFR3_EL1 * HFGITR2_EL2 * SCTLR2_EL3 More information on the new extensions can be found on: * https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-2022 * https://developer.arm.com/downloads/-/exploration-tools Contributors: Sam Elliott, Tomas Matheson and Son Tuan Vu. Reviewed By: lenary Differential Revision: https://reviews.llvm.org/D139424
Diffstat (limited to 'llvm/unittests/Support/TargetParserTest.cpp')
-rw-r--r--llvm/unittests/Support/TargetParserTest.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp
index 5bcb131..0161be2 100644
--- a/llvm/unittests/Support/TargetParserTest.cpp
+++ b/llvm/unittests/Support/TargetParserTest.cpp
@@ -1608,7 +1608,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) {
AArch64::AEK_PERFMON, AArch64::AEK_SVE2p1, AArch64::AEK_SME2p1,
AArch64::AEK_B16B16, AArch64::AEK_SMEF16F16, AArch64::AEK_CSSC,
AArch64::AEK_RCPC3, AArch64::AEK_THE, AArch64::AEK_D128,
- AArch64::AEK_LSE128,
+ AArch64::AEK_LSE128, AArch64::AEK_SPECRES2,
};
std::vector<StringRef> Features;
@@ -1679,6 +1679,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) {
EXPECT_TRUE(llvm::is_contained(Features, "+the"));
EXPECT_TRUE(llvm::is_contained(Features, "+d128"));
EXPECT_TRUE(llvm::is_contained(Features, "+lse128"));
+ EXPECT_TRUE(llvm::is_contained(Features, "+specres2"));
// Assuming we listed every extension above, this should produce the same
// result. (note that AEK_NONE doesn't have a name so it won't be in the
@@ -1771,6 +1772,7 @@ TEST(TargetParserTest, AArch64ArchExtFeature) {
{"hbc", "nohbc", "+hbc", "-hbc"},
{"mops", "nomops", "+mops", "-mops"},
{"pmuv3", "nopmuv3", "+perfmon", "-perfmon"},
+ {"predres2", "nopredres2", "+specres2", "-specres2"},
};
for (unsigned i = 0; i < std::size(ArchExt); i++) {