llvm-project/llvm/lib/Transforms/Vectorize
Alexey Bataev fa80c47c6a [SLP] Fix vectorization for tree with trunc to minimum required bit width.
Summary:
If the vectorized tree has truncate to minimum required bit width and
the vector type of the cast operation after the truncation is the same
as the vector type of the cast operands, count cost of the vector cast
operation as 0, because this cast will be later removed.
Also, if the vectorization tree root operations are integer cast operations, do not consider them as candidates for truncation. It will just create extra number of the same vector/scalar operations, which will be removed by instcombiner.

Reviewers: RKSimon, spatel, mkuper, hfinkel, mssimpso

Subscribers: llvm-commits

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

llvm-svn: 322946
2018-01-19 14:40:13 +00:00
..
CMakeLists.txt [LV] Fix PR34248 - recommit D32871 after revert r311304 2017-08-27 12:55:46 +00:00
LLVMBuild.txt
LoadStoreVectorizer.cpp Add explanatory comment to LoadStoreVectorizer. 2018-01-10 03:02:12 +00:00
LoopVectorizationPlanner.h [LV][VPlan] NFC patch to move LoopVectorizationPlanner class out of LoopVectorize.cpp 2018-01-07 16:02:58 +00:00
LoopVectorize.cpp [LV] Don't call recordVectorLoopValueForInductionCast for newly-created IV from a trunc. 2018-01-15 10:56:07 +00:00
SLPVectorizer.cpp [SLP] Fix vectorization for tree with trunc to minimum required bit width. 2018-01-19 14:40:13 +00:00
VPlan.cpp [LV] NFC patch for moving VP*Recipe class definitions from LoopVectorize.cpp to VPlan.h 2017-12-16 01:12:50 +00:00
VPlan.h [LV][VPlan] NFC patch to move LoopVectorizationPlanner class out of LoopVectorize.cpp 2018-01-07 16:02:58 +00:00
VPlanValue.h [LV] Model masking in VPlan, introducing VPInstructions 2017-11-20 12:01:47 +00:00
Vectorize.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00