diff options
author | dim <dim@FreeBSD.org> | 2014-03-16 16:33:25 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2014-03-16 16:33:25 +0000 |
commit | fc82e35795328dcae8a2d3db67e26d11c85d3dd5 (patch) | |
tree | 1725369197c2a7c4bbfde586c24446066b367f19 /contrib/llvm/lib | |
parent | 394eaed7a53ca7a3c3e21479e56edd8e009e8f67 (diff) | |
download | FreeBSD-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/
Diffstat (limited to 'contrib/llvm/lib')
-rw-r--r-- | contrib/llvm/lib/Target/X86/X86ISelLowering.cpp | 2 |
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)); |