Changes in directory llvm/lib/CodeGen/SelectionDAG:
DAGCombiner.cpp updated: 1.171 -> 1.172 --- Log message: visitVBinOp: Can't fold divide by zero! --- Diffs of the changes: (+8 -0) DAGCombiner.cpp | 8 ++++++++ 1 files changed, 8 insertions(+) Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp diff -u llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.171 llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.172 --- llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.171 Fri May 26 19:43:02 2006 +++ llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Wed May 31 01:08:35 2006 @@ -2778,6 +2778,14 @@ RHSOp.getOpcode() != ISD::Constant && RHSOp.getOpcode() != ISD::ConstantFP)) break; + // Can't fold divide by zero. + if (N->getOpcode() == ISD::VSDIV || N->getOpcode() == ISD::VUDIV) { + if ((RHSOp.getOpcode() == ISD::Constant && + cast<ConstantSDNode>(RHSOp.Val)->isNullValue()) || + (RHSOp.getOpcode() == ISD::ConstantFP && + !cast<ConstantFPSDNode>(RHSOp.Val)->getValue())) + break; + } Ops.push_back(DAG.getNode(ScalarOp, EltType, LHSOp, RHSOp)); AddToWorkList(Ops.back().Val); assert((Ops.back().getOpcode() == ISD::UNDEF || _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits