mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-11 23:16:11 +00:00
fix formatting; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282737 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9b04a40821
commit
a18c5f6c3f
@ -920,28 +920,26 @@ static Instruction *foldAddSubSelect(SelectInst &SI,
|
||||
/// we may be able to create an i1 select which can be further folded to
|
||||
/// logical ops.
|
||||
static Instruction *foldSelectExtConst(InstCombiner::BuilderTy &Builder,
|
||||
SelectInst &SI, Instruction *EI,
|
||||
const APInt &C, bool isExtTrueVal,
|
||||
bool isSigned) {
|
||||
Value *SmallVal = EI->getOperand(0);
|
||||
SelectInst &SI, Instruction *ExtInst,
|
||||
const APInt &C, bool IsExtTrueVal,
|
||||
bool IsSigned) {
|
||||
Value *SmallVal = ExtInst->getOperand(0);
|
||||
Type *SmallType = SmallVal->getType();
|
||||
|
||||
// TODO Handle larger types as well? Note this requires adjusting
|
||||
// FoldOpIntoSelect as well.
|
||||
// TODO: Handle larger types? That requires adjusting FoldOpIntoSelect too.
|
||||
if (!SmallType->getScalarType()->isIntegerTy(1))
|
||||
return nullptr;
|
||||
|
||||
if (C != 0 && (isSigned || C != 1) &&
|
||||
(!isSigned || !C.isAllOnesValue()))
|
||||
if (C != 0 && (IsSigned || C != 1) && (!IsSigned || !C.isAllOnesValue()))
|
||||
return nullptr;
|
||||
|
||||
Value *SmallConst = ConstantInt::get(SmallType, C.trunc(1));
|
||||
Value *TrueVal = isExtTrueVal ? SmallVal : SmallConst;
|
||||
Value *FalseVal = isExtTrueVal ? SmallConst : SmallVal;
|
||||
Value *TrueVal = IsExtTrueVal ? SmallVal : SmallConst;
|
||||
Value *FalseVal = IsExtTrueVal ? SmallConst : SmallVal;
|
||||
Value *Select = Builder.CreateSelect(SI.getOperand(0), TrueVal, FalseVal,
|
||||
"fold." + SI.getName(), &SI);
|
||||
|
||||
if (isSigned)
|
||||
if (IsSigned)
|
||||
return new SExtInst(Select, SI.getType());
|
||||
|
||||
return new ZExtInst(Select, SI.getType());
|
||||
|
Loading…
x
Reference in New Issue
Block a user