mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-12 18:33:22 +00:00
fix a regression on vector or instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35314 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
758d1bc919
commit
42593e69e2
@ -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)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user