Lines Matching defs:Phi

153   void pushOutAdd(PHINode *&Phi, Value *OffsSecondOperand, unsigned StartIndex);
155 void pushOutMulShl(unsigned Opc, PHINode *&Phi, Value *IncrementPerRound,
810 PHINode *Phi = dyn_cast<PHINode>(Offsets);
811 if (Phi == nullptr || Phi->getNumIncomingValues() != 2 ||
812 Phi->getParent() != L->getHeader() || Phi->getNumUses() != 2)
820 Phi->getIncomingBlock(0) == L->getLoopLatch() ? 0 : 1;
822 Offsets = Phi->getIncomingValue(IncrementIndex);
829 if (OffsetsIncoming != Phi)
834 Builder.SetInsertPoint(&Phi->getIncomingBlock(1 - IncrementIndex)->back());
840 Instruction::Shl, Phi->getIncomingValue(1 - IncrementIndex),
843 Phi->getIncomingBlock(1 - IncrementIndex)->back().getIterator());
853 Phi->getIncomingBlock(1 - IncrementIndex)->back().getIterator());
859 Phi->getIncomingBlock(1 - IncrementIndex)->back().getIterator());
860 Phi->setIncomingValue(1 - IncrementIndex, OffsetsIncoming);
868 Value *Load = tryCreateMaskedGatherBaseWB(I, Phi, Builder, Immediate);
878 tryCreateMaskedScatterBaseWB(I, Phi, Builder, Immediate);
883 Phi->setIncomingValue(IncrementIndex, NewInduction);
888 void MVEGatherScatterLowering::pushOutAdd(PHINode *&Phi,
893 Phi->getIncomingBlock(StartIndex)->back().getIterator();
896 Instruction::Add, Phi->getIncomingValue(StartIndex), OffsSecondOperand,
901 Phi->addIncoming(NewIndex, Phi->getIncomingBlock(StartIndex));
902 Phi->addIncoming(Phi->getIncomingValue(IncrementIndex),
903 Phi->getIncomingBlock(IncrementIndex));
904 Phi->removeIncomingValue(1);
905 Phi->removeIncomingValue((unsigned)0);
908 void MVEGatherScatterLowering::pushOutMulShl(unsigned Opcode, PHINode *&Phi,
918 Phi->getIncomingBlock(LoopIncrement == 1 ? 0 : 1)->back().getIterator();
923 Phi->getIncomingValue(LoopIncrement == 1 ? 0 : 1),
931 Phi->getIncomingBlock(LoopIncrement)->back().getIterator();
936 Instruction::Add, Phi, Product, "IncrementPushedOutMul", NewIncrInsertPt);
938 Phi->addIncoming(StartIndex,
939 Phi->getIncomingBlock(LoopIncrement == 1 ? 0 : 1));
940 Phi->addIncoming(NewIncrement, Phi->getIncomingBlock(LoopIncrement));
941 Phi->removeIncomingValue((unsigned)0);
942 Phi->removeIncomingValue((unsigned)0);
995 PHINode *Phi;
998 Phi = cast<PHINode>(Offs->getOperand(0));
1001 Phi = cast<PHINode>(Offs->getOperand(1));
1014 Phi = cast<PHINode>(Offs->getOperand(0));
1017 Phi = cast<PHINode>(Offs->getOperand(1));
1025 if (Phi->getParent() != L->getHeader())
1031 if (!matchSimpleRecurrence(Phi, IncInstruction, Start, IncrementPerRound) ||
1035 int IncrementingBlock = Phi->getIncomingValue(0) == IncInstruction ? 0 : 1;
1055 if (Phi->getNumUses() == 2) {
1062 Instruction::BinaryOps(IncInstruction->getOpcode()), Phi,
1064 Phi->setIncomingValue(IncrementingBlock, IncInstruction);
1066 NewPhi = Phi;
1069 NewPhi = PHINode::Create(Phi->getType(), 2, "NewPhi", Phi->getIterator());
1071 NewPhi->addIncoming(Phi->getIncomingValue(IncrementingBlock == 1 ? 0 : 1),
1072 Phi->getIncomingBlock(IncrementingBlock == 1 ? 0 : 1));
1077 Phi->getIncomingBlock(IncrementingBlock));
1082 Builder.SetInsertPoint(Phi);