[llvm] r337067 - [X86][SLH] Remove PDEP and PEXT from isDataInvariantLoad
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 13 15:41:52 PDT 2018
Author: ctopper
Date: Fri Jul 13 15:41:52 2018
New Revision: 337067
URL: http://llvm.org/viewvc/llvm-project?rev=337067&view=rev
Log:
[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
Modified:
llvm/trunk/lib/Target/X86/X86SpeculativeLoadHardening.cpp
Modified: llvm/trunk/lib/Target/X86/X86SpeculativeLoadHardening.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SpeculativeLoadHardening.cpp?rev=337067&r1=337066&r2=337067&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SpeculativeLoadHardening.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86SpeculativeLoadHardening.cpp Fri Jul 13 15:41:52 2018
@@ -924,10 +924,6 @@ static bool isDataInvariantLoad(MachineI
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:
More information about the llvm-commits
mailing list