mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-22 03:58:16 +00:00
back this out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27367 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0fb79fa078
commit
cf4fb61f6c
@ -819,31 +819,6 @@ SDOperand DAGCombiner::visitMUL(SDNode *N) {
|
|||||||
TLI.getShiftAmountTy())));
|
TLI.getShiftAmountTy())));
|
||||||
}
|
}
|
||||||
|
|
||||||
//These two might be better as:
|
|
||||||
// mul x, ((1 << c) + cn) -> (x << c) + (x * cn)
|
|
||||||
// where TargetInfo tells us cn is a cheap constant to multiply by
|
|
||||||
|
|
||||||
// fold (mul x, (1 << c) + 1) -> (x << c) + x
|
|
||||||
//FIXME: there should be a target hint to allow other constants based on
|
|
||||||
// expense of mul
|
|
||||||
if (N1C && isPowerOf2_64(N1C->getSignExtended() - 1)) {
|
|
||||||
return DAG.getNode(ISD::ADD, VT,
|
|
||||||
DAG.getNode(ISD::SHL, VT, N0,
|
|
||||||
DAG.getConstant(Log2_64(N1C->getSignExtended() - 1),
|
|
||||||
TLI.getShiftAmountTy())),
|
|
||||||
N0);
|
|
||||||
}
|
|
||||||
// fold (mul x, (1 << c) - 1) -> (x << c) - x
|
|
||||||
//FIXME: there should be a target hint to allow other constants based on
|
|
||||||
// the expense of mul
|
|
||||||
if (N1C && isPowerOf2_64(N1C->getSignExtended() + 1)) {
|
|
||||||
return DAG.getNode(ISD::SUB, VT,
|
|
||||||
DAG.getNode(ISD::SHL, VT, N0,
|
|
||||||
DAG.getConstant(Log2_64(N1C->getSignExtended() + 1),
|
|
||||||
TLI.getShiftAmountTy())),
|
|
||||||
N0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// (mul (shl X, c1), c2) -> (mul X, c2 << c1)
|
// (mul (shl X, c1), c2) -> (mul X, c2 << c1)
|
||||||
if (N1C && N0.getOpcode() == ISD::SHL &&
|
if (N1C && N0.getOpcode() == ISD::SHL &&
|
||||||
isa<ConstantSDNode>(N0.getOperand(1))) {
|
isa<ConstantSDNode>(N0.getOperand(1))) {
|
||||||
|
Loading…
Reference in New Issue
Block a user