[PATCH] D38811: [x86] Add initial skeleton support for "knm" cpu - llvm version
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 13 08:55:45 PDT 2017
craig.topper updated this revision to Diff 118921.
craig.topper added a comment.
Add KNLFeatures and KnightsMillProc classes.
https://reviews.llvm.org/D38811
Files:
lib/Support/Host.cpp
lib/Target/X86/X86.td
test/CodeGen/X86/cpus.ll
Index: test/CodeGen/X86/cpus.ll
===================================================================
--- test/CodeGen/X86/cpus.ll
+++ test/CodeGen/X86/cpus.ll
@@ -30,6 +30,7 @@
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=goldmont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=lakemont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=knl 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
+; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=knm 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=k8 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=opteron 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=athlon64 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty
Index: lib/Target/X86/X86.td
===================================================================
--- lib/Target/X86/X86.td
+++ lib/Target/X86/X86.td
@@ -609,10 +609,7 @@
]>;
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,
@@ -624,12 +621,26 @@
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,
Index: lib/Support/Host.cpp
===================================================================
--- lib/Support/Host.cpp
+++ lib/Support/Host.cpp
@@ -339,6 +339,7 @@
AMD_BTVER1,
AMD_BTVER2,
AMDFAM17H,
+ INTEL_KNM,
// Entries below this are not in libgcc/compiler-rt.
INTEL_i386,
INTEL_i486,
@@ -759,6 +760,9 @@
case 0x57:
*Type = INTEL_KNL; // knl
break;
+ case 0x85:
+ *Type = INTEL_KNM; // knm
+ break;
default: // Unknown family 6 CPU, try to guess.
if (Features & (1 << FEATURE_AVX512F)) {
@@ -1167,6 +1171,8 @@
return "goldmont";
case INTEL_KNL:
return "knl";
+ case INTEL_KNM:
+ return "knm";
case INTEL_X86_64:
return "x86-64";
case INTEL_NOCONA:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38811.118921.patch
Type: text/x-patch
Size: 3254 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171013/6ba6b580/attachment.bin>
More information about the llvm-commits
mailing list