Lines Matching refs:ICI
521 ICmpInst *ICI = dyn_cast<ICmpInst>(U); in eliminateTrunc() local
522 if (!ICI) return false; in eliminateTrunc()
523 assert(L->contains(ICI->getParent()) && "LCSSA form broken?"); in eliminateTrunc()
524 if (!(ICI->getOperand(0) == TI && L->isLoopInvariant(ICI->getOperand(1))) && in eliminateTrunc()
525 !(ICI->getOperand(1) == TI && L->isLoopInvariant(ICI->getOperand(0)))) in eliminateTrunc()
528 if (ICI->isSigned() && !DoesSExtCollapse) in eliminateTrunc()
530 if (ICI->isUnsigned() && !DoesZExtCollapse) in eliminateTrunc()
533 ICmpUsers.push_back(ICI); in eliminateTrunc()
536 auto CanUseZExt = [&](ICmpInst *ICI) { in eliminateTrunc() argument
538 if (ICI->isUnsigned()) in eliminateTrunc()
544 if (ICI->isEquality()) in eliminateTrunc()
550 const SCEV *SCEVOP1 = SE->getSCEV(ICI->getOperand(0)); in eliminateTrunc()
551 const SCEV *SCEVOP2 = SE->getSCEV(ICI->getOperand(1)); in eliminateTrunc()
555 for (auto *ICI : ICmpUsers) { in eliminateTrunc() local
556 bool IsSwapped = L->isLoopInvariant(ICI->getOperand(0)); in eliminateTrunc()
557 auto *Op1 = IsSwapped ? ICI->getOperand(0) : ICI->getOperand(1); in eliminateTrunc()
558 IRBuilder<> Builder(ICI); in eliminateTrunc()
566 ICmpInst::Predicate Pred = ICI->getPredicate(); in eliminateTrunc()
568 if (CanUseZExt(ICI)) { in eliminateTrunc()
581 ICI->replaceAllUsesWith(NewCmp); in eliminateTrunc()
582 DeadInsts.emplace_back(ICI); in eliminateTrunc()