mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-19 04:29:21 +00:00
Use APInt operation instead of ConstantExpr::getXX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35503 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0642f75836
commit
90b9681886
@ -5658,9 +5658,9 @@ Instruction *InstCombiner::FoldShiftByConstant(Value *Op0, ConstantInt *Op1,
|
||||
BinaryOperator::create(Op0BO->getOpcode(), YS, V1,
|
||||
Op0BO->getOperand(1)->getName());
|
||||
InsertNewInstBefore(X, I); // (X + (Y << C))
|
||||
Constant *C2 = ConstantInt::getAllOnesValue(X->getType());
|
||||
C2 = ConstantExpr::getShl(C2, Op1);
|
||||
return BinaryOperator::createAnd(X, C2);
|
||||
uint32_t Op1Val = Op1->getZExtValue();
|
||||
return BinaryOperator::createAnd(X, ConstantInt::get(
|
||||
APInt::getHighBitsSet(TypeBits, TypeBits-Op1Val)));
|
||||
}
|
||||
|
||||
// Turn (Y + ((X >> C) & CC)) << C -> ((X & (CC << C)) + (Y << C))
|
||||
@ -5697,9 +5697,9 @@ Instruction *InstCombiner::FoldShiftByConstant(Value *Op0, ConstantInt *Op1,
|
||||
BinaryOperator::create(Op0BO->getOpcode(), V1, YS,
|
||||
Op0BO->getOperand(0)->getName());
|
||||
InsertNewInstBefore(X, I); // (X + (Y << C))
|
||||
Constant *C2 = ConstantInt::getAllOnesValue(X->getType());
|
||||
C2 = ConstantExpr::getShl(C2, Op1);
|
||||
return BinaryOperator::createAnd(X, C2);
|
||||
uint32_t Op1Val = Op1->getZExtValue();
|
||||
return BinaryOperator::createAnd(X, ConstantInt::get(
|
||||
APInt::getHighBitsSet(TypeBits, TypeBits-Op1Val)));
|
||||
}
|
||||
|
||||
// Turn (((X >> C)&CC) + Y) << C -> (X + (Y << C)) & (CC << C)
|
||||
|
Loading…
Reference in New Issue
Block a user