[LoopOptimizer][Fix]PR32859, PR24738
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 13 May 2017 13:25:57 +0000 (13:25 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 13 May 2017 13:25:57 +0000 (13:25 +0000)
commit7d62e4b455cf181d1657cf8e3be18fd5c0d2eb27
treedd306293eda27b3c2bdfb2ddf538b6d54fce0876
parentfa7be88378ef84e41b559323cbb9571678240056
[LoopOptimizer][Fix]PR32859, PR24738

The Loop vectorizer pass introduced undef value while it is fixing output of LCSSA form.
Here it is:

before: %e.0.ph = phi i32 [ 0, %for.inc.2.i ]
after: %e.0.ph = phi i32 [ 0, %for.inc.2.i ], [ undef, %middle.block ]

and after this change we have:

%e.0.ph = phi i32 [ 0, %for.inc.2.i ]
%e.0.ph = phi i32 [ 0, %for.inc.2.i ], [ 0, %middle.block ]

Committed on behalf of @dtemirbulatov

Differential Revision: https://reviews.llvm.org/D33055

llvm-svn: 302988
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/pr32859.ll [new file with mode: 0644]