diff --git a/llvm/include/llvm/Support/AArch64TargetParser.def b/llvm/include/llvm/Support/AArch64TargetParser.def --- a/llvm/include/llvm/Support/AArch64TargetParser.def +++ b/llvm/include/llvm/Support/AArch64TargetParser.def @@ -144,11 +144,10 @@ (AArch64::AEK_CRC)) AARCH64_CPU_NAME("cortex-a55", ARMV8_2A, FK_CRYPTO_NEON_FP_ARMV8, false, (AArch64::AEK_FP16 | AArch64::AEK_DOTPROD | AArch64::AEK_RCPC)) -AARCH64_CPU_NAME("cortex=a510", ARMV9A,FK_CRYPTO_NEON_FP_ARMV8, false, - (AArch64::AEK_CRC | AArch64::AEK_FP | AArch64::AEK_SIMD | - AArch64::AEK_RAS | AArch64::AEK_I8MM | AArch64::AEK_BF16 | - AArch64::AEK_SVE2 | AArch64::AEK_SVE | AArch64::AEK_SVE2BITPERM | - AArch64::AEK_SSBS | AArch64::AEK_BT | AArch64::AEK_MTE)) +AARCH64_CPU_NAME("cortex-a510", ARMV9A, FK_NEON_FP_ARMV8, false, + (AArch64::AEK_BF16 | AArch64::AEK_I8MM | AArch64::AEK_SVE2BITPERM | + AArch64::AEK_PAUTH | AArch64::AEK_PAUTH | AArch64::AEK_MTE | + AArch64::AEK_SSBS | AArch64::AEK_SB | AArch64::AEK_FP16FML)) AARCH64_CPU_NAME("cortex-a57", ARMV8A, FK_CRYPTO_NEON_FP_ARMV8, false, (AArch64::AEK_CRC)) AARCH64_CPU_NAME("cortex-a65", ARMV8_2A, FK_CRYPTO_NEON_FP_ARMV8, false, diff --git a/llvm/lib/Target/AArch64/AArch64.td b/llvm/lib/Target/AArch64/AArch64.td --- a/llvm/lib/Target/AArch64/AArch64.td +++ b/llvm/lib/Target/AArch64/AArch64.td @@ -632,23 +632,18 @@ def ProcA510 : SubtargetFeature<"a510", "ARMProcFamily", "CortexA510", "Cortex-A510 ARM processors", [ - HasV9aOps, - FeatureCrypto, - FeatureFPARMv8, - FeatureFuseAES, - FeatureNEON, - FeaturePerfMon, - FeaturePostRAScheduler, - FeatureSPE, - FeatureAM, - FeatureMPAM, - FeatureETE, - FeatureMTE, - FeatureSVE2, - FeatureSVE2BitPerm, - FeatureFullFP16, - FeatureFP16FML, - FeatureDotProd + HasV9_0aOps, + FeatureNEON, + FeaturePerfMon, + FeatureMatMulInt8, + FeatureBF16, + FeatureAM, + FeatureMTE, + FeatureETE, + FeatureSVE2BitPerm, + FeatureFP16FML, + FeatureFuseAES, + FeaturePostRAScheduler ]>; def ProcA57 : SubtargetFeature<"a57", "ARMProcFamily", "CortexA57", diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp --- a/llvm/unittests/Support/TargetParserTest.cpp +++ b/llvm/unittests/Support/TargetParserTest.cpp @@ -898,14 +898,16 @@ AArch64::AEK_RDM | AArch64::AEK_FP16 | AArch64::AEK_DOTPROD | AArch64::AEK_RCPC, "8.2-A"), - ARMCPUTestParams("cortex-a510", "armv9-a", "crypto-neon-fp-armv8", + ARMCPUTestParams("cortex-a510", "armv9-a", "neon-fp-armv8", AArch64::AEK_CRC | AArch64::AEK_FP | AArch64::AEK_SIMD | AArch64::AEK_RAS | - AArch64::AEK_I8MM | AArch64::AEK_BF16 | - AArch64::AEK_SVE2 | AArch64::AEK_SVE | - AArch64::AEK_SVE2BITPERM | AArch64::AEK_SSBS | - AArch64::AEK_BT | AArch64::AEK_MTE | - AArch64::AEK_DOTPROD, + AArch64::AEK_LSE | AArch64::AEK_RDM | + AArch64::AEK_RCPC | AArch64::AEK_DOTPROD | + AArch64::AEK_SVE2 | AArch64::AEK_BF16 | + AArch64::AEK_I8MM | AArch64::AEK_SVE2BITPERM | + AArch64::AEK_PAUTH | AArch64::AEK_MTE | + AArch64::AEK_SSBS | AArch64::AEK_FP16FML | + AArch64::AEK_SB, "9-A"), ARMCPUTestParams("cortex-a57", "armv8-a", "crypto-neon-fp-armv8", AArch64::AEK_CRC | AArch64::AEK_CRYPTO |