mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-04 17:56:53 +00:00
[InstCombine] use SelectInst operand names to make code clearer; NFC
Cleanup step for D51433. llvm-svn: 341850
This commit is contained in:
parent
2a2e81425b
commit
6ec4a8b575
@ -1260,13 +1260,15 @@ Value *InstCombiner::SimplifyDemandedVectorElts(Value *V, APInt DemandedElts,
|
||||
break;
|
||||
}
|
||||
case Instruction::Select: {
|
||||
SelectInst *Sel = cast<SelectInst>(I);
|
||||
Value *Cond = Sel->getCondition();
|
||||
|
||||
APInt DemandedLHS(DemandedElts), DemandedRHS(DemandedElts);
|
||||
if (auto *CV = dyn_cast<ConstantVector>(I->getOperand(0))) {
|
||||
if (auto *CV = dyn_cast<ConstantVector>(Cond)) {
|
||||
for (unsigned i = 0; i < VWidth; i++) {
|
||||
// isNullValue() always returns false when called on a ConstantExpr.
|
||||
// Skip constant expressions to avoid propagating incorrect information.
|
||||
Constant *CElt = CV->getAggregateElement(i);
|
||||
// Method isNullValue always returns false when called on a
|
||||
// ConstantExpr. If CElt is a ConstantExpr then skip it in order to
|
||||
// to avoid propagating incorrect information.
|
||||
if (isa<ConstantExpr>(CElt))
|
||||
continue;
|
||||
if (CElt->isNullValue())
|
||||
@ -1276,15 +1278,15 @@ Value *InstCombiner::SimplifyDemandedVectorElts(Value *V, APInt DemandedElts,
|
||||
}
|
||||
}
|
||||
|
||||
if (Value *V = SimplifyDemandedVectorElts(I->getOperand(1), DemandedLHS,
|
||||
if (Value *V = SimplifyDemandedVectorElts(Sel->getTrueValue(), DemandedLHS,
|
||||
UndefElts2, Depth + 1)) {
|
||||
I->setOperand(1, V);
|
||||
Sel->setTrueValue(V);
|
||||
MadeChange = true;
|
||||
}
|
||||
|
||||
if (Value *V = SimplifyDemandedVectorElts(I->getOperand(2), DemandedRHS,
|
||||
if (Value *V = SimplifyDemandedVectorElts(Sel->getFalseValue(), DemandedRHS,
|
||||
UndefElts3, Depth + 1)) {
|
||||
I->setOperand(2, V);
|
||||
Sel->setFalseValue(V);
|
||||
MadeChange = true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user