Page MenuHomePhabricator

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

Authored by anwel on Wed, May 13, 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.Wed, May 13, 6:59 AM

Nice one. Couple of nitpicks or questions.

llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
525

gathers ->scatters, loading -> storing.

608

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

731–744

Endresult -> EndResult

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

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

731–744

Sure

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

LGTM. Thanks.

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