diff options
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 2 | 
1 files changed, 1 insertions, 1 deletions
| diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index 39634735949..e895b045f1d 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -797,7 +797,7 @@ bool X86DAGToDAGISel::SelectScalarSSELoad(SDOperand N, SDOperand &Base,                                            SDOperand &OutChain) {    if (N.getOpcode() == ISD::SCALAR_TO_VECTOR) {      InChain = N.getOperand(0).getValue(1); -    if (ISD::isNON_EXTLoad(InChain.Val)) { +    if (ISD::isNON_EXTLoad(InChain.Val) && InChain.getValue(0).hasOneUse()) {        LoadSDNode *LD = cast<LoadSDNode>(InChain);        if (!SelectAddr(LD->getBasePtr(), Base, Scale, Index, Disp))          return false; | 

