1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/lib/Transforms/Vectorize
Ayal Zaks 303a302e55 [LV] Fix PR34523 - avoid generating redundant selects
When converting a PHI into a series of 'select' instructions to combine the
incoming values together according their edge masks, initialize the first
value to the incoming value In0 of the first predecessor, instead of
generating a redundant assignment 'select(Cond[0], In0, In0)'. The latter
fails when the Cond[0] mask is null, representing a full mask, which can
happen only when there's a single incoming value.

No functional changes intended nor expected other than surviving null Cond[0]'s.

This fix follows D35725, which introduced using null to represent full masks.

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

llvm-svn: 313119
2017-09-13 06:28:37 +00:00
..
CMakeLists.txt [LV] Fix PR34248 - recommit D32871 after revert r311304 2017-08-27 12:55:46 +00:00
LLVMBuild.txt
LoadStoreVectorizer.cpp [KnownBits] Add bit counting methods to KnownBits struct and use them where possible 2017-05-12 17:20:30 +00:00
LoopVectorize.cpp [LV] Fix PR34523 - avoid generating redundant selects 2017-09-13 06:28:37 +00:00
SLPVectorizer.cpp [SLP] Fix for PHINode during horizontal reduction scanning, NFC. 2017-09-12 15:13:50 +00:00
Vectorize.cpp Remove the BBVectorize pass. 2017-06-30 07:09:08 +00:00
VPlan.cpp [LV] Fix PR34248 - recommit D32871 after revert r311304 2017-08-27 12:55:46 +00:00
VPlan.h [LV] Fix PR34248 - recommit D32871 after revert r311304 2017-08-27 12:55:46 +00:00