summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2018-08-27 14:20:15 +0000
committerSanjay Patel <spatel@rotateright.com>2018-08-27 14:20:15 +0000
commitf64592787570b6e42507b15c56c29a4b45aeb0b2 (patch)
tree22b9a8bf12e4a5cfa177379852e825c1cbbb5784 /llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
parent5d06f17b8a4717dea5c75d36c26c4927e6633a01 (diff)
downloadbcm5719-llvm-f64592787570b6e42507b15c56c29a4b45aeb0b2.tar.gz
bcm5719-llvm-f64592787570b6e42507b15c56c29a4b45aeb0b2.zip
[SelectionDAG] add helper query for binops; NFC
We will also use this in a planned enhancement for vector insertelement. llvm-svn: 340741
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