Displaying 1 result from an estimated 1 matches for "fixnoninductionphi".
Did you mean:
fixnoninductionphis
2020 May 17
2
Question about the order of predecessors in LoopVectorizer with VPlanNatviePath
...br i1 %10, label %for.cond.cleanup373, label %for.body10.preheader67
As you can see, %vec.phi has wrong incoming basic blocks. It could be as below.
%vec.phi = phi <4 x i64> [ %8, %for.cond.cleanup972 ], [
zeroinitializer, %vector.body ]
The problem comes from "InnerLoopVectorizer::fixNonInductionPHIs()".
This function has assumption about the order of predecessors as below.
// The predecessor order is preserved and we can rely on mapping between
// scalar and vector block predecessors.
for (unsigned i = 0; i < NumIncomingValues; ++i) {
It seems it assumes loop latch as fi...