summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-07-13 22:41:52 +0000
committerCraig Topper <craig.topper@intel.com>2018-07-13 22:41:52 +0000
commit8315667d996b0853af5b2dbc13588fd80c51c7b2 (patch)
tree49a8b7a432153b7335dabc3c9e67ec0de42d0d3d
parent41fa8582620616acff5a99f08cc83b3c5b54e9dc (diff)
downloadbcm5719-llvm-8315667d996b0853af5b2dbc13588fd80c51c7b2.tar.gz
bcm5719-llvm-8315667d996b0853af5b2dbc13588fd80c51c7b2.zip
[X86][SLH] Remove PDEP and PEXT from isDataInvariantLoad
Ryzen has something like an 18 cycle latency on these based on Agner's data. AMD's own xls is blank. So it seems like there might be something tricky here. Agner's data for Intel CPUs indicates these are a single uop there. Probably safest to remove them. We never generate them without an intrinsic so this should be ok. Differential Revision: https://reviews.llvm.org/D49315 llvm-svn: 337067
-rw-r--r--llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp4
1 files changed, 0 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp b/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp
index 9f5f36b3458..e5325cc542a 100644
--- a/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp
+++ b/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp
@@ -924,10 +924,6 @@ static bool isDataInvariantLoad(MachineInstr &MI) {
case X86::MULX64rm:
// Arithmetic instructions that are both constant time and don't set flags.
- case X86::PDEP32rm:
- case X86::PDEP64rm:
- case X86::PEXT32rm:
- case X86::PEXT64rm:
case X86::RORX32mi:
case X86::RORX64mi:
case X86::SARX32rm:
OpenPOWER on IntegriCloud