isReassociableOp(Sub->getOperand(0), Instruction::Sub))
return true;
if (isReassociableOp(Sub->getOperand(1), Instruction::Add) ||
- isReassociableOp(Sub->getOperand(0), Instruction::Sub))
+ isReassociableOp(Sub->getOperand(1), Instruction::Sub))
return true;
if (Sub->hasOneUse() &&
(isReassociableOp(Sub->use_back(), Instruction::Add) ||
// see if we can convert it to X+-Y.
if (BI->getOpcode() == Instruction::Sub) {
if (ShouldBreakUpSubtract(BI)) {
- if (Instruction *NI = BreakUpSubtract(BI)) {
- MadeChange = true;
- BI = NI;
- }
+ BI = BreakUpSubtract(BI);
+ MadeChange = true;
} else if (BinaryOperator::isNeg(BI)) {
// Otherwise, this is a negation. See if the operand is a multiply tree
// and if this is not an inner node of a multiply tree.