[PATCH] D14185: Extend SLP Vectorizer to deal with aggregates

Arch D. Robison via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 4 14:30:37 PST 2015


ArchDRobison updated the summary for this revision.
ArchDRobison updated this revision to Diff 39255.
ArchDRobison added a comment.

This revision addresses Michael Zolotukhin's comments.

- "instcombine" portion split out to [[http://reviews.llvm.org/D14260][D14260]].
- Adds negative test for NOT vectorizing to <4 x i2> .  To check that the i2 is the stopper, and not some other oversight, I also added a positive similar test for <4 x i4>.
- The test of whether an aggregate type can be mapped to a vector is changed to consider the min and max hardware vector sizes.

The last change required some restructuring to make `MaxVecRegSize` accessible where it was needed in `canMapToVector`.  The restructuring is:

- Member `MaxVecRegSize` moved from class `SLPVectorizer` to `BoUpSLP`.
- `CanReuseExtract` and `canMapToVector`changed from global functions to members of `BoUpSLP`.


http://reviews.llvm.org/D14185

Files:
  lib/Transforms/Vectorize/SLPVectorizer.cpp
  test/Transforms/SLPVectorizer/X86/insertvalue.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14185.39255.patch
Type: text/x-patch
Size: 20184 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151104/92e39d78/attachment.bin>


More information about the llvm-commits mailing list