Lines Matching defs:WideIV

648     auto *WideIV = cast<VPWidenIntOrFpInductionRecipe>(&Phi);
649 if (HasOnlyVectorVFs && none_of(WideIV->users(), [WideIV](VPUser *U) {
650 return U->usesScalars(WideIV);
654 const InductionDescriptor &ID = WideIV->getInductionDescriptor();
658 WideIV->getTruncInst(), WideIV->getStartValue(), WideIV->getStepValue(),
659 WideIV->getDebugLoc(), Builder);
663 WideIV->replaceAllUsesWith(Steps);
665 WideIV->replaceUsesWithIf(Steps, [WideIV](VPUser &U, unsigned) {
666 return U.usesScalars(WideIV);
675 auto *WideIV = dyn_cast<VPWidenInductionRecipe>(VPV);
676 if (WideIV) {
679 auto *IntOrFpIV = dyn_cast<VPWidenIntOrFpInductionRecipe>(WideIV);
680 return (IntOrFpIV && IntOrFpIV->getTruncInst()) ? nullptr : WideIV;
687 WideIV = dyn_cast<VPWidenInductionRecipe>(Def->getOperand(0));
688 if (!WideIV)
689 WideIV = dyn_cast<VPWidenInductionRecipe>(Def->getOperand(1));
690 if (!WideIV)
695 auto &ID = WideIV->getInductionDescriptor();
698 VPValue *IVStep = WideIV->getStepValue();
701 return match(VPV, m_c_Binary<Instruction::Add>(m_Specific(WideIV),
704 return match(VPV, m_c_Binary<Instruction::FAdd>(m_Specific(WideIV),
707 return match(VPV, m_Binary<Instruction::FSub>(m_Specific(WideIV),
724 match(VPV, m_GetElementPtr(m_Specific(WideIV),
725 m_Specific(WideIV->getStepValue())));
729 return IsWideIVInc() ? WideIV : nullptr;
759 auto *WideIV = getOptimizableIVOf(Incoming);
760 if (!WideIV)
762 VPValue *EndValue = EndValues.lookup(WideIV);
765 if (Incoming != WideIV) {
771 VPValue *Step = WideIV->getStepValue();
772 Type *ScalarTy = TypeInfo.inferScalarType(WideIV);
783 const auto &ID = WideIV->getInductionDescriptor();