From 7cd0250e8e6d7abb1cb62346a34877fda9624625 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Fri, 13 Jul 2018 22:41:52 +0000 Subject: [PATCH] [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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337067 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86SpeculativeLoadHardening.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/Target/X86/X86SpeculativeLoadHardening.cpp b/lib/Target/X86/X86SpeculativeLoadHardening.cpp index 9f5f36b3458..e5325cc542a 100644 --- a/lib/Target/X86/X86SpeculativeLoadHardening.cpp +++ b/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: -- 2.50.1