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