aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/TargetParserTest.cpp
diff options
context:
space:
mode:
authorTomas Matheson <tomas.matheson@arm.com>2021-12-13 14:57:09 +0000
committertyb0807 <sontuan.vu@arm.com>2022-01-12 22:07:35 +0000
commit2db4cf5962ded48c7a5c3ec3c6051f64c8e7e376 (patch)
tree62c75b0b0731ff61df3054f4d70e0aff027db741 /llvm/unittests/Support/TargetParserTest.cpp
parentd4d016869d6cbd5fa1fa50fd178697028576ab1a (diff)
downloadllvm-2db4cf5962ded48c7a5c3ec3c6051f64c8e7e376.zip
llvm-2db4cf5962ded48c7a5c3ec3c6051f64c8e7e376.tar.gz
llvm-2db4cf5962ded48c7a5c3ec3c6051f64c8e7e376.tar.bz2
clang support for Armv8.8/9.3 HBC
This introduces clang command line support for new Armv8.8-A and Armv9.3-A Hinted Conditional Branches feature, previously introduced into LLVM in https://reviews.llvm.org/D116156. Patch by Tomas Matheson and Son Tuan Vu. Differential Revision: https://reviews.llvm.org/D116939
Diffstat (limited to 'llvm/unittests/Support/TargetParserTest.cpp')
-rw-r--r--llvm/unittests/Support/TargetParserTest.cpp72
1 files changed, 35 insertions, 37 deletions
diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp
index 3ea7ed4..bbba9f4 100644
--- a/llvm/unittests/Support/TargetParserTest.cpp
+++ b/llvm/unittests/Support/TargetParserTest.cpp
@@ -1485,43 +1485,41 @@ TEST(TargetParserTest, AArch64ArchFeatures) {
}
TEST(TargetParserTest, AArch64ArchExtFeature) {
- const char *ArchExt[][4] = {{"crc", "nocrc", "+crc", "-crc"},
- {"crypto", "nocrypto", "+crypto", "-crypto"},
- {"flagm", "noflagm", "+flagm", "-flagm"},
- {"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"},
- {"rdm", "nordm", "+rdm", "-rdm"},
- {"sve", "nosve", "+sve", "-sve"},
- {"sve2", "nosve2", "+sve2", "-sve2"},
- {"sve2-aes", "nosve2-aes", "+sve2-aes",
- "-sve2-aes"},
- {"sve2-sm4", "nosve2-sm4", "+sve2-sm4",
- "-sve2-sm4"},
- {"sve2-sha3", "nosve2-sha3", "+sve2-sha3",
- "-sve2-sha3"},
- {"sve2-bitperm", "nosve2-bitperm",
- "+sve2-bitperm", "-sve2-bitperm"},
- {"dotprod", "nodotprod", "+dotprod", "-dotprod"},
- {"rcpc", "norcpc", "+rcpc", "-rcpc" },
- {"rng", "norng", "+rand", "-rand"},
- {"memtag", "nomemtag", "+mte", "-mte"},
- {"tme", "notme", "+tme", "-tme"},
- {"pauth", "nopauth", "+pauth", "-pauth"},
- {"ssbs", "nossbs", "+ssbs", "-ssbs"},
- {"sb", "nosb", "+sb", "-sb"},
- {"predres", "nopredres", "+predres", "-predres"},
- {"i8mm", "noi8mm", "+i8mm", "-i8mm"},
- {"f32mm", "nof32mm", "+f32mm", "-f32mm"},
- {"f64mm", "nof64mm", "+f64mm", "-f64mm"},
- {"sme", "nosme", "+sme", "-sme"},
- {"sme-f64", "nosme-f64", "+sme-f64", "-sme-f64"},
- {"sme-i64", "nosme-i64", "+sme-i64", "-sme-i64"},
-};
+ const char *ArchExt[][4] = {
+ {"crc", "nocrc", "+crc", "-crc"},
+ {"crypto", "nocrypto", "+crypto", "-crypto"},
+ {"flagm", "noflagm", "+flagm", "-flagm"},
+ {"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"},
+ {"rdm", "nordm", "+rdm", "-rdm"},
+ {"sve", "nosve", "+sve", "-sve"},
+ {"sve2", "nosve2", "+sve2", "-sve2"},
+ {"sve2-aes", "nosve2-aes", "+sve2-aes", "-sve2-aes"},
+ {"sve2-sm4", "nosve2-sm4", "+sve2-sm4", "-sve2-sm4"},
+ {"sve2-sha3", "nosve2-sha3", "+sve2-sha3", "-sve2-sha3"},
+ {"sve2-bitperm", "nosve2-bitperm", "+sve2-bitperm", "-sve2-bitperm"},
+ {"dotprod", "nodotprod", "+dotprod", "-dotprod"},
+ {"rcpc", "norcpc", "+rcpc", "-rcpc"},
+ {"rng", "norng", "+rand", "-rand"},
+ {"memtag", "nomemtag", "+mte", "-mte"},
+ {"tme", "notme", "+tme", "-tme"},
+ {"pauth", "nopauth", "+pauth", "-pauth"},
+ {"ssbs", "nossbs", "+ssbs", "-ssbs"},
+ {"sb", "nosb", "+sb", "-sb"},
+ {"predres", "nopredres", "+predres", "-predres"},
+ {"i8mm", "noi8mm", "+i8mm", "-i8mm"},
+ {"f32mm", "nof32mm", "+f32mm", "-f32mm"},
+ {"f64mm", "nof64mm", "+f64mm", "-f64mm"},
+ {"sme", "nosme", "+sme", "-sme"},
+ {"sme-f64", "nosme-f64", "+sme-f64", "-sme-f64"},
+ {"sme-i64", "nosme-i64", "+sme-i64", "-sme-i64"},
+ {"hbc", "nohbc", "+hbc", "-hbc"},
+ };
for (unsigned i = 0; i < array_lengthof(ArchExt); i++) {
EXPECT_EQ(StringRef(ArchExt[i][2]),