Lines Matching defs:Phi

152   void pushOutAdd(PHINode *&Phi, Value *OffsSecondOperand, unsigned StartIndex);
154 void pushOutMulShl(unsigned Opc, PHINode *&Phi, Value *IncrementPerRound,
809 PHINode *Phi = dyn_cast<PHINode>(Offsets);
810 if (Phi == nullptr || Phi->getNumIncomingValues() != 2 ||
811 Phi->getParent() != L->getHeader() || Phi->getNumUses() != 2)
819 Phi->getIncomingBlock(0) == L->getLoopLatch() ? 0 : 1;
821 Offsets = Phi->getIncomingValue(IncrementIndex);
828 if (OffsetsIncoming != Phi)
833 Builder.SetInsertPoint(&Phi->getIncomingBlock(1 - IncrementIndex)->back());
839 Instruction::Shl, Phi->getIncomingValue(1 - IncrementIndex),
842 Phi->getIncomingBlock(1 - IncrementIndex)->back().getIterator());
852 Phi->getIncomingBlock(1 - IncrementIndex)->back().getIterator());
858 Phi->getIncomingBlock(1 - IncrementIndex)->back().getIterator());
859 Phi->setIncomingValue(1 - IncrementIndex, OffsetsIncoming);
867 Value *Load = tryCreateMaskedGatherBaseWB(I, Phi, Builder, Immediate);
877 tryCreateMaskedScatterBaseWB(I, Phi, Builder, Immediate);
882 Phi->setIncomingValue(IncrementIndex, NewInduction);
887 void MVEGatherScatterLowering::pushOutAdd(PHINode *&Phi,
892 Phi->getIncomingBlock(StartIndex)->back().getIterator();
895 Instruction::Add, Phi->getIncomingValue(StartIndex), OffsSecondOperand,
900 Phi->addIncoming(NewIndex, Phi->getIncomingBlock(StartIndex));
901 Phi->addIncoming(Phi->getIncomingValue(IncrementIndex),
902 Phi->getIncomingBlock(IncrementIndex));
903 Phi->removeIncomingValue(1);
904 Phi->removeIncomingValue((unsigned)0);
907 void MVEGatherScatterLowering::pushOutMulShl(unsigned Opcode, PHINode *&Phi,
917 Phi->getIncomingBlock(LoopIncrement == 1 ? 0 : 1)->back().getIterator();
922 Phi->getIncomingValue(LoopIncrement == 1 ? 0 : 1),
930 Phi->getIncomingBlock(LoopIncrement)->back().getIterator();
935 Instruction::Add, Phi, Product, "IncrementPushedOutMul", NewIncrInsertPt);
937 Phi->addIncoming(StartIndex,
938 Phi->getIncomingBlock(LoopIncrement == 1 ? 0 : 1));
939 Phi->addIncoming(NewIncrement, Phi->getIncomingBlock(LoopIncrement));
940 Phi->removeIncomingValue((unsigned)0);
941 Phi->removeIncomingValue((unsigned)0);
994 PHINode *Phi;
997 Phi = cast<PHINode>(Offs->getOperand(0));
1000 Phi = cast<PHINode>(Offs->getOperand(1));
1013 Phi = cast<PHINode>(Offs->getOperand(0));
1016 Phi = cast<PHINode>(Offs->getOperand(1));
1024 if (Phi->getParent() != L->getHeader())
1030 if (!matchSimpleRecurrence(Phi, IncInstruction, Start, IncrementPerRound) ||
1034 int IncrementingBlock = Phi->getIncomingValue(0) == IncInstruction ? 0 : 1;
1054 if (Phi->getNumUses() == 2) {
1061 Instruction::BinaryOps(IncInstruction->getOpcode()), Phi,
1063 Phi->setIncomingValue(IncrementingBlock, IncInstruction);
1065 NewPhi = Phi;
1068 NewPhi = PHINode::Create(Phi->getType(), 2, "NewPhi", Phi->getIterator());
1070 NewPhi->addIncoming(Phi->getIncomingValue(IncrementingBlock == 1 ? 0 : 1),
1071 Phi->getIncomingBlock(IncrementingBlock == 1 ? 0 : 1));
1076 Phi->getIncomingBlock(IncrementingBlock));
1081 Builder.SetInsertPoint(Phi);