This is an archive of the discontinued LLVM Phabricator instance.

[ARM][MVE] Add support for incrementing scatters
ClosedPublic

Authored by anwel on May 13 2020, 6:59 AM.

Details

Summary

Complementing https://reviews.llvm.org/D76786, this patch enables the MVEGatherScatterLowering pass to build pre-incrementing scatters.
If the increment (i.e., add instruction) that is merged into the scatteris the loop increment, an incrementing write-back scattercan be built, which then assumes the role of the loop increment.

Diff Detail

Event Timeline

anwel created this revision.May 13 2020, 6:59 AM

Nice one. Couple of nitpicks or questions.

llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
48–1

Endresult -> EndResult

52

Does this need to be a dyn_cast? Can it ever not be a vector?

113

gathers ->scatters, loading -> storing.

anwel updated this revision to Diff 264221.May 15 2020, 6:15 AM
anwel marked 5 inline comments as done.
anwel added inline comments.
llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
48–1

Sure

52

After further consideration, no, the GetElementPtr that is given to a scatter should always be a vector type instruction.

dmgreen accepted this revision.May 15 2020, 6:57 AM

LGTM. Thanks.

This revision is now accepted and ready to land.May 15 2020, 6:57 AM
This revision was automatically updated to reflect the committed changes.