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/
This commit is contained in:
parent
394eaed7a5
commit
fc82e35795
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user