llvm-project/llvm/lib/Transforms/Vectorize
Alexey Bataev 4f0d469d45 [SLP] Fix for PR6246: vectorization for scalar ops on vector elements.
When trying to vectorize trees that start at insertelement instructions
function tryToVectorizeList() uses vectorization factor calculated as
MinVecRegSize/ScalarTypeSize. But sometimes it does not work as tree
cost for this fixed vectorization factor is too high.
Patch tries to improve the situation. It tries different vectorization
factors from max(PowerOf2Floor(NumberOfVectorizedValues),
MinVecRegSize/ScalarTypeSize) to MinVecRegSize/ScalarTypeSize and tries
to choose the best one.

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

llvm-svn: 289043
2016-12-08 11:57:51 +00:00
..
BBVectorize.cpp IR: Remove Value::intersectOptionalDataWith, replace all calls with calls to Instruction::andIRFlags. 2016-09-07 23:39:04 +00:00
CMakeLists.txt [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
LoadStoreVectorizer.cpp [LoadStoreVectorizer] Enable vectorization of stores in the presence of an aliasing load 2016-11-23 17:43:15 +00:00
LoopVectorize.cpp [LV] Scalarize operands of predicated instructions 2016-12-07 15:03:32 +00:00
SLPVectorizer.cpp [SLP] Fix for PR6246: vectorization for scalar ops on vector elements. 2016-12-08 11:57:51 +00:00
Vectorize.cpp Add LoadStoreVectorizer pass 2016-06-30 23:11:38 +00:00