Changes in directory llvm/lib/Transforms/Scalar:
InstructionCombining.cpp updated: 1.556 -> 1.557 --- Log message: disable transformations that are invalid for fp vectors. This fixes Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll --- Diffs of the changes: (+4 -4) InstructionCombining.cpp | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.556 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.557 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.556 Thu Nov 30 17:13:36 2006 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Fri Dec 1 18:13:08 2006 @@ -1715,7 +1715,7 @@ return ReplaceInstUsesWith(I, RHS); // X + 0 --> X - if (!I.getType()->isFloatingPoint()) { // NOTE: -0 + +0 = +0. + if (!I.getType()->isFPOrFPVector()) { // NOTE: -0 + +0 = +0. if (RHSC->isNullValue()) return ReplaceInstUsesWith(I, LHS); } else if (ConstantFP *CFP = dyn_cast<ConstantFP>(RHSC)) { @@ -1991,7 +1991,7 @@ if (BinaryOperator *Op1I = dyn_cast<BinaryOperator>(Op1)) { if (Op1I->getOpcode() == Instruction::Add && - !Op0->getType()->isFloatingPoint()) { + !Op0->getType()->isFPOrFPVector()) { if (Op1I->getOperand(0) == Op0) // X-(X+Y) == -Y return BinaryOperator::createNeg(Op1I->getOperand(1), I.getName()); else if (Op1I->getOperand(1) == Op0) // X-(Y+X) == -Y @@ -2009,7 +2009,7 @@ // is not used by anyone else... // if (Op1I->getOpcode() == Instruction::Sub && - !Op1I->getType()->isFloatingPoint()) { + !Op1I->getType()->isFPOrFPVector()) { // Swap the two operands of the subexpr... Value *IIOp0 = Op1I->getOperand(0), *IIOp1 = Op1I->getOperand(1); Op1I->setOperand(0, IIOp1); @@ -2048,7 +2048,7 @@ } } - if (!Op0->getType()->isFloatingPoint()) + if (!Op0->getType()->isFPOrFPVector()) if (BinaryOperator *Op0I = dyn_cast<BinaryOperator>(Op0)) if (Op0I->getOpcode() == Instruction::Add) { if (Op0I->getOperand(0) == Op1) // (Y+X)-Y == X _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits