summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-10-13 18:10:17 +0000
committerCraig Topper <craig.topper@intel.com>2017-10-13 18:10:17 +0000
commit5d692917f4c64ea33cfd46d8df1ce2970b2014a1 (patch)
tree9cb3a66485a730ff62b4ab9c06738689704d8d01 /llvm/lib/Target
parent8bf95e467860eb9f0070311e2d54ddd0708bbcc1 (diff)
downloadbcm5719-llvm-5d692917f4c64ea33cfd46d8df1ce2970b2014a1.tar.gz
bcm5719-llvm-5d692917f4c64ea33cfd46d8df1ce2970b2014a1.zip
[X86] Add initial skeleton support for knm cpu
This adds Intel's Knights Mill CPU to valid CPU names for the backend. For now its an alias of "knl", but ultimately we need to support AVX5124FMAPS and AVX5124VNNIW instruction sets for it. Differential Revision: https://reviews.llvm.org/D38811 llvm-svn: 315722
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/X86/X86.td21
1 files changed, 16 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86.td b/llvm/lib/Target/X86/X86.td
index dbe3620ee8f..07e78adf928 100644
--- a/llvm/lib/Target/X86/X86.td
+++ b/llvm/lib/Target/X86/X86.td
@@ -610,10 +610,7 @@ class SkylakeClientProc<string Name> : ProcModel<Name, SkylakeClientModel,
]>;
def : SkylakeClientProc<"skylake">;
-// FIXME: define KNL model
-class KnightsLandingProc<string Name> : ProcModel<Name, HaswellModel,
- IVBFeatures.Value, [
- ProcIntelKNL,
+def KNLFeatures : ProcessorFeatures<IVBFeatures.Value, [
FeatureAVX512,
FeatureERI,
FeatureCDI,
@@ -625,12 +622,26 @@ class KnightsLandingProc<string Name> : ProcModel<Name, HaswellModel,
FeatureLZCNT,
FeatureBMI,
FeatureBMI2,
- FeatureFMA,
+ FeatureFMA
+]>;
+
+// FIXME: define KNL model
+class KnightsLandingProc<string Name> : ProcModel<Name, HaswellModel,
+ KNLFeatures.Value, [
+ ProcIntelKNL,
FeatureSlowTwoMemOps,
FeatureFastPartialYMMorZMMWrite
]>;
def : KnightsLandingProc<"knl">;
+class KnightsMillProc<string Name> : ProcModel<Name, HaswellModel,
+ KNLFeatures.Value, [
+ ProcIntelKNL,
+ FeatureSlowTwoMemOps,
+ FeatureFastPartialYMMorZMMWrite
+]>;
+def : KnightsMillProc<"knm">; // TODO Add AVX5124FMAPS/AVX5124VNNIW features
+
def SKXFeatures : ProcessorFeatures<SKLFeatures.Value, [
FeatureAVX512,
FeatureCDI,
OpenPOWER on IntegriCloud