diff options
Diffstat (limited to 'llvm/unittests/TargetParser/TargetParserTest.cpp')
| -rw-r--r-- | llvm/unittests/TargetParser/TargetParserTest.cpp | 467 |
1 files changed, 276 insertions, 191 deletions
diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp index b2e57f2cca13..553f5df7827e 100644 --- a/llvm/unittests/TargetParser/TargetParserTest.cpp +++ b/llvm/unittests/TargetParser/TargetParserTest.cpp @@ -1094,27 +1094,28 @@ INSTANTIATE_TEST_SUITE_P( "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_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_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_SIMD, AArch64::AEK_PERFMON}), "8-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "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::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", @@ -1129,7 +1130,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_MTE, AArch64::AEK_SSBS, AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_SB, AArch64::AEK_JSCVT, - AArch64::AEK_FCMA}), + AArch64::AEK_FCMA, AArch64::AEK_PERFMON}), "9-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a520", "armv9.2-a", "crypto-neon-fp-armv8", @@ -1145,7 +1146,8 @@ INSTANTIATE_TEST_SUITE_P( 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_JSCVT, AArch64::AEK_FCMA, + AArch64::AEK_PERFMON}), "9.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a520ae", "armv9.2-a", "crypto-neon-fp-armv8", @@ -1161,13 +1163,14 @@ INSTANTIATE_TEST_SUITE_P( 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_JSCVT, AArch64::AEK_FCMA, + AArch64::AEK_PERFMON}), "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_SIMD, AArch64::AEK_PERFMON}), "8-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a65", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1175,7 +1178,8 @@ INSTANTIATE_TEST_SUITE_P( {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_RDM, AArch64::AEK_SIMD, AArch64::AEK_SSBS, + AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a65ae", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1183,27 +1187,29 @@ INSTANTIATE_TEST_SUITE_P( {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_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_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_SIMD, AArch64::AEK_PERFMON}), "8-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "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::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-a76", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1211,7 +1217,8 @@ INSTANTIATE_TEST_SUITE_P( {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_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS, + AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a76ae", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1219,7 +1226,8 @@ INSTANTIATE_TEST_SUITE_P( {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_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS, + AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a77", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1227,7 +1235,8 @@ INSTANTIATE_TEST_SUITE_P( {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_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS, + AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a78", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1236,7 +1245,7 @@ INSTANTIATE_TEST_SUITE_P( 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_PROFILE, AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a78ae", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1245,7 +1254,7 @@ INSTANTIATE_TEST_SUITE_P( 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_PROFILE, AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a78c", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1255,7 +1264,7 @@ INSTANTIATE_TEST_SUITE_P( 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_PAUTH, AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a710", "armv9-a", "neon-fp-armv8", @@ -1270,7 +1279,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_PAUTH, AArch64::AEK_FLAGM, AArch64::AEK_SB, AArch64::AEK_I8MM, AArch64::AEK_BF16, AArch64::AEK_JSCVT, - AArch64::AEK_FCMA}), + AArch64::AEK_FCMA, AArch64::AEK_PERFMON}), "9-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a715", "armv9-a", "neon-fp-armv8", @@ -1287,7 +1296,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_PREDRES, AArch64::AEK_PROFILE, AArch64::AEK_FP16FML, AArch64::AEK_FP16, AArch64::AEK_FLAGM, AArch64::AEK_JSCVT, - AArch64::AEK_FCMA}), + AArch64::AEK_FCMA, AArch64::AEK_PERFMON}), "9-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a720", "armv9.2-a", "crypto-neon-fp-armv8", @@ -1304,7 +1313,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM, AArch64::AEK_PERFMON, AArch64::AEK_PREDRES, AArch64::AEK_PROFILE, AArch64::AEK_JSCVT, - AArch64::AEK_FCMA}), + AArch64::AEK_FCMA, AArch64::AEK_PERFMON}), "9.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-a720ae", "armv9.2-a", "crypto-neon-fp-armv8", @@ -1321,20 +1330,41 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM, AArch64::AEK_PERFMON, AArch64::AEK_PREDRES, AArch64::AEK_PROFILE, AArch64::AEK_JSCVT, + AArch64::AEK_FCMA, AArch64::AEK_PERFMON}), + "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}), "9.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "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_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}), "8.4-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "neoverse-v2", "armv9-a", "neon-fp-armv8", @@ -1350,7 +1380,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_FP16FML, AArch64::AEK_I8MM, AArch64::AEK_SVE2BITPERM, AArch64::AEK_RAND, AArch64::AEK_JSCVT, AArch64::AEK_FCMA, - AArch64::AEK_PAUTH}), + AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}), "9-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "neoverse-v3", "armv9.2-a", "neon-fp-armv8", @@ -1369,7 +1399,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_PERFMON, AArch64::AEK_RAND, AArch64::AEK_SVE2BITPERM, AArch64::AEK_FP16FML, AArch64::AEK_PROFILE, AArch64::AEK_JSCVT, - AArch64::AEK_FCMA}), + AArch64::AEK_FCMA, AArch64::AEK_PERFMON}), "9.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "neoverse-v3ae", "armv9.2-a", "neon-fp-armv8", @@ -1388,7 +1418,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_PERFMON, AArch64::AEK_RAND, AArch64::AEK_SVE2BITPERM, AArch64::AEK_FP16FML, AArch64::AEK_PROFILE, AArch64::AEK_JSCVT, - AArch64::AEK_FCMA}), + AArch64::AEK_FCMA, AArch64::AEK_PERFMON}), "9.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-r82", "armv8-r", "crypto-neon-fp-armv8", @@ -1419,7 +1449,7 @@ INSTANTIATE_TEST_SUITE_P( 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_PROFILE, AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-x1c", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1428,7 +1458,8 @@ INSTANTIATE_TEST_SUITE_P( 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_PAUTH, AArch64::AEK_PROFILE, AArch64::AEK_FLAGM, + AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-x2", "armv9-a", "neon-fp-armv8", @@ -1443,7 +1474,8 @@ INSTANTIATE_TEST_SUITE_P( 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_JSCVT, AArch64::AEK_FCMA, + AArch64::AEK_PERFMON}), "9-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-x3", "armv9-a", "neon-fp-armv8", @@ -1460,7 +1492,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_FP16, AArch64::AEK_FP16FML, AArch64::AEK_PREDRES, AArch64::AEK_FLAGM, AArch64::AEK_SSBS, AArch64::AEK_JSCVT, - AArch64::AEK_FCMA}), + AArch64::AEK_FCMA, AArch64::AEK_PERFMON}), "9-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cortex-x4", "armv9.2-a", "crypto-neon-fp-armv8", @@ -1477,44 +1509,63 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_SVE2BITPERM, AArch64::AEK_FLAGM, AArch64::AEK_PERFMON, AArch64::AEK_PREDRES, AArch64::AEK_PROFILE, AArch64::AEK_JSCVT, + AArch64::AEK_FCMA, AArch64::AEK_PERFMON}), + "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}), "9.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "cyclone", "armv8-a", "crypto-neon-fp-armv8", - AArch64::ExtensionBitset({AArch64::AEK_NONE, AArch64::AEK_AES, - AArch64::AEK_SHA2, AArch64::AEK_FP, - AArch64::AEK_SIMD}), + 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_NONE, AArch64::AEK_AES, - AArch64::AEK_SHA2, AArch64::AEK_FP, - AArch64::AEK_SIMD}), + 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_NONE, AArch64::AEK_AES, - AArch64::AEK_SHA2, AArch64::AEK_FP, - AArch64::AEK_SIMD}), + 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_NONE, AArch64::AEK_AES, - AArch64::AEK_SHA2, AArch64::AEK_FP, - AArch64::AEK_SIMD}), + 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_RDM, AArch64::AEK_SIMD, + AArch64::AEK_PERFMON}), "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::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>( "apple-a12", "armv8.3-a", "crypto-neon-fp-armv8", @@ -1523,144 +1574,171 @@ INSTANTIATE_TEST_SUITE_P( 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_PAUTH, AArch64::AEK_PERFMON}), "8.3-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( - "apple-a13", "armv8.4-a", "crypto-neon-fp-armv8", + "apple-s4", "armv8.3-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}), - "8.4-A"), + 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>( - "apple-a14", "armv8.5-a", "crypto-neon-fp-armv8", + "apple-s5", "armv8.3-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}), - "8.5-A"), + 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>( - "apple-a15", "armv8.6-a", "crypto-neon-fp-armv8", + "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_BF16, - AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA, - AArch64::AEK_PAUTH}), - "8.6-A"), + 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-a16", "armv8.6-a", "crypto-neon-fp-armv8", + "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_BF16, - AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA, - AArch64::AEK_PAUTH}), - "8.6-A"), + {AArch64::AEK_CRC, AArch64::AEK_AES, + AArch64::AEK_SHA2, AArch64::AEK_SHA3, + AArch64::AEK_FP, AArch64::AEK_SIMD, + AArch64::AEK_LSE, AArch64::AEK_RAS, + AArch64::AEK_RDM, AArch64::AEK_RCPC, + AArch64::AEK_DOTPROD, AArch64::AEK_FP16, + AArch64::AEK_FP16FML, AArch64::AEK_SHA3, + AArch64::AEK_JSCVT, AArch64::AEK_FCMA, + AArch64::AEK_PAUTH, AArch64::AEK_PERFMON, + AArch64::AEK_PREDRES, AArch64::AEK_SB, + AArch64::AEK_SSBS}), + "8.4-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( - "apple-a17", "armv8.6-a", "crypto-neon-fp-armv8", + "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_BF16, - AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA, - AArch64::AEK_PAUTH}), + {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}), "8.6-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( - "apple-m1", "armv8.5-a", "crypto-neon-fp-armv8", + "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_JSCVT, - AArch64::AEK_FCMA, AArch64::AEK_PAUTH}), - "8.5-A"), + {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2, + AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD, + AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM, + AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16, + AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16, + AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA, + AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}), + "8.6-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "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_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>( + "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}), + "8.4-A"), + ARMCPUTestParams<AArch64::ExtensionBitset>( "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_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>( - "apple-s4", "armv8.3-a", "crypto-neon-fp-armv8", + "apple-a17", "armv8.6-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}), - "8.3-A"), + {AArch64::AEK_CRC, AArch64::AEK_AES, AArch64::AEK_SHA2, + AArch64::AEK_SHA3, AArch64::AEK_FP, AArch64::AEK_SIMD, + AArch64::AEK_LSE, AArch64::AEK_RAS, AArch64::AEK_RDM, + AArch64::AEK_RCPC, AArch64::AEK_DOTPROD, AArch64::AEK_FP16, + AArch64::AEK_FP16FML, AArch64::AEK_SHA3, AArch64::AEK_BF16, + AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA, + AArch64::AEK_PAUTH, AArch64::AEK_PERFMON}), + "8.6-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( - "apple-s5", "armv8.3-a", "crypto-neon-fp-armv8", + "apple-m4", "armv8.7-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_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_SIMD, AArch64::AEK_PERFMON}), "8-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "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::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>( "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::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_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_SIMD, AArch64::AEK_PERFMON}), "8-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "neoverse-e1", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1668,7 +1746,8 @@ INSTANTIATE_TEST_SUITE_P( {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_RDM, AArch64::AEK_SIMD, AArch64::AEK_SSBS, + AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "neoverse-n1", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1677,7 +1756,7 @@ INSTANTIATE_TEST_SUITE_P( 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_SSBS, AArch64::AEK_PERFMON}), "8.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "neoverse-n2", "armv9-a", "crypto-neon-fp-armv8", @@ -1692,7 +1771,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_SVE2BITPERM, AArch64::AEK_BF16, AArch64::AEK_I8MM, AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_PAUTH, - AArch64::AEK_FP16FML}), + AArch64::AEK_FP16FML, AArch64::AEK_PERFMON}), "9-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "neoverse-n3", "armv9.2-a", "neon-fp-armv8", @@ -1710,30 +1789,30 @@ INSTANTIATE_TEST_SUITE_P( AArch64::AEK_FLAGM, AArch64::AEK_PERFMON, AArch64::AEK_RAND, AArch64::AEK_SVE2BITPERM, AArch64::AEK_FP16FML, AArch64::AEK_PROFILE, - AArch64::AEK_JSCVT}), + AArch64::AEK_JSCVT, AArch64::AEK_PERFMON}), "9.2-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "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_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>( "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_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>( "ampere1b", "armv8.7-a", "crypto-neon-fp-armv8", @@ -1745,20 +1824,24 @@ INSTANTIATE_TEST_SUITE_P( 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_PAUTH, AArch64::AEK_CSSC, AArch64::AEK_PERFMON}), "8.7-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "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_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}), "8.4-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "thunderx2t99", "armv8.1-a", "crypto-neon-fp-armv8", @@ -1773,31 +1856,32 @@ INSTANTIATE_TEST_SUITE_P( {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_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_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_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_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_FP, AArch64::AEK_PERFMON}), "8-A"), ARMCPUTestParams<AArch64::ExtensionBitset>( "tsv110", "armv8.2-a", "crypto-neon-fp-armv8", @@ -1806,15 +1890,16 @@ INSTANTIATE_TEST_SUITE_P( 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_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::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", @@ -1832,13 +1917,13 @@ INSTANTIATE_TEST_SUITE_P( 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_CRYPTO})), + AArch64::AEK_PROFILE, AArch64::AEK_PERFMON})), "8.6-A")), ARMCPUTestParams<AArch64::ExtensionBitset>::PrintToStringParamName); // Note: number of CPUs includes aliases. -static constexpr unsigned NumAArch64CPUArchs = 77; +static constexpr unsigned NumAArch64CPUArchs = 81; TEST(TargetParserTest, testAArch64CPUArchList) { SmallVector<StringRef, NumAArch64CPUArchs> List; @@ -2388,7 +2473,7 @@ AArch64ExtensionDependenciesBaseArchTestParams {}, {"v8.1a", "crc", "fp-armv8", "lse", "rdm", "neon"}, {}}, - {AArch64::ARMV9_5A, {}, {"v9.5a", "sve", "sve2", "mops", "cpa"}, {}}, + {AArch64::ARMV9_5A, {}, {"v9.5a", "mops", "cpa"}, {}}, // Positive modifiers {AArch64::ARMV8A, {"fp16"}, {"fullfp16"}, {}}, |
