diff --git a/llvm/include/llvm/TargetParser/AArch64TargetParser.h b/llvm/include/llvm/TargetParser/AArch64TargetParser.h --- a/llvm/include/llvm/TargetParser/AArch64TargetParser.h +++ b/llvm/include/llvm/TargetParser/AArch64TargetParser.h @@ -486,7 +486,8 @@ {"carmel", ARMV8_2A, (AArch64::AEK_CRYPTO | AArch64::AEK_FP16)}, {"ampere1", ARMV8_6A, (AArch64::AEK_AES | AArch64::AEK_SHA2 | AArch64::AEK_SHA3 | - AArch64::AEK_FP16 | AArch64::AEK_SB | AArch64::AEK_SSBS)}, + AArch64::AEK_FP16 | AArch64::AEK_SB | AArch64::AEK_SSBS | + AArch64::AEK_RAND)}, // Invalid CPU {"invalid", INVALID, (AArch64::AEK_INVALID)}, }; 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 @@ -1294,7 +1294,8 @@ FeatureNEON, FeaturePerfMon, FeatureSPE, FeatureFullFP16, FeatureFP16FML, FeatureDotProd]; list Ampere1 = [HasV8_6aOps, FeatureNEON, FeaturePerfMon, - FeatureMTE, FeatureSSBS]; + FeatureSSBS, FeatureRandGen, FeatureSB, + FeatureSHA2, FeatureSHA3, FeatureAES]; // ETE and TRBE are future architecture extensions. We temporarily enable them // by default for users targeting generic AArch64. The extensions do not diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp --- a/llvm/unittests/TargetParser/TargetParserTest.cpp +++ b/llvm/unittests/TargetParser/TargetParserTest.cpp @@ -1339,7 +1339,7 @@ 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_SB | AArch64::AEK_RAND, "8.6-A"), ARMCPUTestParams( "neoverse-512tvb", "armv8.4-a", "crypto-neon-fp-armv8",