[llvm] 9667e60 - [llvm][AArch64] Drop unused&redundant field in the TargetParserTest. NFC (#97367)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 3 10:01:13 PDT 2024
Author: Jon Roelofs
Date: 2024-07-03T10:01:08-07:00
New Revision: 9667e6044a2fce85f2fb35cd1731cbc8491f1871
URL: https://github.com/llvm/llvm-project/commit/9667e6044a2fce85f2fb35cd1731cbc8491f1871
DIFF: https://github.com/llvm/llvm-project/commit/9667e6044a2fce85f2fb35cd1731cbc8491f1871.diff
LOG: [llvm][AArch64] Drop unused&redundant field in the TargetParserTest. NFC (#97367)
There were a couple of cases where this field was just plain wrong
because we weren't actually testing against it. Instead, drop the
`CPUAttr` field on AArch64 tests.
Added:
Modified:
llvm/unittests/TargetParser/TargetParserTest.cpp
Removed:
################################################################################
diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp
index fe20099382859..97d09d677fbdd 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1071,10 +1071,31 @@ TEST(TargetParserTest, ARMPrintSupportedExtensions) {
EXPECT_EQ(std::string::npos, captured.find("xscale"));
}
-class AArch64CPUTestFixture : public ::testing::TestWithParam<
- ARMCPUTestParams<AArch64::ExtensionBitset>> {
+struct AArch64CPUTestParams
+ : public ARMCPUTestParams<AArch64::ExtensionBitset> {
+ AArch64CPUTestParams(StringRef CPUName, StringRef ExpectedArch,
+ StringRef ExpectedFPU,
+ AArch64::ExtensionBitset ExpectedFlags)
+ : ARMCPUTestParams<AArch64::ExtensionBitset>(CPUName, ExpectedArch,
+ ExpectedFPU, ExpectedFlags,
+ /*ignored*/ "") {}
+ /// Print a gtest-compatible facsimile of the CPUName, to make the test's name
+ /// human-readable.
+ ///
+ /// https://github.com/google/googletest/blob/main/docs/advanced.md#specifying-names-for-value-parameterized-test-parameters
+ static std::string PrintToStringParamName(
+ const testing::TestParamInfo<AArch64CPUTestParams> &Info) {
+ std::string Name = Info.param.CPUName.str();
+ for (char &C : Name)
+ if (!std::isalnum(C))
+ C = '_';
+ return Name;
+ }
};
+class AArch64CPUTestFixture
+ : public ::testing::TestWithParam<AArch64CPUTestParams> {};
+
TEST_P(AArch64CPUTestFixture, testAArch64CPU) {
auto params = GetParam();
@@ -1090,865 +1111,707 @@ TEST_P(AArch64CPUTestFixture, testAArch64CPU) {
INSTANTIATE_TEST_SUITE_P(
AArch64CPUTests, AArch64CPUTestFixture,
::testing::Values(
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a34", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a35", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a53", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ AArch64CPUTestParams("cortex-a34", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("cortex-a35", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("cortex-a53", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a55", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_RAS,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_RCPC, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a510", "armv9-a", "neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_RAS,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
- AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_PAUTH,
- AArch64::AEK_MTE, AArch64::AEK_SSBS,
- AArch64::AEK_FP16, AArch64::AEK_FP16FML,
- AArch64::AEK_SB, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_AM}),
- "9-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a520", "armv9.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_SB,
- AArch64::AEK_SSBS, AArch64::AEK_MTE,
- AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PERFMON, AArch64::AEK_AM,
- AArch64::AEK_ETE}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a520ae", "armv9.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_SB,
- AArch64::AEK_SSBS, AArch64::AEK_MTE,
- AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PERFMON, AArch64::AEK_AM,
- AArch64::AEK_ETE}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a57", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_SIMD, AArch64::AEK_RAS,
+ AArch64::AEK_LSE, AArch64::AEK_RDM, AArch64::AEK_FP16,
+ AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("cortex-a510", "armv9-a", "neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
+ AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_PAUTH,
+ AArch64::AEK_MTE, AArch64::AEK_SSBS,
+ AArch64::AEK_FP16, AArch64::AEK_FP16FML,
+ AArch64::AEK_SB, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_AM}),
+ AArch64CPUTestParams("cortex-a520", "armv9.2-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_SB,
+ AArch64::AEK_SSBS, AArch64::AEK_MTE,
+ AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
+ AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+ AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PERFMON, AArch64::AEK_AM,
+ AArch64::AEK_ETE}),
+ AArch64CPUTestParams("cortex-a520ae", "armv9.2-a",
+ "crypto-neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_SB,
+ AArch64::AEK_SSBS, AArch64::AEK_MTE,
+ AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
+ AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+ AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PERFMON, AArch64::AEK_AM,
+ AArch64::AEK_ETE}),
+ AArch64CPUTestParams("cortex-a57", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a65", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RCPC,
- AArch64::AEK_RDM, AArch64::AEK_SIMD, AArch64::AEK_SSBS,
- AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RCPC,
+ AArch64::AEK_RDM, AArch64::AEK_SIMD, AArch64::AEK_SSBS,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a65ae", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RCPC,
- AArch64::AEK_RDM, AArch64::AEK_SIMD, AArch64::AEK_SSBS,
- AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a72", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a73", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RCPC,
+ AArch64::AEK_RDM, AArch64::AEK_SIMD, AArch64::AEK_SSBS,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("cortex-a72", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("cortex-a73", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a75", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_RAS,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_RCPC, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_SIMD, AArch64::AEK_RAS,
+ AArch64::AEK_LSE, AArch64::AEK_RDM, AArch64::AEK_FP16,
+ AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a76", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
- AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
- AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
+ AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a76ae", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
- AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
- AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
+ AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a77", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
- AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
- AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
+ AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a78", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
- AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
- AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
+ AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
+ AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a78ae", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
- AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
- AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
+ AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
+ AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a78c", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_RAS, AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD, AArch64::AEK_RCPC,
- AArch64::AEK_SSBS, AArch64::AEK_PROFILE, AArch64::AEK_FLAGM,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_RAS, AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD, AArch64::AEK_RCPC,
+ AArch64::AEK_SSBS, AArch64::AEK_PROFILE, AArch64::AEK_FLAGM,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-a710", "armv9-a", "neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_RAS,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
- AArch64::AEK_MTE, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_SVE,
- AArch64::AEK_SVE2, AArch64::AEK_SVE2BITPERM,
- AArch64::AEK_PAUTH, AArch64::AEK_FLAGM,
- AArch64::AEK_SB, AArch64::AEK_I8MM,
- AArch64::AEK_BF16, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE}),
- "9-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a715", "armv9-a", "neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP,
- AArch64::AEK_BF16, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE,
- AArch64::AEK_RDM, AArch64::AEK_RCPC,
- AArch64::AEK_DOTPROD, AArch64::AEK_MTE,
- AArch64::AEK_PAUTH, AArch64::AEK_SVE,
- AArch64::AEK_SVE2, AArch64::AEK_SVE2BITPERM,
- AArch64::AEK_SSBS, AArch64::AEK_SB,
- AArch64::AEK_I8MM, AArch64::AEK_PERFMON,
- AArch64::AEK_PREDRES, AArch64::AEK_PROFILE,
- AArch64::AEK_FP16FML, AArch64::AEK_FP16,
- AArch64::AEK_FLAGM, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_TRBE}),
- "9-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a720", "armv9.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_SB,
- AArch64::AEK_SSBS, AArch64::AEK_MTE,
- AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
- AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_SPE_EEF,
- AArch64::AEK_TRBE}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a720ae", "armv9.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_SB,
- AArch64::AEK_SSBS, AArch64::AEK_MTE,
- AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
- AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_SPE_EEF,
- AArch64::AEK_TRBE}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-a725", "armv9.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_SB,
- AArch64::AEK_SSBS, AArch64::AEK_MTE,
- AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
- AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_ETE,
- AArch64::AEK_SPE_EEF, AArch64::AEK_TRBE}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_MTE,
+ AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_SVE,
+ AArch64::AEK_SVE2, AArch64::AEK_SVE2BITPERM, AArch64::AEK_PAUTH,
+ AArch64::AEK_FLAGM, AArch64::AEK_SB, AArch64::AEK_I8MM,
+ AArch64::AEK_BF16, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PERFMON, AArch64::AEK_ETE}),
+ AArch64CPUTestParams("cortex-a715", "armv9-a", "neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_FP,
+ AArch64::AEK_BF16, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_RDM, AArch64::AEK_RCPC,
+ AArch64::AEK_DOTPROD, AArch64::AEK_MTE,
+ AArch64::AEK_PAUTH, AArch64::AEK_SVE,
+ AArch64::AEK_SVE2, AArch64::AEK_SVE2BITPERM,
+ AArch64::AEK_SSBS, AArch64::AEK_SB,
+ AArch64::AEK_I8MM, AArch64::AEK_PERFMON,
+ AArch64::AEK_PREDRES, AArch64::AEK_PROFILE,
+ AArch64::AEK_FP16FML, AArch64::AEK_FP16,
+ AArch64::AEK_FLAGM, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_TRBE}),
+ AArch64CPUTestParams("cortex-a720", "armv9.2-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_SB,
+ AArch64::AEK_SSBS, AArch64::AEK_MTE,
+ AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
+ AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+ AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_SPE_EEF,
+ AArch64::AEK_TRBE}),
+ AArch64CPUTestParams("cortex-a720ae", "armv9.2-a",
+ "crypto-neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_SB,
+ AArch64::AEK_SSBS, AArch64::AEK_MTE,
+ AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
+ AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+ AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_SPE_EEF,
+ AArch64::AEK_TRBE}),
+ AArch64CPUTestParams("cortex-a725", "armv9.2-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_SB,
+ AArch64::AEK_SSBS, AArch64::AEK_MTE,
+ AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
+ AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+ AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_ETE,
+ AArch64::AEK_SPE_EEF, AArch64::AEK_TRBE}),
+ AArch64CPUTestParams(
"neoverse-v1", "armv8.4-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_RAS, AArch64::AEK_SVE,
- AArch64::AEK_SSBS, AArch64::AEK_RCPC,
- AArch64::AEK_CRC, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_RAS,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
- AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_SHA3, AArch64::AEK_SM4,
- AArch64::AEK_FP16, AArch64::AEK_BF16,
- AArch64::AEK_PROFILE, AArch64::AEK_RAND,
- AArch64::AEK_FP16FML, AArch64::AEK_I8MM,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON,
- AArch64::AEK_CCDP}),
- "8.4-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "neoverse-v2", "armv9-a", "neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_RAS, AArch64::AEK_SVE,
- AArch64::AEK_SSBS, AArch64::AEK_RCPC,
- AArch64::AEK_CRC, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_MTE,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
- AArch64::AEK_FP16, AArch64::AEK_BF16,
- AArch64::AEK_SVE2, AArch64::AEK_PROFILE,
- AArch64::AEK_FP16FML, AArch64::AEK_I8MM,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_RAND,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE}),
- "9-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "neoverse-v3", "armv9.2-a", "neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_PROFILE,
- AArch64::AEK_MTE, AArch64::AEK_SSBS,
- AArch64::AEK_SB, AArch64::AEK_PREDRES,
- AArch64::AEK_LS64, AArch64::AEK_BRBE,
- AArch64::AEK_PAUTH, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_RAND,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_FP16FML,
- AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_SPE_EEF}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "neoverse-v3ae", "armv9.2-a", "neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_PROFILE,
- AArch64::AEK_MTE, AArch64::AEK_SSBS,
- AArch64::AEK_SB, AArch64::AEK_PREDRES,
- AArch64::AEK_LS64, AArch64::AEK_BRBE,
- AArch64::AEK_PAUTH, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_RAND,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_FP16FML,
- AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_SPE_EEF}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_RAS, AArch64::AEK_SVE, AArch64::AEK_SSBS,
+ AArch64::AEK_RCPC, AArch64::AEK_CRC, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_RDM, AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
+ AArch64::AEK_AES, AArch64::AEK_SHA2, AArch64::AEK_SHA3,
+ AArch64::AEK_SM4, AArch64::AEK_FP16, AArch64::AEK_BF16,
+ AArch64::AEK_PROFILE, AArch64::AEK_RAND, AArch64::AEK_FP16FML,
+ AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON, AArch64::AEK_CCDP}),
+ AArch64CPUTestParams("neoverse-v2", "armv9-a", "neon-fp-armv8",
+ {AArch64::AEK_RAS, AArch64::AEK_SVE,
+ AArch64::AEK_SSBS, AArch64::AEK_RCPC,
+ AArch64::AEK_CRC, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_MTE,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
+ AArch64::AEK_FP16, AArch64::AEK_BF16,
+ AArch64::AEK_SVE2, AArch64::AEK_PROFILE,
+ AArch64::AEK_FP16FML, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_RAND,
+ AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE}),
+ AArch64CPUTestParams("neoverse-v3", "armv9.2-a", "neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_PROFILE,
+ AArch64::AEK_MTE, AArch64::AEK_SSBS,
+ AArch64::AEK_SB, AArch64::AEK_PREDRES,
+ AArch64::AEK_LS64, AArch64::AEK_BRBE,
+ AArch64::AEK_PAUTH, AArch64::AEK_FLAGM,
+ AArch64::AEK_PERFMON, AArch64::AEK_RAND,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_FP16FML,
+ AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_SPE_EEF}),
+ AArch64CPUTestParams("neoverse-v3ae", "armv9.2-a", "neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_PROFILE,
+ AArch64::AEK_MTE, AArch64::AEK_SSBS,
+ AArch64::AEK_SB, AArch64::AEK_PREDRES,
+ AArch64::AEK_LS64, AArch64::AEK_BRBE,
+ AArch64::AEK_PAUTH, AArch64::AEK_FLAGM,
+ AArch64::AEK_PERFMON, AArch64::AEK_RAND,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_FP16FML,
+ AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_SPE_EEF}),
+ AArch64CPUTestParams(
"cortex-r82", "armv8-r", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_RDM, AArch64::AEK_SSBS,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_RAS,
- AArch64::AEK_RCPC, AArch64::AEK_LSE, AArch64::AEK_SB,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
- AArch64::AEK_FLAGM, AArch64::AEK_PERFMON,
- AArch64::AEK_PREDRES, AArch64::AEK_CCDP}),
- "8-R"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_RDM, AArch64::AEK_SSBS,
+ AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_RAS,
+ AArch64::AEK_RCPC, AArch64::AEK_LSE, AArch64::AEK_SB,
+ AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
+ AArch64::AEK_FLAGM, AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+ AArch64::AEK_CCDP}),
+ AArch64CPUTestParams(
"cortex-r82ae", "armv8-r", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_RDM, AArch64::AEK_SSBS,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_RAS,
- AArch64::AEK_RCPC, AArch64::AEK_LSE, AArch64::AEK_SB,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
- AArch64::AEK_FLAGM, AArch64::AEK_PERFMON,
- AArch64::AEK_PREDRES, AArch64::AEK_CCDP}),
- "8-R"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_RDM, AArch64::AEK_SSBS,
+ AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_RAS,
+ AArch64::AEK_RCPC, AArch64::AEK_LSE, AArch64::AEK_SB,
+ AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
+ AArch64::AEK_FLAGM, AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+ AArch64::AEK_CCDP}),
+ AArch64CPUTestParams(
"cortex-x1", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
- AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
- AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD, AArch64::AEK_RCPC,
+ AArch64::AEK_SSBS, AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"cortex-x1c", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
- AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
- AArch64::AEK_PAUTH, AArch64::AEK_PROFILE, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_LSE2, AArch64::AEK_RCPC_IMMO}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-x2", "armv9-a", "neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_RAS,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
- AArch64::AEK_MTE, AArch64::AEK_PAUTH,
- AArch64::AEK_I8MM, AArch64::AEK_BF16,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_SSBS,
- AArch64::AEK_SB, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_FLAGM,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PERFMON, AArch64::AEK_AM,
- AArch64::AEK_ETE}),
- "9-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-x3", "armv9-a", "neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP,
- AArch64::AEK_BF16, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE,
- AArch64::AEK_RDM, AArch64::AEK_RCPC,
- AArch64::AEK_DOTPROD, AArch64::AEK_MTE,
- AArch64::AEK_PAUTH, AArch64::AEK_SVE,
- AArch64::AEK_SVE2, AArch64::AEK_SVE2BITPERM,
- AArch64::AEK_SB, AArch64::AEK_PROFILE,
- AArch64::AEK_PERFMON, AArch64::AEK_I8MM,
- AArch64::AEK_FP16, AArch64::AEK_FP16FML,
- AArch64::AEK_PREDRES, AArch64::AEK_FLAGM,
- AArch64::AEK_SSBS, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_TRBE}),
- "9-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-x4", "armv9.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_SB,
- AArch64::AEK_SSBS, AArch64::AEK_MTE,
- AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
- AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_SPE_EEF,
- AArch64::AEK_TRBE}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cortex-x925", "armv9.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_SB,
- AArch64::AEK_SSBS, AArch64::AEK_MTE,
- AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
- AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
- AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_ETE,
- AArch64::AEK_SPE_EEF, AArch64::AEK_TRBE}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "cyclone", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "apple-a7", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "apple-a8", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "apple-a9", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "apple-a10", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_PERFMON, AArch64::AEK_PAN,
- AArch64::AEK_LOR, AArch64::AEK_VH}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "apple-a11", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_LSE, AArch64::AEK_RAS,
- AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_FP16, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD, AArch64::AEK_RCPC,
+ AArch64::AEK_SSBS, AArch64::AEK_PAUTH, AArch64::AEK_PROFILE,
+ AArch64::AEK_FLAGM, AArch64::AEK_PERFMON, AArch64::AEK_LSE2,
+ AArch64::AEK_RCPC_IMMO}),
+ AArch64CPUTestParams("cortex-x2", "armv9-a", "neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
+ AArch64::AEK_MTE, AArch64::AEK_PAUTH,
+ AArch64::AEK_I8MM, AArch64::AEK_BF16,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_SSBS,
+ AArch64::AEK_SB, AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML, AArch64::AEK_FLAGM,
+ AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PERFMON, AArch64::AEK_AM,
+ AArch64::AEK_ETE}),
+ AArch64CPUTestParams("cortex-x3", "armv9-a", "neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_FP,
+ AArch64::AEK_BF16, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_RDM, AArch64::AEK_RCPC,
+ AArch64::AEK_DOTPROD, AArch64::AEK_MTE,
+ AArch64::AEK_PAUTH, AArch64::AEK_SVE,
+ AArch64::AEK_SVE2, AArch64::AEK_SVE2BITPERM,
+ AArch64::AEK_SB, AArch64::AEK_PROFILE,
+ AArch64::AEK_PERFMON, AArch64::AEK_I8MM,
+ AArch64::AEK_FP16, AArch64::AEK_FP16FML,
+ AArch64::AEK_PREDRES, AArch64::AEK_FLAGM,
+ AArch64::AEK_SSBS, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_TRBE}),
+ AArch64CPUTestParams("cortex-x4", "armv9.2-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_SB,
+ AArch64::AEK_SSBS, AArch64::AEK_MTE,
+ AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
+ AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+ AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_SPE_EEF,
+ AArch64::AEK_TRBE}),
+ AArch64CPUTestParams("cortex-x925", "armv9.2-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_SB,
+ AArch64::AEK_SSBS, AArch64::AEK_MTE,
+ AArch64::AEK_FP16FML, AArch64::AEK_PAUTH,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM,
+ AArch64::AEK_PERFMON, AArch64::AEK_PREDRES,
+ AArch64::AEK_PROFILE, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_ETE,
+ AArch64::AEK_SPE_EEF, AArch64::AEK_TRBE}),
+ AArch64CPUTestParams("cyclone", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("apple-a7", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("apple-a8", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("apple-a9", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("apple-a10", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_RDM, AArch64::AEK_SIMD,
+ AArch64::AEK_PERFMON, AArch64::AEK_PAN,
+ AArch64::AEK_LOR, AArch64::AEK_VH}),
+ AArch64CPUTestParams("apple-a11", "armv8.2-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_LSE, AArch64::AEK_RAS,
+ AArch64::AEK_RDM, AArch64::AEK_SIMD,
+ AArch64::AEK_FP16, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"apple-a12", "armv8.3-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD, AArch64::AEK_LSE,
- AArch64::AEK_RAS, AArch64::AEK_RDM, AArch64::AEK_RCPC,
- AArch64::AEK_FP16, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
- "8.3-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_FP16, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"apple-s4", "armv8.3-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD, AArch64::AEK_LSE,
- AArch64::AEK_RAS, AArch64::AEK_RDM, AArch64::AEK_RCPC,
- AArch64::AEK_FP16, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
- "8.3-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_FP16, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"apple-s5", "armv8.3-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD, AArch64::AEK_LSE,
- AArch64::AEK_RAS, AArch64::AEK_RDM, AArch64::AEK_RCPC,
- AArch64::AEK_FP16, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
- "8.3-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_FP16, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"apple-a13", "armv8.4-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
- "8.4-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "apple-a14", "armv8.4-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_SHA3,
- AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_LSE, AArch64::AEK_RAS,
- AArch64::AEK_RDM, AArch64::AEK_RCPC,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_SHA3,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON,
- AArch64::AEK_PREDRES, AArch64::AEK_SB,
- AArch64::AEK_SSBS, AArch64::AEK_CCDP,
- AArch64::AEK_FRINT3264, AArch64::AEK_SPECRESTRICT,
- AArch64::AEK_ALTERNATIVENZCV}),
- "8.4-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "apple-m1", "armv8.4-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_SHA3,
- AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_LSE, AArch64::AEK_RAS,
- AArch64::AEK_RDM, AArch64::AEK_RCPC,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_SHA3,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON,
- AArch64::AEK_PREDRES, AArch64::AEK_SB,
- AArch64::AEK_SSBS, AArch64::AEK_CCDP,
- AArch64::AEK_FRINT3264, AArch64::AEK_SPECRESTRICT,
- AArch64::AEK_ALTERNATIVENZCV}),
- "8.6-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("apple-a14", "armv8.4-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC,
+ AArch64::AEK_AES,
+ AArch64::AEK_SHA2,
+ AArch64::AEK_SHA3,
+ AArch64::AEK_FP,
+ AArch64::AEK_SIMD,
+ AArch64::AEK_LSE,
+ AArch64::AEK_RAS,
+ AArch64::AEK_RDM,
+ AArch64::AEK_RCPC,
+ AArch64::AEK_DOTPROD,
+ AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML,
+ AArch64::AEK_SHA3,
+ AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH,
+ AArch64::AEK_PERFMON,
+ AArch64::AEK_PREDRES,
+ AArch64::AEK_SB,
+ AArch64::AEK_SSBS,
+ AArch64::AEK_CCDP,
+ AArch64::AEK_FRINT3264,
+ AArch64::AEK_SPECRESTRICT,
+ AArch64::AEK_ALTERNATIVENZCV}),
+ AArch64CPUTestParams("apple-m1", "armv8.4-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC,
+ AArch64::AEK_AES,
+ AArch64::AEK_SHA2,
+ AArch64::AEK_SHA3,
+ AArch64::AEK_FP,
+ AArch64::AEK_SIMD,
+ AArch64::AEK_LSE,
+ AArch64::AEK_RAS,
+ AArch64::AEK_RDM,
+ AArch64::AEK_RCPC,
+ AArch64::AEK_DOTPROD,
+ AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML,
+ AArch64::AEK_SHA3,
+ AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH,
+ AArch64::AEK_PERFMON,
+ AArch64::AEK_PREDRES,
+ AArch64::AEK_SB,
+ AArch64::AEK_SSBS,
+ AArch64::AEK_CCDP,
+ AArch64::AEK_FRINT3264,
+ AArch64::AEK_SPECRESTRICT,
+ AArch64::AEK_ALTERNATIVENZCV}),
+ AArch64CPUTestParams(
"apple-a15", "armv8.6-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
- AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
- "8.6-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
+ AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"apple-m2", "armv8.6-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
- AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
- "8.6-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
+ AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"apple-a16", "armv8.6-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
- AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON, AArch64::AEK_HCX}),
- "8.4-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
+ AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON, AArch64::AEK_HCX}),
+ AArch64CPUTestParams(
"apple-m3", "armv8.6-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
- AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON, AArch64::AEK_HCX}),
- "8.6-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
+ AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON, AArch64::AEK_HCX}),
+ AArch64CPUTestParams(
"apple-a17", "armv8.6-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
- AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON, AArch64::AEK_HCX}),
- "8.6-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "apple-m4", "armv8.7-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_SHA3,
- AArch64::AEK_FP, AArch64::AEK_SIMD,
- AArch64::AEK_LSE, AArch64::AEK_RAS,
- AArch64::AEK_RDM, AArch64::AEK_RCPC,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_BF16,
- AArch64::AEK_I8MM, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
- AArch64::AEK_SME, AArch64::AEK_SME2,
- AArch64::AEK_SMEF64F64, AArch64::AEK_SMEI16I64,
- AArch64::AEK_PERFMON}),
- "8.3-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "exynos-m3", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16,
+ AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON, AArch64::AEK_HCX}),
+ AArch64CPUTestParams("apple-m4", "armv8.7-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_SHA3,
+ AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_LSE, AArch64::AEK_RAS,
+ AArch64::AEK_RDM, AArch64::AEK_RCPC,
+ AArch64::AEK_DOTPROD, AArch64::AEK_FP16,
+ AArch64::AEK_FP16FML, AArch64::AEK_BF16,
+ AArch64::AEK_I8MM, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
+ AArch64::AEK_SME, AArch64::AEK_SME2,
+ AArch64::AEK_SMEF64F64, AArch64::AEK_SMEI16I64,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("exynos-m3", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"exynos-m4", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"exynos-m5", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "falkor", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_RDM,
- AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "kryo", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("falkor", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_RDM,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("kryo", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"neoverse-e1", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
- AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RCPC,
- AArch64::AEK_RDM, AArch64::AEK_SIMD, AArch64::AEK_SSBS,
- AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
+ AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RCPC,
+ AArch64::AEK_RDM, AArch64::AEK_SIMD, AArch64::AEK_SSBS,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"neoverse-n1", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
- AArch64::AEK_LSE, AArch64::AEK_PROFILE, AArch64::AEK_RAS,
- AArch64::AEK_RCPC, AArch64::AEK_RDM, AArch64::AEK_SIMD,
- AArch64::AEK_SSBS, AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "neoverse-n2", "armv9-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_FP16,
- AArch64::AEK_RAS, AArch64::AEK_LSE,
- AArch64::AEK_SVE, AArch64::AEK_DOTPROD,
- AArch64::AEK_RCPC, AArch64::AEK_RDM,
- AArch64::AEK_MTE, AArch64::AEK_SSBS,
- AArch64::AEK_SB, AArch64::AEK_SVE2,
- AArch64::AEK_SVE2BITPERM, AArch64::AEK_BF16,
- AArch64::AEK_I8MM, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
- AArch64::AEK_FP16FML, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_TRBE}),
- "9-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "neoverse-n3", "armv9.2-a", "neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_BF16, AArch64::AEK_I8MM,
- AArch64::AEK_SVE, AArch64::AEK_SVE2,
- AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_SIMD, AArch64::AEK_RCPC,
- AArch64::AEK_RAS, AArch64::AEK_CRC,
- AArch64::AEK_FP, AArch64::AEK_PROFILE,
- AArch64::AEK_MTE, AArch64::AEK_SSBS,
- AArch64::AEK_SB, AArch64::AEK_PREDRES,
- AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
- AArch64::AEK_FLAGM, AArch64::AEK_PERFMON,
- AArch64::AEK_RAND, AArch64::AEK_SVE2BITPERM,
- AArch64::AEK_FP16FML, AArch64::AEK_PROFILE,
- AArch64::AEK_JSCVT, AArch64::AEK_PERFMON,
- AArch64::AEK_ETE, AArch64::AEK_SPE_EEF}),
- "9.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_DOTPROD, AArch64::AEK_FP, AArch64::AEK_FP16,
+ AArch64::AEK_LSE, AArch64::AEK_PROFILE, AArch64::AEK_RAS,
+ AArch64::AEK_RCPC, AArch64::AEK_RDM, AArch64::AEK_SIMD,
+ AArch64::AEK_SSBS, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("neoverse-n2", "armv9-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_FP16,
+ AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_SVE, AArch64::AEK_DOTPROD,
+ AArch64::AEK_RCPC, AArch64::AEK_RDM,
+ AArch64::AEK_MTE, AArch64::AEK_SSBS,
+ AArch64::AEK_SB, AArch64::AEK_SVE2,
+ AArch64::AEK_SVE2BITPERM, AArch64::AEK_BF16,
+ AArch64::AEK_I8MM, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
+ AArch64::AEK_FP16FML, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_TRBE}),
+ AArch64CPUTestParams("neoverse-n3", "armv9.2-a", "neon-fp-armv8",
+ {AArch64::AEK_BF16, AArch64::AEK_I8MM,
+ AArch64::AEK_SVE, AArch64::AEK_SVE2,
+ AArch64::AEK_FP16, AArch64::AEK_DOTPROD,
+ AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_SIMD, AArch64::AEK_RCPC,
+ AArch64::AEK_RAS, AArch64::AEK_CRC,
+ AArch64::AEK_FP, AArch64::AEK_PROFILE,
+ AArch64::AEK_MTE, AArch64::AEK_SSBS,
+ AArch64::AEK_SB, AArch64::AEK_PREDRES,
+ AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
+ AArch64::AEK_FLAGM, AArch64::AEK_PERFMON,
+ AArch64::AEK_RAND, AArch64::AEK_SVE2BITPERM,
+ AArch64::AEK_FP16FML, AArch64::AEK_PROFILE,
+ AArch64::AEK_JSCVT, AArch64::AEK_PERFMON,
+ AArch64::AEK_ETE, AArch64::AEK_SPE_EEF}),
+ AArch64CPUTestParams(
"ampere1", "armv8.6-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP, AArch64::AEK_FP16,
- AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
- AArch64::AEK_RDM, AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
- AArch64::AEK_SHA3, AArch64::AEK_BF16, AArch64::AEK_SHA2,
- AArch64::AEK_AES, AArch64::AEK_I8MM, AArch64::AEK_SSBS,
- AArch64::AEK_SB, AArch64::AEK_RAND, AArch64::AEK_JSCVT,
- AArch64::AEK_FCMA, AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
- "8.6-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_FP, AArch64::AEK_FP16,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_RDM, AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
+ AArch64::AEK_SHA3, AArch64::AEK_BF16, AArch64::AEK_SHA2,
+ AArch64::AEK_AES, AArch64::AEK_I8MM, AArch64::AEK_SSBS,
+ AArch64::AEK_SB, AArch64::AEK_RAND, AArch64::AEK_JSCVT,
+ AArch64::AEK_FCMA, AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"ampere1a", "armv8.6-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP, AArch64::AEK_FP16,
- AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
- AArch64::AEK_RDM, AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
- AArch64::AEK_SM4, AArch64::AEK_SHA3, AArch64::AEK_BF16,
- AArch64::AEK_SHA2, AArch64::AEK_AES, AArch64::AEK_I8MM,
- AArch64::AEK_SSBS, AArch64::AEK_SB, AArch64::AEK_RAND,
- AArch64::AEK_MTE, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
- "8.6-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_FP, AArch64::AEK_FP16,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_RDM, AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
+ AArch64::AEK_SM4, AArch64::AEK_SHA3, AArch64::AEK_BF16,
+ AArch64::AEK_SHA2, AArch64::AEK_AES, AArch64::AEK_I8MM,
+ AArch64::AEK_SSBS, AArch64::AEK_SB, AArch64::AEK_RAND,
+ AArch64::AEK_MTE, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"ampere1b", "armv8.7-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP, AArch64::AEK_FP16,
- AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
- AArch64::AEK_RDM, AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
- AArch64::AEK_SM4, AArch64::AEK_SHA3, AArch64::AEK_BF16,
- AArch64::AEK_SHA2, AArch64::AEK_AES, AArch64::AEK_I8MM,
- AArch64::AEK_SSBS, AArch64::AEK_SB, AArch64::AEK_RAND,
- AArch64::AEK_MTE, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_CSSC, AArch64::AEK_PERFMON,
- AArch64::AEK_WFXT}),
- "8.7-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_FP, AArch64::AEK_FP16,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_RDM, AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
+ AArch64::AEK_SM4, AArch64::AEK_SHA3, AArch64::AEK_BF16,
+ AArch64::AEK_SHA2, AArch64::AEK_AES, AArch64::AEK_I8MM,
+ AArch64::AEK_SSBS, AArch64::AEK_SB, AArch64::AEK_RAND,
+ AArch64::AEK_MTE, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_CSSC, AArch64::AEK_PERFMON,
+ AArch64::AEK_WFXT}),
+ AArch64CPUTestParams(
"neoverse-512tvb", "armv8.4-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_RAS, AArch64::AEK_SVE,
- AArch64::AEK_SSBS, AArch64::AEK_RCPC,
- AArch64::AEK_CRC, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_RAS,
- AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
- AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_SHA3, AArch64::AEK_SM4,
- AArch64::AEK_FP16, AArch64::AEK_BF16,
- AArch64::AEK_PROFILE, AArch64::AEK_RAND,
- AArch64::AEK_FP16FML, AArch64::AEK_I8MM,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
- AArch64::AEK_PAUTH, AArch64::AEK_PERFMON,
- AArch64::AEK_CCDP}),
- "8.4-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "thunderx2t99", "armv8.1-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_LSE,
- AArch64::AEK_RDM, AArch64::AEK_FP,
- AArch64::AEK_SIMD}),
- "8.1-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "thunderx3t110", "armv8.3-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_LSE, AArch64::AEK_RDM, AArch64::AEK_FP,
- AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_RCPC,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
- AArch64::AEK_PERFMON}),
- "8.3-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "thunderx", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_SIMD,
- AArch64::AEK_FP, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "thunderxt81", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_SIMD,
- AArch64::AEK_FP, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "thunderxt83", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_SIMD,
- AArch64::AEK_FP, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "thunderxt88", "armv8-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset({AArch64::AEK_CRC, AArch64::AEK_AES,
- AArch64::AEK_SHA2, AArch64::AEK_SIMD,
- AArch64::AEK_FP, AArch64::AEK_PERFMON}),
- "8-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_RAS, AArch64::AEK_SVE, AArch64::AEK_SSBS,
+ AArch64::AEK_RCPC, AArch64::AEK_CRC, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_RDM, AArch64::AEK_RCPC, AArch64::AEK_DOTPROD,
+ AArch64::AEK_AES, AArch64::AEK_SHA2, AArch64::AEK_SHA3,
+ AArch64::AEK_SM4, AArch64::AEK_FP16, AArch64::AEK_BF16,
+ AArch64::AEK_PROFILE, AArch64::AEK_RAND, AArch64::AEK_FP16FML,
+ AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_PAUTH, AArch64::AEK_PERFMON, AArch64::AEK_CCDP}),
+ AArch64CPUTestParams("thunderx2t99", "armv8.1-a",
+ "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_LSE,
+ AArch64::AEK_RDM, AArch64::AEK_FP,
+ AArch64::AEK_SIMD}),
+ AArch64CPUTestParams(
+ "thunderx3t110",
+ "armv8.3-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
+ AArch64::AEK_LSE, AArch64::AEK_RDM, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_RAS, AArch64::AEK_RCPC,
+ AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_PAUTH,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("thunderx", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_SIMD,
+ AArch64::AEK_FP, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("thunderxt81", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_SIMD,
+ AArch64::AEK_FP, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("thunderxt83", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_SIMD,
+ AArch64::AEK_FP, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("thunderxt88", "armv8-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_SIMD,
+ AArch64::AEK_FP, AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams(
"tsv110", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD, AArch64::AEK_RAS,
- AArch64::AEK_LSE, AArch64::AEK_RDM, AArch64::AEK_PROFILE,
- AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_FP16,
- AArch64::AEK_FP16FML, AArch64::AEK_DOTPROD,
- AArch64::AEK_PERFMON}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "a64fx", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD, AArch64::AEK_FP16,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_SVE,
- AArch64::AEK_RDM, AArch64::AEK_PERFMON, AArch64::AEK_FCMA}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
- "carmel", "armv8.2-a", "crypto-neon-fp-armv8",
- AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2,
- AArch64::AEK_FP, AArch64::AEK_SIMD, AArch64::AEK_FP16,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_RDM}),
- "8.2-A"),
- ARMCPUTestParams<AArch64::ExtensionBitset>(
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_PROFILE, AArch64::AEK_JSCVT, AArch64::AEK_FCMA,
+ AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_DOTPROD,
+ AArch64::AEK_PERFMON}),
+ AArch64CPUTestParams("a64fx", "armv8.2-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_FP16,
+ AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_SVE, AArch64::AEK_RDM,
+ AArch64::AEK_PERFMON, AArch64::AEK_FCMA}),
+ AArch64CPUTestParams("carmel", "armv8.2-a", "crypto-neon-fp-armv8",
+ {AArch64::AEK_CRC, AArch64::AEK_AES,
+ AArch64::AEK_SHA2, AArch64::AEK_FP,
+ AArch64::AEK_SIMD, AArch64::AEK_FP16,
+ AArch64::AEK_RAS, AArch64::AEK_LSE,
+ AArch64::AEK_RDM}),
+ AArch64CPUTestParams(
"oryon-1", "armv8.6-a", "crypto-neon-fp-armv8",
- (AArch64::ExtensionBitset(
- {AArch64::AEK_CRC, AArch64::AEK_FP, AArch64::AEK_PAUTH,
- AArch64::AEK_FCMA, AArch64::AEK_JSCVT, AArch64::AEK_SIMD,
- AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_RDM,
- AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_SM4,
- AArch64::AEK_SHA3, AArch64::AEK_BF16, AArch64::AEK_SHA2,
- AArch64::AEK_AES, AArch64::AEK_I8MM, AArch64::AEK_RAND,
- AArch64::AEK_PROFILE, AArch64::AEK_PERFMON})),
- "8.6-A")),
-
- ARMCPUTestParams<AArch64::ExtensionBitset>::PrintToStringParamName);
+ {AArch64::AEK_CRC, AArch64::AEK_FP, AArch64::AEK_PAUTH,
+ AArch64::AEK_FCMA, AArch64::AEK_JSCVT, AArch64::AEK_SIMD,
+ AArch64::AEK_RAS, AArch64::AEK_LSE, AArch64::AEK_RDM,
+ AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_SM4,
+ AArch64::AEK_SHA3, AArch64::AEK_BF16, AArch64::AEK_SHA2,
+ AArch64::AEK_AES, AArch64::AEK_I8MM, AArch64::AEK_RAND,
+ AArch64::AEK_PROFILE, AArch64::AEK_PERFMON})),
+
+ AArch64CPUTestParams::PrintToStringParamName);
// Note: number of CPUs includes aliases.
static constexpr unsigned NumAArch64CPUArchs = 81;
@@ -2148,8 +2011,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) {
// NONE has no feature names.
// We return True here because NONE is a valid choice.
- EXPECT_TRUE(AArch64::getExtensionFeatures(
- AArch64::ExtensionBitset({AArch64::AEK_NONE}), Features));
+ EXPECT_TRUE(AArch64::getExtensionFeatures({AArch64::AEK_NONE}, Features));
EXPECT_TRUE(!Features.size());
AArch64::getExtensionFeatures(ExtVal, Features);
More information about the llvm-commits
mailing list