Lines Matching refs:ConditionalRecurrence
424 RecurrenceInfo ConditionalRecurrence(L); in getRecurrences() local
430 if (!ConditionalRecurrence) in getRecurrences()
431 ConditionalRecurrence.matchConditionalRecurrence( in getRecurrences()
434 if (NumPhis == 3 && (!SimpleRecurrence || !ConditionalRecurrence)) in getRecurrences()
436 return std::make_pair(SimpleRecurrence, ConditionalRecurrence); in getRecurrences()
574 auto [SimpleRecurrence, ConditionalRecurrence] = *R; in recognizeCRC()
575 if (!ConditionalRecurrence) in recognizeCRC()
581 isBigEndianBitShift(ConditionalRecurrence.BO, SE); in recognizeCRC()
590 if (!ConditionalRecurrence.Phi->hasNUses(2) || in recognizeCRC()
596 if (!isConditionalOnXorOfPHIs(cast<SelectInst>(ConditionalRecurrence.Step), in recognizeCRC()
598 ConditionalRecurrence.Phi, L)) in recognizeCRC()
603 Value *LHS = ConditionalRecurrence.Start; in recognizeCRC()
612 auto *ComputedValue = cast<SelectInst>(ConditionalRecurrence.Step); in recognizeCRC()
619 assert(ConditionalRecurrence.ExtraConst && in recognizeCRC()
621 const APInt &GenPoly = *ConditionalRecurrence.ExtraConst; in recognizeCRC()
628 PhiEvolutions.emplace_back(ConditionalRecurrence.Phi, ComputedValue); in recognizeCRC()
635 KnownBits ResultBits = VE.KnownPhis.at(ConditionalRecurrence.Phi); in recognizeCRC()