[llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
Chris Lattner
sabre at nondot.org
Fri Nov 10 15:39:08 PST 2006
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.
More information about the llvm-commits
mailing list