diff options
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp index dff9b2c36ab..172819369df 100644 --- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -2464,7 +2464,8 @@ TargetLowering::SimplifySetCC(EVT VT, SDValue N0, SDValue N1,      // Otherwise, we can't fold it.  However, we can simplify it to SETUO/SETO      // if it is not already.      ISD::CondCode NewCond = UOF == 0 ? ISD::SETO : ISD::SETUO; -    if (NewCond != Cond) +    if (NewCond != Cond && (DCI.isBeforeLegalizeOps()  +        || getCondCodeAction(NewCond, N0.getValueType()) == Legal))        return DAG.getSetCC(dl, VT, N0, N1, NewCond);    }  | 

