summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2014-03-16 16:33:25 +0000
committerdim <dim@FreeBSD.org>2014-03-16 16:33:25 +0000
commitfc82e35795328dcae8a2d3db67e26d11c85d3dd5 (patch)
tree1725369197c2a7c4bbfde586c24446066b367f19
parent394eaed7a53ca7a3c3e21479e56edd8e009e8f67 (diff)
downloadFreeBSD-src-fc82e35795328dcae8a2d3db67e26d11c85d3dd5.zip
FreeBSD-src-fc82e35795328dcae8a2d3db67e26d11c85d3dd5.tar.gz
Pull in r192123 from upstream llvm trunk (by Benjamin Kramer):
X86: Fix type check. Just because an integer type is illegal doesn't mean it's i64. Fixes PR17495, where an i24 triggered this code. It's intended to optimize i64 loads on 32 bit x86. Fixes "Cannot select" fatal errors when building the audio/jack port with ALSA support turned on. This is a direct commit to stable/9 and stable/10, since head already has the commit as part of an upgrade to llvm/clang 3.4. Reported by: Radim Kolar <hsn@sendmail.cz> via http://llvm.org/bugs/
-rw-r--r--contrib/llvm/lib/Target/X86/X86ISelLowering.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp b/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
index c3e69e0..d5adb89 100644
--- a/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -17669,7 +17669,7 @@ static SDValue PerformSINT_TO_FPCombine(SDNode *N, SelectionDAG &DAG,
if (!Ld->isVolatile() && !N->getValueType(0).isVector() &&
ISD::isNON_EXTLoad(Op0.getNode()) && Op0.hasOneUse() &&
!XTLI->getSubtarget()->is64Bit() &&
- !DAG.getTargetLoweringInfo().isTypeLegal(VT)) {
+ VT == MVT::i64) {
SDValue FILDChain = XTLI->BuildFILD(SDValue(N, 0), Ld->getValueType(0),
Ld->getChain(), Op0, DAG);
DAG.ReplaceAllUsesOfValueWith(Op0.getValue(1), FILDChain.getValue(1));
OpenPOWER on IntegriCloud