Changes in directory llvm/lib/Transforms/Scalar:

InstructionCombining.cpp updated: 1.541 -> 1.542
---
Log message:

Fix InstCombine/2006-11-10-ashr-miscompile.ll a miscompilation introduced
by the shr -> [al]shr patch.  This was reduced from 176.gcc.


---
Diffs of the changes:  (+3 -3)

 InstructionCombining.cpp |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)


Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.541 
llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.542
--- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.541   Wed Nov  8 
23:12:27 2006
+++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Fri Nov 10 17:38:52 2006
@@ -5082,10 +5082,10 @@
       return ReplaceInstUsesWith(I, Op0);          // X >>s undef -> X
   }
 
-  // shr int -1, X = -1   (for any arithmetic shift rights of ~0)
-  if (!isLeftShift)
+  // ashr int -1, X = -1   (for any arithmetic shift rights of ~0)
+  if (I.getOpcode() == Instruction::AShr)
     if (ConstantInt *CSI = dyn_cast<ConstantInt>(Op0))
-      if (CSI->isAllOnesValue() && Op0->getType()->isSigned())
+      if (CSI->isAllOnesValue())
         return ReplaceInstUsesWith(I, CSI);
 
   // Try to fold constant and into select arguments.



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

Reply via email to