Author: lattner
Date: Mon Feb 18 11:50:16 2008
New Revision: 47276

URL: http://llvm.org/viewvc/llvm-project?rev=47276&view=rev
Log:
Transforming -A + -B  -->  -(A + B) isn't safe for FP, thanks
to Dale for noticing this!

Modified:
    llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=47276&r1=47275&r2=47276&view=diff

==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Mon Feb 18 
11:50:16 2008
@@ -2092,10 +2092,12 @@
   // -A + B  -->  B - A
   // -A + -B  -->  -(A + B)
   if (Value *LHSV = dyn_castNegVal(LHS)) {
-    if (Value *RHSV = dyn_castNegVal(RHS)) {
-      Instruction *NewAdd = BinaryOperator::createAdd(LHSV, RHSV, "sum");
-      InsertNewInstBefore(NewAdd, I);
-      return BinaryOperator::createNeg(NewAdd);
+    if (LHS->getType()->isIntOrIntVector()) {
+      if (Value *RHSV = dyn_castNegVal(RHS)) {
+        Instruction *NewAdd = BinaryOperator::createAdd(LHSV, RHSV, "sum");
+        InsertNewInstBefore(NewAdd, I);
+        return BinaryOperator::createNeg(NewAdd);
+      }
     }
     
     return BinaryOperator::createSub(RHS, LHSV);


_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to