[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