eliminate uses of SelectionDAG::getBR2Way_CC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25767 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index 7a3c506..f89b237 100644
--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -749,14 +749,22 @@
// BRCOND/BR pair.
if (TLI.isOperationLegal(ISD::BRTWOWAY_CC, MVT::Other)) {
if (Tmp2.getOpcode() == ISD::SETCC) {
- Result = DAG.getBR2Way_CC(Tmp1, Tmp2.getOperand(2),
- Tmp2.getOperand(0), Tmp2.getOperand(1),
- Node->getOperand(2), Node->getOperand(3));
+ Tmp3 = Tmp2.getOperand(0);
+ Tmp4 = Tmp2.getOperand(1);
+ Tmp2 = Tmp2.getOperand(2);
} else {
- Result = DAG.getBR2Way_CC(Tmp1, DAG.getCondCode(ISD::SETNE), Tmp2,
- DAG.getConstant(0, Tmp2.getValueType()),
- Node->getOperand(2), Node->getOperand(3));
+ Tmp3 = Tmp2;
+ Tmp4 = DAG.getConstant(0, Tmp2.getValueType());
+ Tmp2 = DAG.getCondCode(ISD::SETNE);
}
+ std::vector<SDOperand> Ops;
+ Ops.push_back(Tmp1);
+ Ops.push_back(Tmp2);
+ Ops.push_back(Tmp3);
+ Ops.push_back(Tmp4);
+ Ops.push_back(Node->getOperand(2));
+ Ops.push_back(Node->getOperand(3));
+ Result = DAG.getNode(ISD::BRTWOWAY_CC, MVT::Other, Ops);
} else {
Result = DAG.getNode(ISD::BRCOND, MVT::Other, Tmp1, Tmp2,
Node->getOperand(2));