diff options
| author | Chris Lattner <sabre@nondot.org> | 2007-03-24 23:56:43 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2007-03-24 23:56:43 +0000 |
| commit | 3a8248f79dd0b233ac3f455053a6e5f6fc0dc433 (patch) | |
| tree | ddaad0c55ce8d0670bb43e90befcedcdf1576cd2 /llvm/lib | |
| parent | 42fbb4fbe3bf58c15055d64a91e8eaa4a27ed87f (diff) | |
| download | bcm5719-llvm-3a8248f79dd0b233ac3f455053a6e5f6fc0dc433.tar.gz bcm5719-llvm-3a8248f79dd0b233ac3f455053a6e5f6fc0dc433.zip | |
fix a regression on vector or instructions.
llvm-svn: 35314
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/InstructionCombining.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp index b189503c2af..461b0a01fbd 100644 --- a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp @@ -3636,9 +3636,8 @@ Instruction *InstCombiner::visitOr(BinaryOperator &I) { bool Changed = SimplifyCommutative(I); Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); - if (isa<UndefValue>(Op1)) - return ReplaceInstUsesWith(I, // X | undef -> -1 - ConstantInt::getAllOnesValue(I.getType())); + if (isa<UndefValue>(Op1)) // X | undef -> -1 + return ReplaceInstUsesWith(I, ConstantInt::getAllOnesValue(I.getType())); // or X, X = X if (Op0 == Op1) @@ -3646,12 +3645,13 @@ Instruction *InstCombiner::visitOr(BinaryOperator &I) { // See if we can simplify any instructions used by the instruction whose sole // purpose is to compute bits we don't care about. - uint32_t BitWidth = cast<IntegerType>(I.getType())->getBitWidth(); - APInt KnownZero(BitWidth, 0), KnownOne(BitWidth, 0); - if (!isa<VectorType>(I.getType()) && - SimplifyDemandedBits(&I, APInt::getAllOnesValue(BitWidth), - KnownZero, KnownOne)) - return &I; + if (!isa<VectorType>(I.getType())) { + uint32_t BitWidth = cast<IntegerType>(I.getType())->getBitWidth(); + APInt KnownZero(BitWidth, 0), KnownOne(BitWidth, 0); + if (SimplifyDemandedBits(&I, APInt::getAllOnesValue(BitWidth), + KnownZero, KnownOne)) + return &I; + } // or X, -1 == -1 if (ConstantInt *RHS = dyn_cast<ConstantInt>(Op1)) { |

