diff options
| author | Gabor Buella <gabor.buella@intel.com> | 2018-04-10 18:59:13 +0000 |
|---|---|---|
| committer | Gabor Buella <gabor.buella@intel.com> | 2018-04-10 18:59:13 +0000 |
| commit | 213edc4a15dcd0bab5122b804f0bdeb76ce8e187 (patch) | |
| tree | 67237a764780e1508889f3ea9ed54785ba1bda8a | |
| parent | 8701b18a2530c343ea5ef540113a1f93fc867c2a (diff) | |
| download | bcm5719-llvm-213edc4a15dcd0bab5122b804f0bdeb76ce8e187.tar.gz bcm5719-llvm-213edc4a15dcd0bab5122b804f0bdeb76ce8e187.zip | |
[X86] Split up -march=icelake to -client & -server
Reviewers: craig.topper, zvi, echristo
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D45055
llvm-svn: 329742
| -rw-r--r-- | llvm/lib/Target/X86/X86.td | 19 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86Subtarget.h | 3 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/avx512vpopcntdq-schedule.ll | 3 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/clwb.ll | 3 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/cpus.ll | 3 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/rdpid-schedule.ll | 3 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/rtm-schedule.ll | 3 |
7 files changed, 26 insertions, 11 deletions
diff --git a/llvm/lib/Target/X86/X86.td b/llvm/lib/Target/X86/X86.td index 0e8cd372c5f..0d0ec76c743 100644 --- a/llvm/lib/Target/X86/X86.td +++ b/llvm/lib/Target/X86/X86.td @@ -421,8 +421,10 @@ def ProcIntelSKX : SubtargetFeature<"skx", "X86ProcFamily", "IntelSKX", "Intel Skylake Server processors">; def ProcIntelCNL : SubtargetFeature<"cannonlake", "X86ProcFamily", "IntelCannonlake", "Intel Cannonlake processors">; -def ProcIntelICL : SubtargetFeature<"icelake", "X86ProcFamily", - "IntelIcelake", "Intel Icelake processors">; +def ProcIntelICL : SubtargetFeature<"icelake-client", "X86ProcFamily", + "IntelIcelakeClient", "Intel Icelake processors">; +def ProcIntelICX : SubtargetFeature<"icelake-server", "X86ProcFamily", + "IntelIcelakeServer", "Intel Icelake Server processors">; class Proc<string Name, list<SubtargetFeature> Features> : ProcessorModel<Name, GenericModel, Features>; @@ -813,12 +815,19 @@ def ICLFeatures : ProcessorFeatures<CNLFeatures.Value, [ FeatureRDPID ]>; -class IcelakeProc<string Name> : ProcModel<Name, SkylakeServerModel, - ICLFeatures.Value, [ +class IcelakeClientProc<string Name> : ProcModel<Name, SkylakeServerModel, + ICLFeatures.Value, [ ProcIntelICL, FeatureHasFastGather ]>; -def : IcelakeProc<"icelake">; +def : IcelakeClientProc<"icelake-client">; + +class IcelakeServerProc<string Name> : ProcModel<Name, SkylakeServerModel, + ICLFeatures.Value, [ + ProcIntelICX, + FeatureHasFastGather +]>; +def : IcelakeServerProc<"icelake-server">; // AMD CPUs. diff --git a/llvm/lib/Target/X86/X86Subtarget.h b/llvm/lib/Target/X86/X86Subtarget.h index f61e4365040..ba4f34178aa 100644 --- a/llvm/lib/Target/X86/X86Subtarget.h +++ b/llvm/lib/Target/X86/X86Subtarget.h @@ -63,7 +63,8 @@ public: IntelKNL, IntelSKX, IntelCannonlake, - IntelIcelake, + IntelIcelakeClient, + IntelIcelakeServer, }; protected: diff --git a/llvm/test/CodeGen/X86/avx512vpopcntdq-schedule.ll b/llvm/test/CodeGen/X86/avx512vpopcntdq-schedule.ll index e1cde7135ad..1c85e7ae157 100644 --- a/llvm/test/CodeGen/X86/avx512vpopcntdq-schedule.ll +++ b/llvm/test/CodeGen/X86/avx512vpopcntdq-schedule.ll @@ -1,6 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 -mattr=+avx512vpopcntdq | FileCheck %s --check-prefix=GENERIC -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=icelake | FileCheck %s --check-prefix=ICELAKE +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=icelake-client | FileCheck %s --check-prefix=ICELAKE +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=icelake-server | FileCheck %s --check-prefix=ICELAKE define void @test_vpopcntd(<16 x i32> %a0, <16 x i32> %a1, <16 x i32> *%a2, i16 %a3) { ; GENERIC-LABEL: test_vpopcntd: diff --git a/llvm/test/CodeGen/X86/clwb.ll b/llvm/test/CodeGen/X86/clwb.ll index e5906c6ce68..90862343d31 100644 --- a/llvm/test/CodeGen/X86/clwb.ll +++ b/llvm/test/CodeGen/X86/clwb.ll @@ -4,7 +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 llc < %s -mtriple=i686-apple-darwin -mcpu=cannonlake 2>&1 | FileCheck %s --check-prefix=CNL -; RUN: llc < %s -mtriple=i686-apple-darwin -mcpu=icelake | FileCheck %s +; RUN: llc < %s -mtriple=i686-apple-darwin -mcpu=icelake-client | FileCheck %s +; RUN: llc < %s -mtriple=i686-apple-darwin -mcpu=icelake-server | FileCheck %s ; CNL: LLVM ERROR: Cannot select: intrinsic %llvm.x86.clwb diff --git a/llvm/test/CodeGen/X86/cpus.ll b/llvm/test/CodeGen/X86/cpus.ll index 04bd74ae5c3..c01868a937b 100644 --- a/llvm/test/CodeGen/X86/cpus.ll +++ b/llvm/test/CodeGen/X86/cpus.ll @@ -46,7 +46,8 @@ ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=skx 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=cannonlake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty -; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=icelake 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty +; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=icelake-client 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty +; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=icelake-server 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=atom 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=bonnell 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty ; RUN: llc < %s -o /dev/null -mtriple=x86_64-unknown-unknown -mcpu=silvermont 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ERROR --allow-empty diff --git a/llvm/test/CodeGen/X86/rdpid-schedule.ll b/llvm/test/CodeGen/X86/rdpid-schedule.ll index 53816fef1ed..f1a60dc54a6 100644 --- a/llvm/test/CodeGen/X86/rdpid-schedule.ll +++ b/llvm/test/CodeGen/X86/rdpid-schedule.ll @@ -1,6 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 -mattr=+rdpid | FileCheck %s --check-prefix=CHECK --check-prefix=GENERIC -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=icelake | FileCheck %s --check-prefix=CHECK --check-prefix=ICELAKE +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=icelake-client | FileCheck %s --check-prefix=CHECK --check-prefix=ICELAKE +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=icelake-server | FileCheck %s --check-prefix=CHECK --check-prefix=ICELAKE define i32 @test_rdpid() { ; GENERIC-LABEL: test_rdpid: diff --git a/llvm/test/CodeGen/X86/rtm-schedule.ll b/llvm/test/CodeGen/X86/rtm-schedule.ll index c29eb545991..6cf811f8dbf 100644 --- a/llvm/test/CodeGen/X86/rtm-schedule.ll +++ b/llvm/test/CodeGen/X86/rtm-schedule.ll @@ -3,7 +3,8 @@ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skylake | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE --check-prefix=SKL ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skx | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE --check-prefix=SKX ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=cannonlake | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE --check-prefix=CNL -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=icelake | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE --check-prefix=ICL +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=icelake-client | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE --check-prefix=ICL +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=icelake-server | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE --check-prefix=ICL define i32 @test_xbegin() nounwind uwtable { ; GENERIC-LABEL: test_xbegin: |

