[LoopVectorizer] Predicate instructions in blocks with several incoming edges
authorMichael Kuperstein <mkuper@google.com>
Tue, 30 Aug 2016 20:22:21 +0000 (20:22 +0000)
committerMichael Kuperstein <mkuper@google.com>
Tue, 30 Aug 2016 20:22:21 +0000 (20:22 +0000)
commit2954d1db77e5ddedd428c78c61a2a3d11841fda7
tree73a48a931dcfcb9d74dbd43b94d91e6032b0ffdf
parentac8cfab51fe45b1b69931b50a1c91ac408a3ea63
[LoopVectorizer] Predicate instructions in blocks with several incoming edges

We don't need to limit predication to blocks that have a single incoming
edge, we just need to use the right mask.
This fixes PR30172.

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

llvm-svn: 280148
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
llvm/test/Transforms/LoopVectorize/if-pred-stores.ll