[PATCH] Enable vectorization of GEP expressions in SLP

Michael Zolotukhin mzolotukhin at apple.com
Fri May 30 11:35:58 PDT 2014


Hi,

Currently SLP vectorizer can’t handle GEP expressions, and hence it fails to vectorize the following example:
struct bounds {
  int *start;
  int *end;

  void init(bounds *one) {
    start = one->start + 10;
    end   = one->end   + 12;
  };
};

Here GEP could be easily vectorized just like a usual add-operation. The attached patch implements it.

With this change performance on SPEC/CFP2006/447.dealII is improved by 2%, while performance of other tests remains unchanged.

Is it ok for trunk?



Thanks,
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140530/03d31631/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: slp-vectorize-gep.patch
Type: application/octet-stream
Size: 5692 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140530/03d31631/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140530/03d31631/attachment-0001.html>


More information about the llvm-commits mailing list