This is an archive of the discontinued LLVM Phabricator instance.

[SLP] Vectorize reversed stores.
ClosedPublic

Authored by ABataev on Feb 15 2018, 9:18 AM.

Details

Summary

Patch adds support for vectorization of the reversed stores. The value
operands are vectorized and then shuffled in the reverse order before
store.

Diff Detail

Event Timeline

ABataev created this revision.Feb 15 2018, 9:18 AM
ABataev updated this revision to Diff 140662.Apr 2 2018, 12:17 PM

Updated to latest version

Herald added a project: Restricted Project. · View Herald TranscriptSep 4 2019, 8:44 AM
Herald added subscribers: jfb, mgrang. · View Herald Transcript
RKSimon added inline comments.Sep 7 2019, 11:11 AM
lib/Transforms/Vectorize/SLPVectorizer.cpp
2665

You don't need the getZExtValue()

Diff->getAPInt() == (VL.size() - 1) * Size
ABataev updated this revision to Diff 226920.Oct 29 2019, 9:43 AM

Fix comment + rebase

couple of minors

llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
2668 ↗(On Diff #226920)

or if we need to swizzle them.

2721 ↗(On Diff #226920)

Add brackets to make what you're incrementing more obvious?

ABataev updated this revision to Diff 227102.Oct 30 2019, 8:07 AM
ABataev marked 2 inline comments as done.

Address comments.

RKSimon accepted this revision.Oct 30 2019, 8:57 AM

LGTM

This revision is now accepted and ready to land.Oct 30 2019, 8:57 AM

BTW - we can probably replace "reversed" with "jumbled"

BTW - we can probably replace "reversed" with "jumbled"

Ok, will rename it.

This revision was automatically updated to reflect the committed changes.
ABataev reopened this revision.Nov 8 2019, 11:50 AM

Reopen since it was reverted

This revision is now accepted and ready to land.Nov 8 2019, 11:50 AM
ABataev closed this revision.Nov 19 2019, 6:45 AM

It was committed back.