diff options
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 9ba8f1e8e01..1c488ae0dda 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -26150,10 +26150,10 @@ static SDValue combineSelect(SDNode *N, SelectionDAG &DAG,  // where Op could be BRCOND or CMOV.  //  static SDValue checkBoolTestSetCCCombine(SDValue Cmp, X86::CondCode &CC) { -  // Quit if not CMP and SUB with its value result used. -  if (Cmp.getOpcode() != X86ISD::CMP && -      (Cmp.getOpcode() != X86ISD::SUB || Cmp.getNode()->hasAnyUseOfValue(0))) -      return SDValue(); +  // This combine only operates on CMP-like nodes. +  if (!(Cmp.getOpcode() == X86ISD::CMP || +        (Cmp.getOpcode() == X86ISD::SUB && !Cmp->hasAnyUseOfValue(0)))) +    return SDValue();    // Quit if not used as a boolean value.    if (CC != X86::COND_E && CC != X86::COND_NE)  | 

