[clang] [llvm] [llvm][AArch64] apple-m4 is armv9.2-a (PR #98267)

Jon Roelofs via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 10 11:15:40 PDT 2024


https://github.com/jroelofs updated https://github.com/llvm/llvm-project/pull/98267

>From 2ca4c255338f1c41a2cad929604c70febf6c7eaf Mon Sep 17 00:00:00 2001
From: Jon Roelofs <jonathan_roelofs at apple.com>
Date: Tue, 9 Jul 2024 19:47:27 -0700
Subject: [PATCH 1/5] [llvm][AArch64] apple-m4 is armv9.2-a

But since SVE and friends have been added to the default extensions list, and
every CPU was opted into those extensions by default, we couldn't correctly
announce its architecutral version to the backend.  Additionally, we remove
FEAT_MEC from llvm's "required" list for v9.2, as the spec considers it
optional, and M4 does not implement it.

As a drive-by, I noticed that saphira did not have an AArch64CPUTestParams
entry, and thus added one.
---
 .../llvm/TargetParser/AArch64TargetParser.h   |   8 +-
 llvm/lib/Target/AArch64/AArch64Features.td    |   2 +-
 llvm/lib/Target/AArch64/AArch64Processors.td  | 196 +++++++++++++-----
 .../TargetParser/TargetParserTest.cpp         |  28 ++-
 4 files changed, 160 insertions(+), 74 deletions(-)

diff --git a/llvm/include/llvm/TargetParser/AArch64TargetParser.h b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
index 13091748e091c..2169e9c94b61f 100644
--- a/llvm/include/llvm/TargetParser/AArch64TargetParser.h
+++ b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
@@ -161,14 +161,10 @@ struct CpuInfo {
   StringRef Name; // Name, as written for -mcpu.
   const ArchInfo &Arch;
   AArch64::ExtensionBitset
-      DefaultExtensions; // Default extensions for this CPU. These will be
-                         // ORd with the architecture defaults.
+      DefaultExtensions; // Default extensions for this CPU.
 
   AArch64::ExtensionBitset getImpliedExtensions() const {
-    AArch64::ExtensionBitset ImpliedExts;
-    ImpliedExts |= DefaultExtensions;
-    ImpliedExts |= Arch.DefaultExts;
-    return ImpliedExts;
+    return DefaultExtensions;
   }
 };
 
diff --git a/llvm/lib/Target/AArch64/AArch64Features.td b/llvm/lib/Target/AArch64/AArch64Features.td
index 8754ea4974999..fac75d56bde4f 100644
--- a/llvm/lib/Target/AArch64/AArch64Features.td
+++ b/llvm/lib/Target/AArch64/AArch64Features.td
@@ -797,7 +797,7 @@ def HasV8_9aOps : Architecture64<8, 9, "a", "v8.9a",
   !listconcat(HasV8_8aOps.DefaultExts, [FeatureSPECRES2, FeatureCSSC,
     FeatureRASv2])>;
 def HasV9_0aOps : Architecture64<9, 0, "a", "v9a",
-  [HasV8_5aOps, FeatureMEC],
+  [HasV8_5aOps],
   !listconcat(HasV8_5aOps.DefaultExts, [FeatureFullFP16, FeatureSVE,
     FeatureSVE2])>;
 def HasV9_1aOps : Architecture64<9, 1, "a", "v9.1a",
diff --git a/llvm/lib/Target/AArch64/AArch64Processors.td b/llvm/lib/Target/AArch64/AArch64Processors.td
index 5859d5cd91236..531d6636cce4a 100644
--- a/llvm/lib/Target/AArch64/AArch64Processors.td
+++ b/llvm/lib/Target/AArch64/AArch64Processors.td
@@ -681,247 +681,331 @@ def ProcessorFeatures {
                                  FeatureFPARMv8, FeatureNEON, FeaturePerfMon];
   list<SubtargetFeature> A55  = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                  FeatureNEON, FeatureFullFP16, FeatureDotProd,
-                                 FeatureRCPC, FeaturePerfMon];
+                                 FeatureRCPC, FeaturePerfMon, FeatureCRC,
+                                 FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> A510 = [HasV9_0aOps, FeatureNEON, FeaturePerfMon,
                                  FeatureMatMulInt8, FeatureBF16, FeatureAM,
                                  FeatureMTE, FeatureETE, FeatureSVE2BitPerm,
                                  FeatureFP16FML,
-                                 FeatureSB, FeaturePAuth, FeatureSSBS, FeatureSVE, FeatureSVE2];
+                                 FeatureSB, FeaturePAuth, FeatureSSBS, FeatureSVE, FeatureSVE2,
+                                 FeatureComplxNum, FeatureCRC, FeatureDotProd,
+                                 FeatureFPARMv8,FeatureFullFP16, FeatureJS, FeatureLSE,
+                                 FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> A520 = [HasV9_2aOps, FeaturePerfMon, FeatureAM,
                                  FeatureMTE, FeatureETE, FeatureSVE2BitPerm,
                                  FeatureFP16FML,
                                  FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes,
-                                 FeatureSVE, FeatureSVE2];
+                                 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                 FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, FeatureJS,
+                                 FeatureNEON, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM,
+                                 FeatureDotProd];
   list<SubtargetFeature> A520AE = [HasV9_2aOps, FeaturePerfMon, FeatureAM,
                                  FeatureMTE, FeatureETE, FeatureSVE2BitPerm,
                                  FeatureFP16FML,
                                  FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes,
-                                 FeatureSVE, FeatureSVE2];
+                                 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                 FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, FeatureJS,
+                                 FeatureNEON, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM,
+                                 FeatureDotProd];
   list<SubtargetFeature> A65  = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                  FeatureNEON, FeatureFullFP16, FeatureDotProd,
                                  FeatureRCPC, FeatureSSBS, FeatureRAS,
-                                 FeaturePerfMon];
+                                 FeaturePerfMon, FeatureCRC, FeatureLSE, FeatureRDM];
   list<SubtargetFeature> A76  = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                  FeatureNEON, FeatureFullFP16, FeatureDotProd,
-                                 FeatureRCPC, FeatureSSBS, FeaturePerfMon];
+                                 FeatureRCPC, FeatureSSBS, FeaturePerfMon,
+                                 FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> A77  = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                  FeatureNEON, FeatureFullFP16, FeatureDotProd,
-                                 FeatureRCPC, FeaturePerfMon, FeatureSSBS];
+                                 FeatureRCPC, FeaturePerfMon, FeatureSSBS,
+                                 FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> A78  = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                  FeatureNEON, FeatureFullFP16, FeatureDotProd,
                                  FeatureRCPC, FeaturePerfMon, FeatureSPE,
-                                 FeatureSSBS];
+                                 FeatureSSBS, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> A78AE = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                   FeatureNEON, FeatureFullFP16, FeatureDotProd,
                                   FeatureRCPC, FeaturePerfMon, FeatureSPE,
-                                  FeatureSSBS];
+                                  FeatureSSBS, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> A78C = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                  FeatureNEON, FeatureFullFP16, FeatureDotProd,
                                  FeatureFlagM, FeaturePAuth,
                                  FeaturePerfMon, FeatureRCPC, FeatureSPE,
-                                 FeatureSSBS];
+                                 FeatureSSBS, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> A710 = [HasV9_0aOps, FeatureNEON, FeaturePerfMon,
                                  FeatureETE, FeatureMTE, FeatureFP16FML,
                                  FeatureSVE2BitPerm, FeatureBF16, FeatureMatMulInt8,
-                                 FeaturePAuth, FeatureFlagM, FeatureSB, FeatureSVE, FeatureSVE2];
+                                 FeaturePAuth, FeatureFlagM, FeatureSB, FeatureSVE, FeatureSVE2,
+                                 FeatureComplxNum, FeatureCRC, FeatureDotProd, FeatureFPARMv8,
+                                 FeatureFullFP16, FeatureJS, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> A715 = [HasV9_0aOps, FeatureNEON, FeatureMTE,
                                  FeatureFP16FML, FeatureSVE, FeatureTRBE,
                                  FeatureSVE2BitPerm, FeatureBF16, FeatureETE,
                                  FeaturePerfMon, FeatureMatMulInt8, FeatureSPE,
                                  FeatureSB, FeatureSSBS, FeatureFullFP16, FeaturePAuth, FeaturePredRes, FeatureFlagM,
-                                 FeatureSVE2];
+                                 FeatureSVE2, FeatureComplxNum, FeatureCRC,
+                                 FeatureDotProd, FeatureFPARMv8,
+                                 FeatureJS, FeatureLSE, FeatureRAS,
+                                 FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> A720 = [HasV9_2aOps, FeatureMTE, FeatureFP16FML,
                                  FeatureTRBE, FeatureSVE2BitPerm, FeatureETE,
                                  FeaturePerfMon, FeatureSPE, FeatureSPE_EEF,
                                  FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes,
-                                 FeatureSVE, FeatureSVE2];
+                                 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
+                                 FeatureJS, FeatureLSE, FeatureNEON, FeatureRAS,
+                                 FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> A720AE = [HasV9_2aOps, FeatureMTE, FeatureFP16FML,
                                  FeatureTRBE, FeatureSVE2BitPerm, FeatureETE,
                                  FeaturePerfMon, FeatureSPE, FeatureSPE_EEF,
                                  FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes,
-                                 FeatureSVE, FeatureSVE2];
+                                 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
+                                 FeatureJS, FeatureLSE, FeatureNEON, FeatureRAS,
+                                 FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> A725 = [HasV9_2aOps, FeatureMTE, FeatureFP16FML,
                                  FeatureETE, FeaturePerfMon, FeatureSPE,
                                  FeatureSVE2BitPerm, FeatureSPE_EEF, FeatureTRBE,
                                  FeatureFlagM, FeaturePredRes, FeatureSB, FeatureSSBS,
-                                 FeatureSVE, FeatureSVE2];
+                                 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
+                                 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS,
+                                 FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> R82  = [HasV8_0rOps, FeaturePerfMon, FeatureFullFP16,
                                  FeatureFP16FML, FeatureSSBS, FeaturePredRes,
                                  FeatureSB, FeatureRDM, FeatureDotProd,
                                  FeatureComplxNum, FeatureJS,
                                  FeatureCacheDeepPersist,
-                                 FeatureLSE, FeatureFlagM];
+                                 FeatureFlagM, FeatureCRC, FeatureLSE, FeatureRAS, FeatureFPARMv8,
+                                 FeatureNEON, FeaturePAuth, FeatureRCPC];
   list<SubtargetFeature> R82AE = [HasV8_0rOps, FeaturePerfMon, FeatureFullFP16,
                                   FeatureFP16FML, FeatureSSBS, FeaturePredRes,
                                   FeatureSB, FeatureRDM, FeatureDotProd,
                                   FeatureComplxNum, FeatureJS,
                                   FeatureCacheDeepPersist,
-                                  FeatureLSE, FeatureFlagM];
+                                  FeatureLSE, FeatureFlagM, FeatureCRC, FeatureFPARMv8, FeatureNEON,
+                                  FeaturePAuth, FeatureRAS, FeatureRCPC];
   list<SubtargetFeature> X1   = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                  FeatureNEON, FeatureRCPC, FeaturePerfMon,
                                  FeatureSPE, FeatureFullFP16, FeatureDotProd,
-                                 FeatureSSBS];
+                                 FeatureSSBS, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> X1C  = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                  FeatureNEON, FeatureRCPC_IMMO, FeaturePerfMon,
                                  FeatureSPE, FeatureFullFP16, FeatureDotProd,
                                  FeaturePAuth, FeatureSSBS, FeatureFlagM,
                                  FeatureLSE2,
-                                 FeatureRCPC];
+                                 FeatureRCPC, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> X2   = [HasV9_0aOps, FeatureNEON, FeaturePerfMon,
                                  FeatureMatMulInt8, FeatureBF16, FeatureAM,
                                  FeatureMTE, FeatureETE, FeatureSVE2BitPerm,
                                  FeatureFP16FML,
-                                 FeaturePAuth, FeatureSSBS, FeatureSB, FeatureSVE, FeatureSVE2, FeatureFlagM];
+                                 FeaturePAuth, FeatureSSBS, FeatureSB, FeatureSVE, FeatureSVE2, FeatureFlagM,
+                                 FeatureComplxNum, FeatureCRC, FeatureDotProd, FeatureFPARMv8, FeatureFullFP16,
+                                 FeatureJS, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> X3 =   [HasV9_0aOps, FeatureSVE, FeatureNEON,
                                  FeaturePerfMon, FeatureETE, FeatureTRBE,
                                  FeatureSPE, FeatureBF16, FeatureMatMulInt8,
                                  FeatureMTE, FeatureSVE2BitPerm, FeatureFullFP16,
                                  FeatureFP16FML,
                                  FeatureSB, FeaturePAuth, FeaturePredRes, FeatureFlagM, FeatureSSBS,
-                                 FeatureSVE2];
+                                 FeatureSVE2, FeatureComplxNum, FeatureCRC, FeatureFPARMv8, FeatureJS,
+                                 FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM, FeatureDotProd];
   list<SubtargetFeature> X4 =   [HasV9_2aOps,
                                  FeaturePerfMon, FeatureETE, FeatureTRBE,
                                  FeatureSPE, FeatureMTE, FeatureSVE2BitPerm,
                                  FeatureFP16FML, FeatureSPE_EEF,
                                  FeatureSB, FeatureSSBS, FeaturePAuth, FeatureFlagM, FeaturePredRes,
-                                 FeatureSVE, FeatureSVE2];
+                                 FeatureSVE, FeatureSVE2, FeatureComplxNum, FeatureCRC, FeatureDotProd,
+                                 FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8, FeatureJS, FeatureLSE,
+                                 FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM, FeatureBF16];
   list<SubtargetFeature> X925 = [HasV9_2aOps, FeatureMTE, FeatureFP16FML,
                                  FeatureETE, FeaturePerfMon, FeatureSPE,
                                  FeatureSVE2BitPerm, FeatureSPE_EEF, FeatureTRBE,
                                  FeatureFlagM, FeaturePredRes, FeatureSB, FeatureSSBS,
-                                 FeatureSVE, FeatureSVE2];
+                                 FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                 FeatureDotProd, FeatureFPARMv8, FeatureFullFP16, FeatureMatMulInt8,
+                                 FeatureJS, FeatureLSE, FeatureNEON, FeaturePAuth, FeatureRAS,
+                                 FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> A64FX    = [HasV8_2aOps, FeatureFPARMv8, FeatureNEON,
                                      FeatureSHA2, FeaturePerfMon, FeatureFullFP16,
                                      FeatureSVE, FeatureComplxNum,
-                                     FeatureAES];
+                                     FeatureAES, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> Carmel   = [HasV8_2aOps, FeatureNEON, FeatureSHA2, FeatureAES,
-                                     FeatureFullFP16];
+                                     FeatureFullFP16, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM,
+                                     FeatureFPARMv8];
   list<SubtargetFeature> AppleA7  = [HasV8_0aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                      FeatureNEON,FeaturePerfMon, FeatureAppleA7SysReg];
   list<SubtargetFeature> AppleA10 = [HasV8_0aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                      FeatureNEON, FeaturePerfMon, FeatureCRC,
                                      FeatureRDM, FeaturePAN, FeatureLOR, FeatureVH];
   list<SubtargetFeature> AppleA11 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
-                                     FeatureNEON, FeaturePerfMon, FeatureFullFP16];
+                                     FeatureNEON, FeaturePerfMon, FeatureFullFP16, FeatureCRC,
+                                     FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> AppleA12 = [HasV8_3aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
-                                     FeatureNEON, FeaturePerfMon, FeatureFullFP16];
+                                     FeatureNEON, FeaturePerfMon, FeatureFullFP16,
+                                     FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE,
+                                     FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> AppleA13 = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                      FeatureNEON, FeaturePerfMon, FeatureFullFP16,
-                                     FeatureFP16FML, FeatureSHA3];
+                                     FeatureFP16FML, FeatureSHA3, FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE,
+                                     FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM, FeatureDotProd];
   list<SubtargetFeature> AppleA14 = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                      FeatureNEON, FeaturePerfMon,
                                      FeatureFullFP16, FeatureFP16FML, FeatureSHA3,
                                      // ArmV8.5-a extensions, excluding BTI:
                                      FeatureAltFPCmp, FeatureFRInt3264,
                                      FeatureSpecRestrict, FeatureSSBS, FeatureSB,
-                                     FeaturePredRes, FeatureCacheDeepPersist];
+                                     FeaturePredRes, FeatureCacheDeepPersist,
+                                     FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE,
+                                     FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM,
+                                     FeatureDotProd];
   list<SubtargetFeature> AppleA15 = [HasV8_6aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                      FeatureNEON, FeaturePerfMon, FeatureSHA3,
-                                     FeatureFullFP16, FeatureFP16FML];
+                                     FeatureFullFP16, FeatureFP16FML,
+                                     FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE,
+                                     FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM,
+                                     FeatureBF16, FeatureDotProd, FeatureMatMulInt8];
   list<SubtargetFeature> AppleA16 = [HasV8_6aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                      FeatureNEON, FeaturePerfMon, FeatureSHA3,
                                      FeatureFullFP16, FeatureFP16FML,
-                                     FeatureHCX];
+                                     FeatureHCX,
+                                     FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE,
+                                     FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM,
+                                     FeatureBF16, FeatureDotProd, FeatureMatMulInt8];
   list<SubtargetFeature> AppleA17 = [HasV8_6aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                      FeatureNEON, FeaturePerfMon, FeatureSHA3,
                                      FeatureFullFP16, FeatureFP16FML,
-                                     FeatureHCX];
-  // Technically apple-m4 is ARMv9.2a, but a quirk of LLVM defines v9.0 as
-  // requiring SVE, which is optional according to the Arm ARM and not
-  // supported by the core. ARMv8.7a is the next closest choice.
-  list<SubtargetFeature> AppleM4 = [HasV8_7aOps, FeatureSHA2, FeatureFPARMv8,
+                                     FeatureHCX,
+                                     FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE,
+                                     FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM,
+                                     FeatureBF16, FeatureDotProd, FeatureMatMulInt8];
+  list<SubtargetFeature> AppleM4 = [HasV9_2aOps, FeatureSHA2, FeatureFPARMv8,
                                     FeatureNEON, FeaturePerfMon, FeatureSHA3,
                                     FeatureFullFP16, FeatureFP16FML,
                                     FeatureAES, FeatureBF16,
                                     FeatureSME, FeatureSME2,
-                                    FeatureSMEF64F64, FeatureSMEI16I64];
+                                    FeatureSMEF64F64, FeatureSMEI16I64,
+                                    FeatureComplxNum, FeatureCRC, FeatureJS, FeatureLSE,
+                                    FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM,
+                                    FeatureDotProd, FeatureMatMulInt8];
   list<SubtargetFeature> ExynosM3 = [HasV8_0aOps, FeatureCRC, FeatureSHA2, FeatureAES,
-                                     FeaturePerfMon];
+                                     FeaturePerfMon, FeatureNEON, FeatureFPARMv8];
   list<SubtargetFeature> ExynosM4 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureDotProd,
-                                     FeatureFullFP16, FeaturePerfMon];
+                                     FeatureFullFP16, FeaturePerfMon, FeatureCRC, FeatureFPARMv8,
+                                     FeatureLSE, FeatureNEON, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> Falkor   = [HasV8_0aOps, FeatureCRC, FeatureSHA2, FeatureAES,
                                      FeatureFPARMv8, FeatureNEON, FeaturePerfMon,
                                      FeatureRDM];
   list<SubtargetFeature> NeoverseE1 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureDotProd,
                                        FeatureFPARMv8, FeatureFullFP16, FeatureNEON,
-                                       FeatureRCPC, FeatureSSBS, FeaturePerfMon];
+                                       FeatureRCPC, FeatureSSBS, FeaturePerfMon, FeatureCRC,
+                                       FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> NeoverseN1 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureDotProd,
                                        FeatureFPARMv8, FeatureFullFP16, FeatureNEON,
                                        FeatureRCPC, FeatureSPE, FeatureSSBS,
-                                       FeaturePerfMon];
+                                       FeaturePerfMon, FeatureCRC, FeatureLSE, FeatureRAS, FeatureRDM];
   list<SubtargetFeature> NeoverseN2 = [HasV9_0aOps, FeatureBF16, FeatureETE, FeatureFP16FML,
                                        FeatureMatMulInt8, FeatureMTE, FeatureSVE2,
                                        FeatureSVE2BitPerm, FeatureTRBE,
                                        FeaturePerfMon,
-                                       FeatureDotProd, FeatureFullFP16, FeatureSB, FeatureSSBS, FeatureSVE];
+                                       FeatureDotProd, FeatureFullFP16, FeatureSB, FeatureSSBS, FeatureSVE,
+                                       FeatureComplxNum, FeatureCRC, FeatureFPARMv8, FeatureJS, FeatureLSE,
+                                       FeatureNEON, FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> NeoverseN3 = [HasV9_2aOps, FeatureETE, FeatureFP16FML,
                                       FeatureFullFP16, FeatureMTE, FeaturePerfMon,
                                       FeatureRandGen, FeatureSPE, FeatureSPE_EEF,
                                       FeatureSVE2BitPerm,
                                       FeatureSSBS, FeatureSB, FeaturePredRes, FeaturePAuth, FeatureFlagM,
-                                      FeatureSVE, FeatureSVE2];
+                                      FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum,
+                                      FeatureCRC, FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8,
+                                      FeatureJS, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM,
+                                      FeatureNEON];
   list<SubtargetFeature> Neoverse512TVB = [HasV8_4aOps, FeatureBF16, FeatureCacheDeepPersist,
                                            FeatureSHA2, FeatureAES, FeatureFPARMv8, FeatureFP16FML,
                                            FeatureFullFP16, FeatureMatMulInt8, FeatureNEON,
                                            FeaturePerfMon, FeatureRandGen, FeatureSPE,
                                            FeatureSSBS, FeatureSVE,
-                                           FeatureSHA3, FeatureSM4, FeatureDotProd];
+                                           FeatureSHA3, FeatureSM4, FeatureDotProd, FeatureComplxNum,
+                                           FeatureCRC, FeatureJS, FeatureLSE, FeaturePAuth, FeatureRAS,
+                                           FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> NeoverseV1 = [HasV8_4aOps, FeatureBF16, FeatureCacheDeepPersist,
                                        FeatureSHA2, FeatureAES, FeatureFPARMv8, FeatureFP16FML,
                                        FeatureFullFP16, FeatureMatMulInt8, FeatureNEON,
                                        FeaturePerfMon, FeatureRandGen, FeatureSPE,
                                        FeatureSSBS, FeatureSVE,
-                                       FeatureSHA3, FeatureSM4, FeatureDotProd];
+                                       FeatureSHA3, FeatureSM4, FeatureDotProd, FeatureComplxNum,
+                                       FeatureCRC, FeatureJS, FeatureLSE, FeaturePAuth, FeatureRAS,
+                                       FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> NeoverseV2 = [HasV9_0aOps, FeatureBF16, FeatureSPE,
                                        FeaturePerfMon, FeatureETE, FeatureMatMulInt8,
                                        FeatureNEON, FeatureSVE2BitPerm, FeatureFP16FML,
                                        FeatureMTE, FeatureRandGen,
-                                       FeatureSVE, FeatureSVE2, FeatureSSBS, FeatureFullFP16, FeatureDotProd];
+                                       FeatureSVE, FeatureSVE2, FeatureSSBS, FeatureFullFP16, FeatureDotProd,
+                                       FeatureComplxNum, FeatureCRC, FeatureFPARMv8, FeatureJS, FeatureLSE,
+                                       FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> NeoverseV3 = [HasV9_2aOps, FeatureETE, FeatureFP16FML,
                                       FeatureFullFP16, FeatureLS64, FeatureMTE,
                                       FeaturePerfMon, FeatureRandGen, FeatureSPE,
                                       FeatureSPE_EEF, FeatureSVE2BitPerm, FeatureBRBE,
                                       FeatureSSBS, FeatureSB, FeaturePredRes, FeaturePAuth, FeatureFlagM,
-                                      FeatureSVE, FeatureSVE2];
+                                      FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                      FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS, FeatureLSE,
+                                      FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> NeoverseV3AE = [HasV9_2aOps, FeatureETE, FeatureFP16FML,
                                       FeatureFullFP16, FeatureLS64, FeatureMTE,
                                       FeaturePerfMon, FeatureRandGen, FeatureSPE,
                                       FeatureSPE_EEF, FeatureSVE2BitPerm, FeatureBRBE,
                                       FeatureSSBS, FeatureSB, FeaturePredRes, FeaturePAuth, FeatureFlagM,
-                                      FeatureSVE, FeatureSVE2];
+                                      FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                      FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS,
+                                      FeatureLSE, FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> Saphira    = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
-                                       FeatureNEON, FeatureSPE, FeaturePerfMon];
+                                       FeatureNEON, FeatureSPE, FeaturePerfMon, FeatureCRC,
+                                       FeatureLSE, FeatureRDM, FeatureRAS, FeatureRCPC];
   list<SubtargetFeature> ThunderX   = [HasV8_0aOps, FeatureCRC, FeatureSHA2, FeatureAES,
                                        FeatureFPARMv8, FeaturePerfMon, FeatureNEON];
   list<SubtargetFeature> ThunderX2T99  = [HasV8_1aOps, FeatureCRC, FeatureSHA2, FeatureAES,
-                                          FeatureFPARMv8, FeatureNEON, FeatureLSE];
+                                          FeatureFPARMv8, FeatureNEON, FeatureLSE,
+                                          FeatureRDM];
   list<SubtargetFeature> ThunderX3T110 = [HasV8_3aOps, FeatureCRC, FeatureSHA2, FeatureAES,
                                           FeatureFPARMv8, FeatureNEON, FeatureLSE,
-                                          FeaturePAuth, FeaturePerfMon];
+                                          FeaturePAuth, FeaturePerfMon, FeatureComplxNum,
+                                          FeatureJS, FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> TSV110 = [HasV8_2aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                    FeatureNEON, FeaturePerfMon, FeatureSPE,
                                    FeatureFullFP16, FeatureFP16FML, FeatureDotProd,
-                                   FeatureJS, FeatureComplxNum];
+                                   FeatureJS, FeatureComplxNum, FeatureCRC, FeatureLSE,
+                                   FeatureRAS, FeatureRDM];
   list<SubtargetFeature> Ampere1 = [HasV8_6aOps, FeatureNEON, FeaturePerfMon,
                                     FeatureSSBS, FeatureRandGen, FeatureSB,
                                     FeatureSHA2, FeatureSHA3, FeatureAES,
-                                    FeatureFullFP16];
+                                    FeatureFullFP16, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                    FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS,
+                                    FeatureLSE, FeaturePAuth, FeatureRAS, FeatureRCPC, FeatureRDM];
   list<SubtargetFeature> Ampere1A = [HasV8_6aOps, FeatureNEON, FeaturePerfMon,
                                      FeatureMTE, FeatureSSBS, FeatureRandGen,
                                      FeatureSB, FeatureSM4, FeatureSHA2,
                                      FeatureSHA3, FeatureAES,
-                                     FeatureFullFP16];
+                                     FeatureFullFP16, FeatureBF16, FeatureComplxNum,
+                                     FeatureCRC, FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8,
+                                     FeatureJS, FeatureLSE, FeaturePAuth, FeatureRAS, FeatureRCPC,
+                                     FeatureRDM];
   list<SubtargetFeature> Ampere1B = [HasV8_7aOps, FeatureNEON, FeaturePerfMon,
                                      FeatureMTE, FeatureSSBS, FeatureRandGen,
                                      FeatureSB, FeatureSM4, FeatureSHA2,
                                      FeatureSHA3, FeatureAES, FeatureCSSC,
-                                     FeatureWFxT, FeatureFullFP16];
+                                     FeatureWFxT, FeatureFullFP16, FeatureBF16, FeatureComplxNum,
+                                     FeatureCRC, FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8,
+                                     FeatureJS, FeatureLSE, FeaturePAuth, FeatureRAS, FeatureRCPC,
+                                     FeatureRDM];
 
   list<SubtargetFeature> Oryon = [HasV8_6aOps, FeatureNEON, FeaturePerfMon,
                                      FeatureRandGen,
                                      FeaturePAuth, FeatureSM4, FeatureSHA2,
                                      FeatureSHA3, FeatureAES,
-                                     FeatureSPE];
+                                     FeatureSPE, FeatureBF16, FeatureComplxNum, FeatureCRC,
+                                     FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8,
+                                     FeatureJS, FeatureLSE, FeatureRAS, FeatureRCPC, FeatureRDM];
 
   // 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
index 62be718ba8d14..e5fd16f876989 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1228,18 +1228,18 @@ INSTANTIATE_TEST_SUITE_P(
              AArch64::AEK_PERFMON}),
         AArch64CPUTestParams(
             "cortex-a78", "armv8.2-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_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
-             AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
-             AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
+            {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::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}),
+            {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::AEK_RAS, AArch64::AEK_CRC, AArch64::AEK_AES,
@@ -1628,7 +1628,7 @@ INSTANTIATE_TEST_SUITE_P(
              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",
+        AArch64CPUTestParams("apple-m4", "armv9.2-a", "crypto-neon-fp-armv8",
                              {AArch64::AEK_CRC,       AArch64::AEK_AES,
                               AArch64::AEK_SHA2,      AArch64::AEK_SHA3,
                               AArch64::AEK_FP,        AArch64::AEK_SIMD,
@@ -1801,6 +1801,12 @@ INSTANTIATE_TEST_SUITE_P(
                               AArch64::AEK_SIMD, AArch64::AEK_FP16,
                               AArch64::AEK_RAS, AArch64::AEK_LSE,
                               AArch64::AEK_RDM}),
+        AArch64CPUTestParams(
+            "saphira", "armv8.4-a", "crypto-neon-fp-armv8",
+            {AArch64::AEK_AES, AArch64::AEK_FP, AArch64::AEK_SIMD,
+             AArch64::AEK_PERFMON, AArch64::AEK_SHA2, AArch64::AEK_PROFILE,
+             AArch64::AEK_CRC, AArch64::AEK_LSE, AArch64::AEK_RDM,
+             AArch64::AEK_RAS, AArch64::AEK_RCPC}),
         AArch64CPUTestParams(
             "oryon-1", "armv8.6-a", "crypto-neon-fp-armv8",
             {AArch64::AEK_CRC,     AArch64::AEK_FP,      AArch64::AEK_PAUTH,

>From 725317050edc87fb1d62737618c4ebd55d38c8e3 Mon Sep 17 00:00:00 2001
From: Jon Roelofs <jonathan_roelofs at apple.com>
Date: Wed, 10 Jul 2024 08:15:07 -0700
Subject: [PATCH 2/5] clang-format

---
 .../TargetParser/TargetParserTest.cpp         | 20 +++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp
index e5fd16f876989..06ffa58a220ed 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1228,18 +1228,18 @@ INSTANTIATE_TEST_SUITE_P(
              AArch64::AEK_PERFMON}),
         AArch64CPUTestParams(
             "cortex-a78", "armv8.2-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_RAS, AArch64::AEK_LSE,
-             AArch64::AEK_FP16, AArch64::AEK_DOTPROD, AArch64::AEK_RCPC,
-             AArch64::AEK_SSBS, AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
+            {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::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}),
+            {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::AEK_RAS, AArch64::AEK_CRC, AArch64::AEK_AES,

>From f8df80a9e6af714851fd25ce416fc4603acfea5b Mon Sep 17 00:00:00 2001
From: Jon Roelofs <jonathan_roelofs at apple.com>
Date: Wed, 10 Jul 2024 09:09:12 -0700
Subject: [PATCH 3/5] FEAT_MEC is optional in v9.2, FEAT_RME is optional in
 v9.1

---
 .../test/Driver/print-enabled-extensions/aarch64-armv9-a.c  | 2 --
 .../Driver/print-enabled-extensions/aarch64-armv9.1-a.c     | 1 -
 .../Driver/print-enabled-extensions/aarch64-cortex-a510.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-a520.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-a520ae.c | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-a710.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-a715.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-a720.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-a720ae.c | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-a725.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-x2.c     | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-x3.c     | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-x4.c     | 2 --
 .../Driver/print-enabled-extensions/aarch64-cortex-x925.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-neoverse-n2.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-neoverse-n3.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-neoverse-v2.c   | 2 --
 .../Driver/print-enabled-extensions/aarch64-neoverse-v3.c   | 1 -
 .../Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c | 1 -
 llvm/lib/Target/AArch64/AArch64Features.td                  | 4 ++--
 llvm/lib/Target/AArch64/AArch64Processors.td                | 5 +++--
 llvm/unittests/TargetParser/TargetParserTest.cpp            | 6 ++++--
 22 files changed, 9 insertions(+), 41 deletions(-)

diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-armv9-a.c b/clang/test/Driver/print-enabled-extensions/aarch64-armv9-a.c
index cd26351a0267c..398e13d0e7ebd 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-armv9-a.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-armv9-a.c
@@ -27,7 +27,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
 // CHECK-NEXT:     FEAT_PAN                                               Enables ARM v8.1 Privileged Access-Never extension
@@ -35,7 +34,6 @@
 // CHECK-NEXT:     FEAT_PAuth                                             Enable v8.3-A Pointer Authentication extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPECRES                                           Enable v8.5a execution and data prediction invalidation instructions
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-armv9.1-a.c b/clang/test/Driver/print-enabled-extensions/aarch64-armv9.1-a.c
index 31fb009f61c28..1a54833ca0d26 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-armv9.1-a.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-armv9.1-a.c
@@ -32,7 +32,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
 // CHECK-NEXT:     FEAT_PAN                                               Enables ARM v8.1 Privileged Access-Never extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a510.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a510.c
index 54068338a9858..2d99403606e3b 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a510.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a510.c
@@ -30,7 +30,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPECRES                                           Enable v8.5a execution and data prediction invalidation instructions
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520.c
index 29cec5d2d73af..9a3593f3c9ee5 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520.c
@@ -34,7 +34,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPECRES                                           Enable v8.5a execution and data prediction invalidation instructions
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520ae.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520ae.c
index 0f3b181c395c6..94b0e7dd88a9d 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520ae.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520ae.c
@@ -34,7 +34,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPECRES                                           Enable v8.5a execution and data prediction invalidation instructions
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a710.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a710.c
index f073db5ea7441..5263791ca3363 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a710.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a710.c
@@ -30,7 +30,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPECRES                                           Enable v8.5a execution and data prediction invalidation instructions
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a715.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a715.c
index 359ca76a243fb..4a90879413733 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a715.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a715.c
@@ -30,7 +30,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPE                                               Enable Statistical Profiling extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720.c
index 41fa2756188b7..077ab192e430b 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720.c
@@ -34,7 +34,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPE                                               Enable Statistical Profiling extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720ae.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720ae.c
index b9ac21aa256f7..60b8cee37e0a8 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720ae.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720ae.c
@@ -34,7 +34,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPE                                               Enable Statistical Profiling extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a725.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a725.c
index 823319f108e28..2ddd7c22fcee8 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a725.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-a725.c
@@ -34,7 +34,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPE                                               Enable Statistical Profiling extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x2.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x2.c
index 9a8a4f41c1310..3c24093ed0171 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x2.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x2.c
@@ -30,7 +30,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPECRES                                           Enable v8.5a execution and data prediction invalidation instructions
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x3.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x3.c
index 7fd1cc9de7821..3f5913c0df6bb 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x3.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x3.c
@@ -30,7 +30,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPE                                               Enable Statistical Profiling extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x4.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x4.c
index 10b13a0052c76..ab1d5cfb8b03e 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x4.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x4.c
@@ -34,7 +34,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPE                                               Enable Statistical Profiling extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x925.c b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x925.c
index 09ceb0b358b91..6c0d90feffefe 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x925.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-cortex-x925.c
@@ -34,7 +34,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPE                                               Enable Statistical Profiling extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n2.c b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n2.c
index 31ca041fc692f..1747ffaa9e850 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n2.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n2.c
@@ -30,7 +30,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
 // CHECK-NEXT:     FEAT_SPECRES                                           Enable v8.5a execution and data prediction invalidation instructions
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n3.c b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n3.c
index 2662adf677691..82c47634f6a76 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n3.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n3.c
@@ -34,7 +34,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_RNG                                               Enable Random Number generation instructions
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v2.c b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v2.c
index 420be38d454f5..f3d132f7f0fe1 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v2.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v2.c
@@ -30,7 +30,6 @@
 // CHECK-NEXT:     FEAT_LRCPC2                                            Enable v8.4-A RCPC instructions with Immediate Offsets
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
 // CHECK-NEXT:     FEAT_PMUv3                                             Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
 // CHECK-NEXT:     FEAT_RAS, FEAT_RASv1p1                                 Enable ARMv8 Reliability, Availability and Serviceability Extensions
 // CHECK-NEXT:     FEAT_RDM                                               Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
-// CHECK-NEXT:     FEAT_RME                                               Enable Realm Management Extension
 // CHECK-NEXT:     FEAT_RNG                                               Enable Random Number generation instructions
 // CHECK-NEXT:     FEAT_SB                                                Enable v8.5 Speculation Barrier
 // CHECK-NEXT:     FEAT_SEL2                                              Enable v8.4-A Secure Exception Level 2 extension
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3.c b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3.c
index d9a7d2f570cd2..0b1eb44f539e7 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3.c
@@ -36,7 +36,6 @@
 // CHECK-NEXT:     FEAT_LS64, FEAT_LS64_V, FEAT_LS64_ACCDATA              Enable Armv8.7-A LD64B/ST64B Accelerator Extension
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
index 21686e5631cb7..d1cb22c53e047 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
@@ -36,7 +36,6 @@
 // CHECK-NEXT:     FEAT_LS64, FEAT_LS64_V, FEAT_LS64_ACCDATA              Enable Armv8.7-A LD64B/ST64B Accelerator Extension
 // CHECK-NEXT:     FEAT_LSE                                               Enable ARMv8.1 Large System Extension (LSE) atomic instructions
 // CHECK-NEXT:     FEAT_LSE2                                              Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
-// CHECK-NEXT:     FEAT_MEC                                               Enable Memory Encryption Contexts Extension
 // CHECK-NEXT:     FEAT_MPAM                                              Enable v8.4-A Memory system Partitioning and Monitoring extension
 // CHECK-NEXT:     FEAT_MTE, FEAT_MTE2                                    Enable Memory Tagging Extension
 // CHECK-NEXT:     FEAT_NV, FEAT_NV2                                      Enable v8.4-A Nested Virtualization Enchancement
diff --git a/llvm/lib/Target/AArch64/AArch64Features.td b/llvm/lib/Target/AArch64/AArch64Features.td
index fac75d56bde4f..6d997d02bac3d 100644
--- a/llvm/lib/Target/AArch64/AArch64Features.td
+++ b/llvm/lib/Target/AArch64/AArch64Features.td
@@ -802,10 +802,10 @@ def HasV9_0aOps : Architecture64<9, 0, "a", "v9a",
     FeatureSVE2])>;
 def HasV9_1aOps : Architecture64<9, 1, "a", "v9.1a",
   [HasV8_6aOps, HasV9_0aOps],
-  !listconcat(HasV9_0aOps.DefaultExts, [FeatureBF16, FeatureMatMulInt8])>;
+  !listconcat(HasV9_0aOps.DefaultExts, [FeatureBF16, FeatureMatMulInt8, FeatureRME])>;
 def HasV9_2aOps : Architecture64<9, 2, "a", "v9.2a",
   [HasV8_7aOps, HasV9_1aOps],
-  !listconcat(HasV9_1aOps.DefaultExts, [])>;
+  !listconcat(HasV9_1aOps.DefaultExts, [FeatureMEC])>;
 def HasV9_3aOps : Architecture64<9, 3, "a", "v9.3a",
   [HasV8_8aOps, HasV9_2aOps],
   !listconcat(HasV9_2aOps.DefaultExts, [FeatureMOPS, FeatureHBC])>;
diff --git a/llvm/lib/Target/AArch64/AArch64Processors.td b/llvm/lib/Target/AArch64/AArch64Processors.td
index 531d6636cce4a..87927093a2c4c 100644
--- a/llvm/lib/Target/AArch64/AArch64Processors.td
+++ b/llvm/lib/Target/AArch64/AArch64Processors.td
@@ -950,7 +950,7 @@ def ProcessorFeatures {
                                       FeatureSSBS, FeatureSB, FeaturePredRes, FeaturePAuth, FeatureFlagM,
                                       FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
                                       FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS, FeatureLSE,
-                                      FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM];
+                                      FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM, FeatureRME];
   list<SubtargetFeature> NeoverseV3AE = [HasV9_2aOps, FeatureETE, FeatureFP16FML,
                                       FeatureFullFP16, FeatureLS64, FeatureMTE,
                                       FeaturePerfMon, FeatureRandGen, FeatureSPE,
@@ -958,7 +958,8 @@ def ProcessorFeatures {
                                       FeatureSSBS, FeatureSB, FeaturePredRes, FeaturePAuth, FeatureFlagM,
                                       FeatureSVE, FeatureSVE2, FeatureBF16, FeatureComplxNum, FeatureCRC,
                                       FeatureDotProd, FeatureFPARMv8, FeatureMatMulInt8, FeatureJS,
-                                      FeatureLSE, FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM];
+                                      FeatureLSE, FeatureNEON, FeatureRAS, FeatureRCPC, FeatureRDM,
+                                      FeatureRME];
   list<SubtargetFeature> Saphira    = [HasV8_4aOps, FeatureSHA2, FeatureAES, FeatureFPARMv8,
                                        FeatureNEON, FeatureSPE, FeaturePerfMon, FeatureCRC,
                                        FeatureLSE, FeatureRDM, FeatureRAS, FeatureRCPC];
diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp
index 06ffa58a220ed..c8a69867c6bb7 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1362,7 +1362,8 @@ INSTANTIATE_TEST_SUITE_P(
                               AArch64::AEK_SVE2BITPERM, AArch64::AEK_FP16FML,
                               AArch64::AEK_PROFILE,     AArch64::AEK_JSCVT,
                               AArch64::AEK_FCMA,        AArch64::AEK_PERFMON,
-                              AArch64::AEK_ETE,         AArch64::AEK_SPE_EEF}),
+                              AArch64::AEK_ETE,         AArch64::AEK_SPE_EEF,
+                              AArch64::AEK_RME}),
         AArch64CPUTestParams("neoverse-v3ae", "armv9.2-a", "neon-fp-armv8",
                              {AArch64::AEK_BF16,        AArch64::AEK_I8MM,
                               AArch64::AEK_SVE,         AArch64::AEK_SVE2,
@@ -1379,7 +1380,8 @@ INSTANTIATE_TEST_SUITE_P(
                               AArch64::AEK_SVE2BITPERM, AArch64::AEK_FP16FML,
                               AArch64::AEK_PROFILE,     AArch64::AEK_JSCVT,
                               AArch64::AEK_FCMA,        AArch64::AEK_PERFMON,
-                              AArch64::AEK_ETE,         AArch64::AEK_SPE_EEF}),
+                              AArch64::AEK_ETE,         AArch64::AEK_SPE_EEF,
+                              AArch64::AEK_RME}),
         AArch64CPUTestParams(
             "cortex-r82", "armv8-r", "crypto-neon-fp-armv8",
             {AArch64::AEK_CRC, AArch64::AEK_RDM, AArch64::AEK_SSBS,

>From 220d26c4251861ec2082fd4ec68d9fb3881f558e Mon Sep 17 00:00:00 2001
From: Jon Roelofs <jonathan_roelofs at apple.com>
Date: Wed, 10 Jul 2024 10:08:28 -0700
Subject: [PATCH 4/5] clang-format

---
 .../TargetParser/TargetParserTest.cpp         | 20 +++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp
index c8a69867c6bb7..35a91e69860d6 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1228,18 +1228,18 @@ INSTANTIATE_TEST_SUITE_P(
              AArch64::AEK_PERFMON}),
         AArch64CPUTestParams(
             "cortex-a78", "armv8.2-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_RAS, AArch64::AEK_LSE, AArch64::AEK_FP16,
-             AArch64::AEK_DOTPROD, AArch64::AEK_RCPC, AArch64::AEK_SSBS,
-             AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
+            {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::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}),
+            {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::AEK_RAS, AArch64::AEK_CRC, AArch64::AEK_AES,

>From 4b981851a7f91e6e33f2735bbc913ed62feb9f15 Mon Sep 17 00:00:00 2001
From: Jon Roelofs <jonathan_roelofs at apple.com>
Date: Wed, 10 Jul 2024 10:14:16 -0700
Subject: [PATCH 5/5] clang-format some more. the bot's version must be
 different than mine

---
 .../TargetParser/TargetParserTest.cpp         | 20 +++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp
index 35a91e69860d6..c8a69867c6bb7 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1228,18 +1228,18 @@ INSTANTIATE_TEST_SUITE_P(
              AArch64::AEK_PERFMON}),
         AArch64CPUTestParams(
             "cortex-a78", "armv8.2-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_RAS, AArch64::AEK_LSE,
-             AArch64::AEK_FP16, AArch64::AEK_DOTPROD, AArch64::AEK_RCPC,
-             AArch64::AEK_SSBS, AArch64::AEK_PROFILE, AArch64::AEK_PERFMON}),
+            {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::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}),
+            {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::AEK_RAS, AArch64::AEK_CRC, AArch64::AEK_AES,



More information about the cfe-commits mailing list