It's not really clear to me (or to Gil, who suggested the fix) why this was restricted to single-entry blocks to begin with.
This fixes PR30172.
Paths
| Differential D24009
[LoopVectorizer] Support predicating instructions in blocks with several input edges ClosedPublic Authored by mkuper on Aug 29 2016, 3:32 PM.
Details Summary It's not really clear to me (or to Gil, who suggested the fix) why this was restricted to single-entry blocks to begin with. This fixes PR30172.
Diff Detail
Event TimelineComment Actions This looks reasonable to me, but I have a question about the test case (see the inline comment). I too cannot say why the original conditional stores patch limited this to single-predecessor blocks.
This revision is now accepted and ready to land.Aug 30 2016, 11:16 AM Closed by commit rL280148: [LoopVectorizer] Predicate instructions in blocks with several incoming edges (authored by mkuper). · Explain WhyAug 30 2016, 1:30 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 69747 llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/trunk/test/Transforms/LoopVectorize/if-pred-non-void.ll
llvm/trunk/test/Transforms/LoopVectorize/if-pred-stores.ll
|