Lines Matching refs:Start
135 static std::pair<Value *, Value *> matchStridedStart(Value *Start, in matchStridedStart() argument
138 auto *StartC = dyn_cast<Constant>(Start); in matchStridedStart()
143 auto *BO = dyn_cast<BinaryOperator>(Start); in matchStridedStart()
158 std::tie(Start, Stride) = matchStridedStart(BO->getOperand(OtherIndex), in matchStridedStart()
160 if (!Start) in matchStridedStart()
166 Start = Builder.CreateAdd(Start, Splat); in matchStridedStart()
167 return std::make_pair(Start, Stride); in matchStridedStart()
186 Value *Step, *Start; in matchStridedRecurrence() local
187 if (!matchSimpleRecurrence(Phi, Inc, Start, Step) || in matchStridedRecurrence()
204 std::tie(Start, Stride) = matchStridedStart(Start, Builder); in matchStridedRecurrence()
205 if (!Start) in matchStridedRecurrence()
211 PHINode::Create(Start->getType(), 2, Phi->getName() + ".scalar", Phi); in matchStridedRecurrence()
214 BasePtr->addIncoming(Start, Phi->getIncomingBlock(1 - IncrementingBlock)); in matchStridedRecurrence()
273 Value *Start = BasePtr->getOperand(StartBlock); in matchStridedRecurrence() local
289 if (isa<ConstantInt>(Start) && cast<ConstantInt>(Start)->isZero()) in matchStridedRecurrence()
290 Start = SplatOp; in matchStridedRecurrence()
292 Start = Builder.CreateAdd(Start, SplatOp, "start"); in matchStridedRecurrence()
293 BasePtr->setIncomingValue(StartBlock, Start); in matchStridedRecurrence()
298 if (!isa<ConstantInt>(Start) || !cast<ConstantInt>(Start)->isZero()) in matchStridedRecurrence()
299 Start = Builder.CreateMul(Start, SplatOp, "start"); in matchStridedRecurrence()
309 BasePtr->setIncomingValue(StartBlock, Start); in matchStridedRecurrence()
314 if (!isa<ConstantInt>(Start) || !cast<ConstantInt>(Start)->isZero()) in matchStridedRecurrence()
315 Start = Builder.CreateShl(Start, SplatOp, "start"); in matchStridedRecurrence()
319 BasePtr->setIncomingValue(StartBlock, Start); in matchStridedRecurrence()