svn commit: r306302 - projects/clang390-import/contrib/llvm/lib/Target/X86
Dimitry Andric
dim at FreeBSD.org
Sat Sep 24 20:53:06 UTC 2016
Author: dim
Date: Sat Sep 24 20:53:05 2016
New Revision: 306302
URL: https://svnweb.freebsd.org/changeset/base/306302
Log:
Pull in r282336 from upstream llvm trunk (by Sanjay Patel):
[x86] don't try to create a vector integer inst for an SSE1 target
(PR30512)
This bug was introduced with:
http://reviews.llvm.org/rL272511
We need to restrict the lowering to v4f32 comparisons because that's
all SSE1 can handle.
This should fix:
https://llvm.org/bugs/show_bug.cgi?id=28044
This avoids a "Do not know how to custom type legalize this operation"
error when building the multimedia/ffmpeg port on i386 with SSE enabled.
Modified:
projects/clang390-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
Modified: projects/clang390-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
==============================================================================
--- projects/clang390-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Sat Sep 24 19:03:05 2016 (r306301)
+++ projects/clang390-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Sat Sep 24 20:53:05 2016 (r306302)
@@ -30358,9 +30358,10 @@ static SDValue combineSetCC(SDNode *N, S
}
}
- // For an SSE1-only target, lower to X86ISD::CMPP early to avoid scalarization
- // via legalization because v4i32 is not a legal type.
- if (Subtarget.hasSSE1() && !Subtarget.hasSSE2() && VT == MVT::v4i32)
+ // For an SSE1-only target, lower a comparison of v4f32 to X86ISD::CMPP early
+ // to avoid scalarization via legalization because v4i32 is not a legal type.
+ if (Subtarget.hasSSE1() && !Subtarget.hasSSE2() && VT == MVT::v4i32 &&
+ LHS.getValueType() == MVT::v4f32)
return LowerVSETCC(SDValue(N, 0), Subtarget, DAG);
return SDValue();
More information about the svn-src-projects
mailing list