Fix Transforms/InstCombine/2006-06-28-infloop.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28961 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2006-06-28 17:34:50 +00:00
parent f363ce2de7
commit d228018396

View File

@ -4934,6 +4934,12 @@ static bool CanEvaluateInDifferentType(Value *V, const Type *Ty,
// If this is a cast from the destination type, we can trivially eliminate
// it, and this will remove a cast overall.
if (I->getOperand(0)->getType() == Ty) {
// If the first operand is itself a cast, and is eliminable, do not count
// this as an eliminable cast. We would prefer to eliminate those two
// casts first.
if (CastInst *OpCast = dyn_cast<CastInst>(I->getOperand(0)))
return true;
++NumCastsRemoved;
return true;
}