forked from OSchip/llvm-project
[DAGCombine] Use FoldConstantArithmetic() to perform C2-(A+C1) -> (C2-C1)-A fold
Summary: No tests change, and i'm not sure how to test this, but it's better safe than sorry. Reviewers: spatel, RKSimon, craig.topper, t.p.northover Reviewed By: craig.topper Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62663 llvm-svn: 362132
This commit is contained in:
parent
cc9a9cf237
commit
9ff3159b4a
|
@ -2868,7 +2868,9 @@ SDValue DAGCombiner::visitSUB(SDNode *N) {
|
|||
SDValue N11 = N1.getOperand(1);
|
||||
if (isConstantOrConstantVector(N0, /* NoOpaques */ true) &&
|
||||
isConstantOrConstantVector(N11, /* NoOpaques */ true)) {
|
||||
SDValue NewC = DAG.getNode(ISD::SUB, DL, VT, N0, N11);
|
||||
SDValue NewC = DAG.FoldConstantArithmetic(ISD::SUB, DL, VT, N0.getNode(),
|
||||
N11.getNode());
|
||||
assert(NewC && "Constant folding failed");
|
||||
return DAG.getNode(ISD::SUB, DL, VT, NewC, N1.getOperand(0));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue