Lines Matching refs:PN
2314 else if (const PHINode *PN = dyn_cast<PHINode>(V)) {
2317 if (PN->getNumIncomingValues() == 2) {
2318 Value *Start = PN->getIncomingValue(0);
2319 Value *Induction = PN->getIncomingValue(1);
2326 (match(Induction, m_NSWAdd(m_Specific(PN), m_ConstantInt(X))) ||
2327 match(Induction, m_NUWAdd(m_Specific(PN), m_ConstantInt(X)))) &&
2334 bool AllNonZeroConstants = llvm::all_of(PN->operands(), [](Value *V) {
2674 const PHINode *PN = cast<PHINode>(U);
2675 unsigned NumIncomingValues = PN->getNumIncomingValues();
2683 Tmp = ComputeNumSignBits(PN->getIncomingValue(0), Depth + 1, Q);
2687 Tmp, ComputeNumSignBits(PN->getIncomingValue(i), Depth + 1, Q));
3762 if (const PHINode *PN = dyn_cast<PHINode>(V)) {
3763 if (!PHIs.insert(PN).second)
3768 for (Value *IncValue : PN->incoming_values()) {
3850 /// \p PN defines a loop-variant pointer to an object. Check if the
3851 /// previous iteration of the loop was referring to the same object as \p PN.
3852 static bool isSameUnderlyingObjectInLoop(const PHINode *PN,
3855 Loop *L = LI->getLoopFor(PN->getParent());
3856 if (PN->getNumIncomingValues() != 2)
3860 auto *PrevValue = dyn_cast<Instruction>(PN->getIncomingValue(0));
3862 PrevValue = dyn_cast<Instruction>(PN->getIncomingValue(1));
3946 if (auto *PN = dyn_cast<PHINode>(P)) {
3957 if (!LI || !LI->isLoopHeader(PN->getParent()) ||
3958 isSameUnderlyingObjectInLoop(PN, LI))
3959 for (Value *IncValue : PN->incoming_values())