]> granicus.if.org Git - llvm/commit
[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)
commit07ac640d6c9bbcd3c727aab92693e7fff301cd34
treeee5d6e3d03ec74a57f22a9264034ecdeb28d12bc
parente3abce209bdd1d8eb4a1dfc2e71f081ca19eda2f
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302988 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/pr32859.ll [new file with mode: 0644]