diff --git a/clang/test/Preprocessor/predefined-arch-macros.c b/clang/test/Preprocessor/predefined-arch-macros.c --- a/clang/test/Preprocessor/predefined-arch-macros.c +++ b/clang/test/Preprocessor/predefined-arch-macros.c @@ -1298,7 +1298,7 @@ // CHECK_ICL_M32: #define __BMI2__ 1 // CHECK_ICL_M32: #define __BMI__ 1 // CHECK_ICL_M32: #define __CLFLUSHOPT__ 1 -// CHECK_ICL_M32: #define __CLWB__ 1 +// CHECK_ICL_M32-NOT: #define __CLWB__ 1 // CHECK_ICL_M32: #define __F16C__ 1 // CHECK_ICL_M32: #define __FMA__ 1 // CHECK_ICL_M32: #define __GFNI__ 1 @@ -1355,7 +1355,7 @@ // CHECK_ICL_M64: #define __BMI2__ 1 // CHECK_ICL_M64: #define __BMI__ 1 // CHECK_ICL_M64: #define __CLFLUSHOPT__ 1 -// CHECK_ICL_M64: #define __CLWB__ 1 +// CHECK_ICL_M64-NOT: #define __CLWB__ 1 // CHECK_ICL_M64: #define __F16C__ 1 // CHECK_ICL_M64: #define __FMA__ 1 // CHECK_ICL_M64: #define __GFNI__ 1 diff --git a/llvm/lib/Support/X86TargetParser.cpp b/llvm/lib/Support/X86TargetParser.cpp --- a/llvm/lib/Support/X86TargetParser.cpp +++ b/llvm/lib/Support/X86TargetParser.cpp @@ -192,13 +192,13 @@ FeaturePKU | FeatureSHA; constexpr FeatureBitset FeaturesICLClient = FeaturesCannonlake | FeatureAVX512BITALG | FeatureAVX512VBMI2 | - FeatureAVX512VNNI | FeatureAVX512VPOPCNTDQ | FeatureCLWB | FeatureGFNI | - FeatureRDPID | FeatureVAES | FeatureVPCLMULQDQ; + FeatureAVX512VNNI | FeatureAVX512VPOPCNTDQ | FeatureGFNI | FeatureRDPID | + FeatureVAES | FeatureVPCLMULQDQ; constexpr FeatureBitset FeaturesICLServer = - FeaturesICLClient | FeaturePCONFIG | FeatureWBNOINVD; + FeaturesICLClient | FeatureCLWB | FeaturePCONFIG | FeatureWBNOINVD; constexpr FeatureBitset FeaturesTigerlake = FeaturesICLClient | FeatureAVX512VP2INTERSECT | FeatureMOVDIR64B | - FeatureMOVDIRI | FeatureSHSTK | FeatureKL | FeatureWIDEKL; + FeatureCLWB | FeatureMOVDIRI | FeatureSHSTK | FeatureKL | FeatureWIDEKL; constexpr FeatureBitset FeaturesSapphireRapids = FeaturesICLServer | FeatureAMX_TILE | FeatureAMX_INT8 | FeatureAMX_BF16 | FeatureAVX512BF16 | FeatureAVX512VP2INTERSECT | FeatureCLDEMOTE | diff --git a/llvm/lib/Target/X86/X86.td b/llvm/lib/Target/X86/X86.td --- a/llvm/lib/Target/X86/X86.td +++ b/llvm/lib/Target/X86/X86.td @@ -740,7 +740,6 @@ FeatureVPCLMULQDQ, FeatureVPOPCNTDQ, FeatureGFNI, - FeatureCLWB, FeatureRDPID, FeatureFSRM]; list ICLTuning = CNLTuning; @@ -749,6 +748,7 @@ // Icelake Server list ICXAdditionalFeatures = [FeaturePCONFIG, + FeatureCLWB, FeatureWBNOINVD]; list ICXTuning = CNLTuning; list ICXFeatures = @@ -756,6 +756,7 @@ //Tigerlake list TGLAdditionalFeatures = [FeatureVP2INTERSECT, + FeatureCLWB, FeatureMOVDIRI, FeatureMOVDIR64B, FeatureSHSTK]; diff --git a/llvm/test/CodeGen/X86/clwb.ll b/llvm/test/CodeGen/X86/clwb.ll --- a/llvm/test/CodeGen/X86/clwb.ll +++ b/llvm/test/CodeGen/X86/clwb.ll @@ -4,8 +4,8 @@ ; RUN: llc < %s -mtriple=i686-apple-darwin -mattr=clwb | FileCheck %s ; RUN: llc < %s -mtriple=i686-apple-darwin -mcpu=skx | FileCheck %s ; RUN: not --crash llc < %s -mtriple=i686-apple-darwin -mcpu=cannonlake 2>&1 | FileCheck %s --check-prefix=CNL -; RUN: llc < %s -mtriple=i686-apple-darwin -mcpu=icelake-client | FileCheck %s ; RUN: llc < %s -mtriple=i686-apple-darwin -mcpu=icelake-server | FileCheck %s +; RUN: llc < %s -mtriple=i686-apple-darwin -mcpu=tigerlake | FileCheck %s ; CNL: LLVM ERROR: Cannot select: intrinsic %llvm.x86.clwb