[llvm] r347095 - [X86] Remove a branch on SSE4.1 from LowerLoad
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 16 13:05:01 PST 2018
Author: ctopper
Date: Fri Nov 16 13:05:00 2018
New Revision: 347095
URL: http://llvm.org/viewvc/llvm-project?rev=347095&view=rev
Log:
[X86] Remove a branch on SSE4.1 from LowerLoad
We should be able to use getExtendInVec with or without sse4.1 to produce a SIGN_EXTEND_VECTOR_INREG.
Modified:
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=347095&r1=347094&r2=347095&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Fri Nov 16 13:05:00 2018
@@ -20327,20 +20327,8 @@ static SDValue LowerLoad(SDValue Op, con
unsigned SizeRatio = RegSz / MemSz;
if (Ext == ISD::SEXTLOAD) {
- // If we have SSE4.1, we can directly emit a sext/sext_invec node.
- if (Subtarget.hasSSE41()) {
- SDValue Sext = getExtendInVec(/*Signed*/true, dl, RegVT, SlicedVec, DAG);
- return DAG.getMergeValues({Sext, TF}, dl);
- }
-
- // Otherwise we'll use SIGN_EXTEND_VECTOR_INREG to sign extend the lowest
- // lanes.
- assert(TLI.isOperationLegalOrCustom(ISD::SIGN_EXTEND_VECTOR_INREG, RegVT) &&
- "We can't implement a sext load without SIGN_EXTEND_VECTOR_INREG!");
-
- SDValue Shuff = DAG.getNode(ISD::SIGN_EXTEND_VECTOR_INREG, dl, RegVT,
- SlicedVec);
- return DAG.getMergeValues({Shuff, TF}, dl);
+ SDValue Sext = getExtendInVec(/*Signed*/true, dl, RegVT, SlicedVec, DAG);
+ return DAG.getMergeValues({Sext, TF}, dl);
}
if (Ext == ISD::EXTLOAD && !Subtarget.hasBWI() && RegVT == MVT::v8i64 &&
More information about the llvm-commits
mailing list