diff options
| author | Lucas Prates <lucas.prates@arm.com> | 2022-12-05 13:26:21 +0000 |
|---|---|---|
| committer | Lucas Prates <lucas.prates@arm.com> | 2022-12-08 10:15:29 +0000 |
| commit | 2050e7ebe18cc4cf906d9b54d17ee885cd868327 (patch) | |
| tree | 07103b0ad64289a1a2ec3eb9cc75ff4e0b9e6815 /llvm/unittests/Support/TargetParserTest.cpp | |
| parent | 8a900f2438b4a167b98404565ad4da2645cc9330 (diff) | |
| download | llvm-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.cpp | 4 |
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++) { |
