This revision was automatically updated to reflect the committed changes.
Closed by commit rG5f9489b75405: [X86] Refine "Support 
-march=alderlake" (authored by FreddyYe).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97832/new/

https://reviews.llvm.org/D97832

Files:
  clang/test/Preprocessor/predefined-arch-macros.c
  llvm/lib/Support/X86TargetParser.cpp
  llvm/lib/Target/X86/X86.td

Index: llvm/lib/Target/X86/X86.td
===================================================================
--- llvm/lib/Target/X86/X86.td
+++ llvm/lib/Target/X86/X86.td
@@ -784,17 +784,6 @@
   list<SubtargetFeature> SPRFeatures =
     !listconcat(ICXFeatures, SPRAdditionalFeatures);
 
-  // Alderlake
-  list<SubtargetFeature> ADLAdditionalFeatures = [FeatureAVXVNNI,
-                                                  FeatureCLDEMOTE,
-                                                  FeatureHRESET,
-                                                  FeaturePTWRITE,
-                                                  FeatureSERIALIZE,
-                                                  FeatureWAITPKG];
-  list<SubtargetFeature> ADLTuning = SKLTuning;
-  list<SubtargetFeature> ADLFeatures =
-    !listconcat(SKLFeatures, ADLAdditionalFeatures);
-
   // Atom
   list<SubtargetFeature> AtomFeatures = [FeatureX87,
                                          FeatureCMPXCHG8B,
@@ -873,6 +862,31 @@
   list<SubtargetFeature> TRMFeatures =
     !listconcat(GLPFeatures, TRMAdditionalFeatures);
 
+  // Alderlake
+  list<SubtargetFeature> ADLAdditionalFeatures = [FeatureSERIALIZE,
+                                                  FeaturePCONFIG,
+                                                  FeatureSHSTK,
+                                                  FeatureWIDEKL,
+                                                  FeatureINVPCID,
+                                                  FeatureADX,
+                                                  FeatureFMA,
+                                                  FeatureVAES,
+                                                  FeatureVPCLMULQDQ,
+                                                  FeatureF16C,
+                                                  FeatureBMI,
+                                                  FeatureBMI2,
+                                                  FeatureLZCNT,
+                                                  FeatureAVXVNNI,
+                                                  FeaturePKU,
+                                                  FeatureHRESET,
+                                                  FeatureCLDEMOTE,
+                                                  FeatureMOVDIRI,
+                                                  FeatureMOVDIR64B,
+                                                  FeatureWAITPKG];
+  list<SubtargetFeature> ADLTuning = SKLTuning;
+  list<SubtargetFeature> ADLFeatures =
+    !listconcat(TRMFeatures, ADLAdditionalFeatures);
+
   // Knights Landing
   list<SubtargetFeature> KNLFeatures = [FeatureX87,
                                         FeatureCMPXCHG8B,
Index: llvm/lib/Support/X86TargetParser.cpp
===================================================================
--- llvm/lib/Support/X86TargetParser.cpp
+++ llvm/lib/Support/X86TargetParser.cpp
@@ -205,9 +205,6 @@
     FeatureENQCMD | FeatureMOVDIR64B | FeatureMOVDIRI | FeaturePTWRITE |
     FeatureSERIALIZE | FeatureSHSTK | FeatureTSXLDTRK | FeatureUINTR |
     FeatureWAITPKG | FeatureAVXVNNI;
-constexpr FeatureBitset FeaturesAlderlake =
-    FeaturesSkylakeClient | FeatureCLDEMOTE | FeatureHRESET | FeaturePTWRITE |
-    FeatureSERIALIZE | FeatureWAITPKG | FeatureAVXVNNI;
 
 // Intel Atom processors.
 // Bonnell has feature parity with Core2 and adds MOVBE.
@@ -223,6 +220,12 @@
     FeaturesGoldmont | FeaturePTWRITE | FeatureRDPID | FeatureSGX;
 constexpr FeatureBitset FeaturesTremont =
     FeaturesGoldmontPlus | FeatureCLWB | FeatureGFNI;
+constexpr FeatureBitset FeaturesAlderlake =
+    FeaturesTremont | FeatureADX | FeatureBMI | FeatureBMI2 | FeatureF16C |
+    FeatureFMA | FeatureINVPCID | FeatureLZCNT | FeaturePCONFIG | FeaturePKU |
+    FeatureSERIALIZE | FeatureSHSTK | FeatureVAES | FeatureVPCLMULQDQ |
+    FeatureCLDEMOTE | FeatureMOVDIR64B | FeatureMOVDIRI | FeatureWAITPKG |
+    FeatureAVXVNNI | FeatureHRESET | FeatureWIDEKL;
 
 // Geode Processor.
 constexpr FeatureBitset FeaturesGeode =
Index: clang/test/Preprocessor/predefined-arch-macros.c
===================================================================
--- clang/test/Preprocessor/predefined-arch-macros.c
+++ clang/test/Preprocessor/predefined-arch-macros.c
@@ -1791,32 +1791,53 @@
 // CHECK_ADL_M32: #define __BMI__ 1
 // CHECK_ADL_M32: #define __CLDEMOTE__ 1
 // CHECK_ADL_M32: #define __CLFLUSHOPT__ 1
+// CHECK_ADL_M32: #define __CLWB__ 1
 // CHECK_ADL_M32: #define __F16C__ 1
 // CHECK_ADL_M32: #define __FMA__ 1
+// CHECK_ADL_M32: #define __FSGSBASE__ 1
+// CHECK_ADL_M32: #define __FXSR__ 1
+// CHECK_ADL_M32: #define __GFNI__ 1
 // CHECK_ADL_M32: #define __HRESET__ 1
 // CHECK_ADL_M32: #define __INVPCID__ 1
+// CHECK_ADL_M32: #define __KL__ 1
 // CHECK_ADL_M32: #define __LZCNT__ 1
 // CHECK_ADL_M32: #define __MMX__ 1
 // CHECK_ADL_M32: #define __MOVBE__ 1
+// CHECK_ADL_M32: #define __MOVDIR64B__ 1
+// CHECK_ADL_M32: #define __MOVDIRI__ 1
 // CHECK_ADL_M32: #define __PCLMUL__ 1
+// CHECK_ADL_M32: #define __PCONFIG__ 1
+// CHECK_ADL_M32: #define __PKU__ 1
 // CHECK_ADL_M32: #define __POPCNT__ 1
 // CHECK_ADL_M32: #define __PRFCHW__ 1
 // CHECK_ADL_M32: #define __PTWRITE__ 1
+// CHECK_ADL_M32: #define __RDPID__ 1
 // CHECK_ADL_M32: #define __RDRND__ 1
 // CHECK_ADL_M32: #define __RDSEED__ 1
 // CHECK_ADL_M32: #define __SERIALIZE__ 1
 // CHECK_ADL_M32: #define __SGX__ 1
+// CHECK_ADL_M32: #define __SHA__ 1
+// CHECK_ADL_M32: #define __SHSTK__ 1
 // CHECK_ADL_M32: #define __SSE2__ 1
 // CHECK_ADL_M32: #define __SSE3__ 1
 // CHECK_ADL_M32: #define __SSE4_1__ 1
 // CHECK_ADL_M32: #define __SSE4_2__ 1
+// CHECK_ADL_M32: #define __SSE_MATH__ 1
 // CHECK_ADL_M32: #define __SSE__ 1
 // CHECK_ADL_M32: #define __SSSE3__ 1
+// CHECK_ADL_M32: #define __VAES__ 1
+// CHECK_ADL_M32: #define __VPCLMULQDQ__ 1
 // CHECK_ADL_M32: #define __WAITPKG__ 1
+// CHECK_ADL_M32: #define __WIDEKL__ 1
 // CHECK_ADL_M32: #define __XSAVEC__ 1
 // CHECK_ADL_M32: #define __XSAVEOPT__ 1
 // CHECK_ADL_M32: #define __XSAVES__ 1
 // CHECK_ADL_M32: #define __XSAVE__ 1
+// CHECK_ADL_M32: #define __corei7 1
+// CHECK_ADL_M32: #define __corei7__ 1
+// CHECK_ADL_M32: #define __i386 1
+// CHECK_ADL_M32: #define __i386__ 1
+// CHECK_ADL_M32: #define __tune_corei7__ 1
 // CHECK_ADL_M32: #define i386 1
 
 // RUN: %clang -march=alderlake -m64 -E -dM %s -o - 2>&1 \
@@ -1832,21 +1853,33 @@
 // CHECK_ADL_M64: #define __BMI__ 1
 // CHECK_ADL_M64: #define __CLDEMOTE__ 1
 // CHECK_ADL_M64: #define __CLFLUSHOPT__ 1
+// CHECK_ADL_M64: #define __CLWB__ 1
 // CHECK_ADL_M64: #define __F16C__ 1
 // CHECK_ADL_M64: #define __FMA__ 1
+// CHECK_ADL_M64: #define __FSGSBASE__ 1
+// CHECK_ADL_M64: #define __FXSR__ 1
+// CHECK_ADL_M64: #define __GFNI__ 1
 // CHECK_ADL_M64: #define __HRESET__ 1
 // CHECK_ADL_M64: #define __INVPCID__ 1
+// CHECK_ADL_M64: #define __KL__ 1
 // CHECK_ADL_M64: #define __LZCNT__ 1
 // CHECK_ADL_M64: #define __MMX__ 1
 // CHECK_ADL_M64: #define __MOVBE__ 1
+// CHECK_ADL_M64: #define __MOVDIR64B__ 1
+// CHECK_ADL_M64: #define __MOVDIRI__ 1
 // CHECK_ADL_M64: #define __PCLMUL__ 1
+// CHECK_ADL_M64: #define __PCONFIG__ 1
+// CHECK_ADL_M64: #define __PKU__ 1
 // CHECK_ADL_M64: #define __POPCNT__ 1
 // CHECK_ADL_M64: #define __PRFCHW__ 1
 // CHECK_ADL_M64: #define __PTWRITE__ 1
+// CHECK_ADL_M64: #define __RDPID__ 1
 // CHECK_ADL_M64: #define __RDRND__ 1
 // CHECK_ADL_M64: #define __RDSEED__ 1
 // CHECK_ADL_M64: #define __SERIALIZE__ 1
 // CHECK_ADL_M64: #define __SGX__ 1
+// CHECK_ADL_M64: #define __SHA__ 1
+// CHECK_ADL_M64: #define __SHSTK__ 1
 // CHECK_ADL_M64: #define __SSE2_MATH__ 1
 // CHECK_ADL_M64: #define __SSE2__ 1
 // CHECK_ADL_M64: #define __SSE3__ 1
@@ -1855,13 +1888,19 @@
 // CHECK_ADL_M64: #define __SSE_MATH__ 1
 // CHECK_ADL_M64: #define __SSE__ 1
 // CHECK_ADL_M64: #define __SSSE3__ 1
+// CHECK_ADL_M64: #define __VAES__ 1
+// CHECK_ADL_M64: #define __VPCLMULQDQ__ 1
 // CHECK_ADL_M64: #define __WAITPKG__ 1
+// CHECK_ADL_M64: #define __WIDEKL__ 1
 // CHECK_ADL_M64: #define __XSAVEC__ 1
 // CHECK_ADL_M64: #define __XSAVEOPT__ 1
 // CHECK_ADL_M64: #define __XSAVES__ 1
 // CHECK_ADL_M64: #define __XSAVE__ 1
 // CHECK_ADL_M64: #define __amd64 1
 // CHECK_ADL_M64: #define __amd64__ 1
+// CHECK_ADL_M64: #define __corei7 1
+// CHECK_ADL_M64: #define __corei7__ 1
+// CHECK_ADL_M64: #define __tune_corei7__ 1
 // CHECK_ADL_M64: #define __x86_64 1
 // CHECK_ADL_M64: #define __x86_64__ 1
 
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to