summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp13
1 files changed, 2 insertions, 11 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
index d894d8d5530..44fdbc1b3d0 100644
--- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -1874,17 +1874,7 @@ static ConstantSDNode *getAsNonOpaqueConstant(SDValue N) {
}
SDValue DAGCombiner::foldBinOpIntoSelect(SDNode *BO) {
- auto BinOpcode = BO->getOpcode();
- assert((BinOpcode == ISD::ADD || BinOpcode == ISD::SUB ||
- BinOpcode == ISD::MUL || BinOpcode == ISD::SDIV ||
- BinOpcode == ISD::UDIV || BinOpcode == ISD::SREM ||
- BinOpcode == ISD::UREM || BinOpcode == ISD::AND ||
- BinOpcode == ISD::OR || BinOpcode == ISD::XOR ||
- BinOpcode == ISD::SHL || BinOpcode == ISD::SRL ||
- BinOpcode == ISD::SRA || BinOpcode == ISD::FADD ||
- BinOpcode == ISD::FSUB || BinOpcode == ISD::FMUL ||
- BinOpcode == ISD::FDIV || BinOpcode == ISD::FREM) &&
- "Unexpected binary operator");
+ assert(ISD::isBinaryOp(BO) && "Unexpected binary operator");
// Don't do this unless the old select is going away. We want to eliminate the
// binary operator, not replace a binop with a select.
@@ -1914,6 +1904,7 @@ SDValue DAGCombiner::foldBinOpIntoSelect(SDNode *BO) {
// propagate non constant operands into select. I.e.:
// and (select Cond, 0, -1), X --> select Cond, 0, X
// or X, (select Cond, -1, 0) --> select Cond, -1, X
+ auto BinOpcode = BO->getOpcode();
bool CanFoldNonConst = (BinOpcode == ISD::AND || BinOpcode == ISD::OR) &&
(isNullConstantOrNullSplatConstant(CT) ||
isAllOnesConstantOrAllOnesSplatConstant(CT)) &&
OpenPOWER on IntegriCloud