Continuation of D48769.
In this case the induction phi and add instructions created
in the vector part of the loop were missing DL.
The i8-induction.ll also fails debugify even after this patch:
opt -S -enable-debugify -loop-vectorize i8-induction.ll -disable-output ERROR: Instruction with empty DebugLoc in function f -- %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ] ERROR: Instruction with empty DebugLoc in function f -- %vec.phi = phi <4 x i8> [ <i8 0, i8 1, i8 1, i8 1>, %vector.ph ], [ %5, %vector.body ] ERROR: Instruction with empty DebugLoc in function f -- %index.next = add i32 %index, 4 ERROR: Instruction with empty DebugLoc in function f -- %9 = icmp eq i32 %index.next, 16 ERROR: Instruction with empty DebugLoc in function f -- br i1 %9, label %middle.block, label %vector.body, !llvm.loop !32 ERROR: Instruction with empty DebugLoc in function f -- %cmp.n = icmp eq i32 16, 16 ERROR: Instruction with empty DebugLoc in function f -- %bc.merge.rdx = phi i8 [ 0, %scalar.ph ], [ %10, %middle.block ] ERROR: Instruction with empty DebugLoc in function f -- %mul.lcssa = phi i8 [ %mul, %for.body ], [ %10, %middle.block ] CheckModuleDebugify: FAIL
but those are from different parts of the code so they will be dealt with in
another patch.
Why is the debug location of the entry value the correct location to use for an induction variable phi? I'd expect a merged location to be applied to the phi, based on its incoming values.