@@ -527,7 +527,8 @@ static VPScalarIVStepsRecipe *
527527createScalarIVSteps (VPlan &Plan, InductionDescriptor::InductionKind Kind,
528528 Instruction::BinaryOps InductionOpcode,
529529 FPMathOperator *FPBinOp, Instruction *TruncI,
530- VPValue *StartV, VPValue *Step, VPBuilder &Builder) {
530+ VPValue *StartV, VPValue *Step, DebugLoc DL,
531+ VPBuilder &Builder) {
531532 VPBasicBlock *HeaderVPBB = Plan.getVectorLoopRegion ()->getEntryBasicBlock ();
532533 VPCanonicalIVPHIRecipe *CanonicalIV = Plan.getCanonicalIV ();
533534 VPSingleDefRecipe *BaseIV = Builder.createDerivedIV (
@@ -542,7 +543,7 @@ createScalarIVSteps(VPlan &Plan, InductionDescriptor::InductionKind Kind,
542543 assert (ResultTy->getScalarSizeInBits () > TruncTy->getScalarSizeInBits () &&
543544 " Not truncating." );
544545 assert (ResultTy->isIntegerTy () && " Truncation requires an integer type" );
545- BaseIV = Builder.createScalarCast (Instruction::Trunc, BaseIV, TruncTy);
546+ BaseIV = Builder.createScalarCast (Instruction::Trunc, BaseIV, TruncTy, DL );
546547 ResultTy = TruncTy;
547548 }
548549
@@ -556,7 +557,7 @@ createScalarIVSteps(VPlan &Plan, InductionDescriptor::InductionKind Kind,
556557 cast<VPBasicBlock>(HeaderVPBB->getSingleHierarchicalPredecessor ());
557558 VPBuilder::InsertPointGuard Guard (Builder);
558559 Builder.setInsertPoint (VecPreheader);
559- Step = Builder.createScalarCast (Instruction::Trunc, Step, ResultTy);
560+ Step = Builder.createScalarCast (Instruction::Trunc, Step, ResultTy, DL );
560561 }
561562 return Builder.createScalarIVSteps (InductionOpcode, FPBinOp, BaseIV, Step);
562563}
@@ -588,7 +589,7 @@ static void legalizeAndOptimizeInductions(VPlan &Plan) {
588589 VPValue *StepV = PtrIV->getOperand (1 );
589590 VPScalarIVStepsRecipe *Steps = createScalarIVSteps (
590591 Plan, InductionDescriptor::IK_IntInduction, Instruction::Add, nullptr ,
591- nullptr , StartV, StepV, Builder);
592+ nullptr , StartV, StepV, PtrIV-> getDebugLoc (), Builder);
592593
593594 VPValue *PtrAdd = Builder.createPtrAdd (PtrIV->getStartValue (), Steps,
594595 PtrIV->getDebugLoc (), " next.gep" );
@@ -612,7 +613,7 @@ static void legalizeAndOptimizeInductions(VPlan &Plan) {
612613 Plan, ID.getKind (), ID.getInductionOpcode (),
613614 dyn_cast_or_null<FPMathOperator>(ID.getInductionBinOp ()),
614615 WideIV->getTruncInst (), WideIV->getStartValue (), WideIV->getStepValue (),
615- Builder);
616+ WideIV-> getDebugLoc (), Builder);
616617
617618 // Update scalar users of IV to use Step instead.
618619 if (!HasOnlyVectorVFs)
@@ -1689,9 +1690,9 @@ bool VPlanTransforms::tryAddExplicitVectorLength(
16891690 VPSingleDefRecipe *OpVPEVL = VPEVL;
16901691 if (unsigned IVSize = CanonicalIVPHI->getScalarType ()->getScalarSizeInBits ();
16911692 IVSize != 32 ) {
1692- OpVPEVL = new VPScalarCastRecipe (IVSize < 32 ? Instruction::Trunc
1693- : Instruction::ZExt,
1694- OpVPEVL, CanonicalIVPHI->getScalarType ());
1693+ OpVPEVL = new VPScalarCastRecipe (
1694+ IVSize < 32 ? Instruction::Trunc : Instruction::ZExt, OpVPEVL ,
1695+ CanonicalIVPHI->getScalarType (), CanonicalIVIncrement-> getDebugLoc ());
16951696 OpVPEVL->insertBefore (CanonicalIVIncrement);
16961697 }
16971698 auto *NextEVLIV =
0 commit comments