Lines Matching defs:Exit
93 /// instruction is given by Exit.
94 static std::pair<Type *, bool> computeRecurrenceType(Instruction *Exit,
99 const DataLayout &DL = Exit->getDataLayout();
100 uint64_t MaxBitWidth = DL.getTypeSizeInBits(Exit->getType());
108 auto Mask = DB->getDemandedBits(Exit);
112 if (MaxBitWidth == DL.getTypeSizeInBits(Exit->getType()) && AC && DT) {
116 auto NumSignBits = ComputeNumSignBits(Exit, DL, 0, AC, nullptr, DT);
117 auto NumTypeBits = DL.getTypeSizeInBits(Exit->getType());
119 KnownBits Bits = computeKnownBits(Exit, DL);
132 return std::make_pair(Type::getIntNTy(Exit->getContext(), MaxBitWidth),
140 static void collectCastInstrs(Loop *TheLoop, Instruction *Exit,
147 Worklist.push_back(Exit);
183 Instruction *Exit, PHINode *Phi) {
188 if (Kind == RecurKind::FAdd && Exit->getOpcode() != Instruction::FAdd)
192 !RecurrenceDescriptor::isFMulAddIntrinsic(Exit))
196 if (Exit != ExactFPMathInst || Exit->hasNUsesOrMore(3))
201 auto *Op0 = Exit->getOperand(0);
202 auto *Op1 = Exit->getOperand(1);
205 if (Kind == RecurKind::FMulAdd && Exit->getOperand(2) != Phi)
209 << ", ExitInst: " << *Exit << "\n");
452 // Exit if you find multiple values used outside or if the header phi