diff --git a/lib/Target/X86/X86ISelPattern.cpp b/lib/Target/X86/X86ISelPattern.cpp index 194c2fa517c..cc22506295f 100644 --- a/lib/Target/X86/X86ISelPattern.cpp +++ b/lib/Target/X86/X86ISelPattern.cpp @@ -979,7 +979,8 @@ bool ISel::isFoldableLoad(SDOperand Op) { // If this load has already been emitted, we clearly can't fold it. if (ExprMap.count(Op)) return false; - return Op.Val->use_size() == 2; + // Finally, there can only be one use of its value. + return Op.Val->hasNUsesOfValue(1, 0); } /// EmitFoldedLoad - Ensure that the arguments of the load are code generated,