[llvm] [AArch64] Remove TargetParser CPU/Arch feature tests (PR #104587)

Tomas Matheson via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 16 05:52:43 PDT 2024


https://github.com/tmatheson-arm created https://github.com/llvm/llvm-project/pull/104587

These are annoying to update, and are redundant since the tests in clang/test/Driver/print-enabled-extensions/ were added.

>From 95e6162a0cd756b26c5e5ecca330ce7b6a9ecd57 Mon Sep 17 00:00:00 2001
From: Tomas Matheson <tomas.matheson at arm.com>
Date: Fri, 16 Aug 2024 13:46:56 +0100
Subject: [PATCH] [AArch64] Remove TargetParser CPU/Arch feature tests

These are annoying to update, and are redundant since the tests in
clang/test/Driver/print-enabled-extensions/ were added.
---
 .../TargetParser/TargetParserTest.cpp         | 727 ------------------
 1 file changed, 727 deletions(-)

diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp
index 960a9892202b35..2a55e8e80fa17c 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1093,733 +1093,6 @@ struct AArch64CPUTestParams
   }
 };
 
-class AArch64CPUTestFixture
-    : public ::testing::TestWithParam<AArch64CPUTestParams> {};
-
-TEST_P(AArch64CPUTestFixture, testAArch64CPU) {
-  auto params = GetParam();
-
-  const std::optional<AArch64::CpuInfo> Cpu = AArch64::parseCpu(params.CPUName);
-  EXPECT_TRUE(Cpu);
-  EXPECT_EQ(params.ExpectedArch, Cpu->Arch.Name);
-
-  EXPECT_PRED_FORMAT2(
-      AssertSameExtensionFlags<ARM::ISAKind::AARCH64>(params.CPUName),
-      params.ExpectedFlags, Cpu->getImpliedExtensions());
-}
-
-INSTANTIATE_TEST_SUITE_P(
-    AArch64CPUTests, AArch64CPUTestFixture,
-    ::testing::Values(
-        AArch64CPUTestParams("cortex-a34", "armv8-a",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_FP,
-                              AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("cortex-a35", "armv8-a",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_FP,
-                              AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("cortex-a53", "armv8-a",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_FP,
-                              AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams(
-            "cortex-a55", "armv8.2-a",
-            {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",
-                             {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",
-                             {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",
-                             {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",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_FP,
-                              AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams(
-            "cortex-a65", "armv8.2-a",
-            {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",
-            {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",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_FP,
-                              AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("cortex-a73", "armv8-a",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_FP,
-                              AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams(
-            "cortex-a75", "armv8.2-a",
-            {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",
-            {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",
-            {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",
-            {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",
-            {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",
-            {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",
-            {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",
-            {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",
-                             {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",
-                             {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",
-                             {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",
-                             {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",
-            {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",
-                             {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",
-                             {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,
-                              AArch64::AEK_RME}),
-        AArch64CPUTestParams("neoverse-v3ae", "armv9.2-a",
-                             {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,
-                              AArch64::AEK_RME}),
-        AArch64CPUTestParams(
-            "cortex-r82", "armv8-r",
-            {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",
-            {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",
-            {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",
-            {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",
-                             {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",
-                             {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",
-                             {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",
-                             {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",
-                             {AArch64::AEK_AES, AArch64::AEK_SHA2,
-                              AArch64::AEK_FP, AArch64::AEK_SIMD,
-                              AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("apple-a7", "armv8-a",
-                             {AArch64::AEK_AES, AArch64::AEK_SHA2,
-                              AArch64::AEK_FP, AArch64::AEK_SIMD,
-                              AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("apple-a8", "armv8-a",
-                             {AArch64::AEK_AES, AArch64::AEK_SHA2,
-                              AArch64::AEK_FP, AArch64::AEK_SIMD,
-                              AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("apple-a9", "armv8-a",
-                             {AArch64::AEK_AES, AArch64::AEK_SHA2,
-                              AArch64::AEK_FP, AArch64::AEK_SIMD,
-                              AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("apple-a10", "armv8-a",
-                             {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",
-                             {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",
-            {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",
-            {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",
-            {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",
-            {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",
-                             {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",
-                             {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",
-            {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_FPAC,    AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams(
-            "apple-m2", "armv8.6-a",
-            {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_FPAC,    AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams(
-            "apple-a16", "armv8.6-a",
-            {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_FPAC,    AArch64::AEK_PERFMON,
-             AArch64::AEK_HCX}),
-        AArch64CPUTestParams(
-            "apple-m3", "armv8.6-a",
-            {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_FPAC,    AArch64::AEK_PERFMON,
-             AArch64::AEK_HCX}),
-        AArch64CPUTestParams(
-            "apple-a17", "armv8.6-a",
-            {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_FPAC,    AArch64::AEK_PERFMON,
-             AArch64::AEK_HCX}),
-        AArch64CPUTestParams("apple-m4", "armv9.2-a",
-                             {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_PAUTH,     AArch64::AEK_FPAC,
-                              AArch64::AEK_FCMA,      AArch64::AEK_PERFMON,
-                              AArch64::AEK_SME,       AArch64::AEK_SME2,
-                              AArch64::AEK_SMEF64F64, AArch64::AEK_SMEI16I64}),
-        AArch64CPUTestParams("exynos-m3", "armv8-a",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_FP,
-                              AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams(
-            "exynos-m4", "armv8.2-a",
-            {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",
-            {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",
-                             {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",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_FP,
-                              AArch64::AEK_SIMD, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams(
-            "neoverse-e1", "armv8.2-a",
-            {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",
-            {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",
-                             {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",
-                             {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",
-            {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",
-            {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",
-            {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",
-            {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",
-                             {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",
-                             {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",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_SIMD,
-                              AArch64::AEK_FP, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("thunderxt81", "armv8-a",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_SIMD,
-                              AArch64::AEK_FP, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("thunderxt83", "armv8-a",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_SIMD,
-                              AArch64::AEK_FP, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams("thunderxt88", "armv8-a",
-                             {AArch64::AEK_CRC, AArch64::AEK_AES,
-                              AArch64::AEK_SHA2, AArch64::AEK_SIMD,
-                              AArch64::AEK_FP, AArch64::AEK_PERFMON}),
-        AArch64CPUTestParams(
-            "tsv110", "armv8.2-a",
-            {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",
-                             {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",
-                             {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(
-            "saphira", "armv8.4-a",
-            {AArch64::AEK_AES, AArch64::AEK_FP, AArch64::AEK_SIMD,
-             AArch64::AEK_PERFMON, AArch64::AEK_SHA2, AArch64::AEK_PROFILE,
-             AArch64::AEK_CRC, AArch64::AEK_LSE, AArch64::AEK_RDM,
-             AArch64::AEK_RAS, AArch64::AEK_RCPC}),
-        AArch64CPUTestParams(
-            "oryon-1", "armv8.6-a",
-            {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;



More information about the llvm-commits mailing list