1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00

[X86] Enable popcnt false dependency breaking on Silvermont and Goldmont.

Silvermont and Goldmont have the same issue on popcnt as Sandy Bridge, Haswell, Broadwell, and Skylake. Believe it is fixed in Goldmont Plus.

llvm-svn: 330358
This commit is contained in:
Craig Topper 2018-04-19 19:25:24 +00:00
parent a806fbf4b8
commit b3f1fd274a
2 changed files with 11 additions and 5 deletions

View File

@ -563,7 +563,8 @@ class SilvermontProc<string Name> : ProcessorModel<Name, SLMModel, [
FeatureSlowIncDec,
FeatureSlowPMULLD,
FeatureRDRAND,
FeatureLAHFSAHF
FeatureLAHFSAHF,
FeaturePOPCNTFalseDeps
]>;
def : SilvermontProc<"silvermont">;
def : SilvermontProc<"slm">; // Legacy alias.
@ -607,7 +608,10 @@ def GLMFeatures : ProcessorFeatures<[], [
]>;
class GoldmontProc<string Name> : ProcModel<Name, SLMModel,
GLMFeatures.Value, [ ProcIntelGLM ]>;
GLMFeatures.Value, [
ProcIntelGLM,
FeaturePOPCNTFalseDeps
]>;
def : GoldmontProc<"goldmont">;
class GoldmontPlusProc<string Name> : ProcModel<Name, SLMModel,

View File

@ -1,6 +1,8 @@
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=haswell -mattr=+lzcnt | FileCheck %s --check-prefix=HSW
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=skylake -mattr=+lzcnt | FileCheck %s --check-prefix=SKL
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=skx -mattr=+lzcnt | FileCheck %s --check-prefix=SKL
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=haswell | FileCheck %s --check-prefix=HSW
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=skylake | FileCheck %s --check-prefix=SKL
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=skx | FileCheck %s --check-prefix=SKL
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=silvermont -mattr=+lzcnt,+bmi | FileCheck %s --check-prefix=SKL
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=goldmont -mattr=+lzcnt,+bmi | FileCheck %s --check-prefix=SKL
; This tests a fix for bugzilla 33869 https://bugs.llvm.org/show_bug.cgi?id=33869