This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Memory operands for MVE gathers/scatters
ClosedPublic

Authored by dmgreen on Apr 23 2021, 7:14 PM.

Details

Summary

Similarly to D101096, this makes sure that MMO operands get propagated through from MVE gathers/scatters to the Machine Instructions. This allows extra scheduling freedom, not forcing the instructions to act as scheduling barriers. We create MMO's with an unknown size, specifying that they can load from anywhere in memory, similar to the masked_gather or X86 intrinsics.

Diff Detail

Event Timeline

dmgreen created this revision.Apr 23 2021, 7:14 PM
dmgreen requested review of this revision.Apr 23 2021, 7:14 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 23 2021, 7:14 PM
SjoerdMeijer accepted this revision.Apr 30 2021, 1:43 AM

Another good MO fix.

llvm/lib/Target/ARM/ARMISelLowering.cpp
19380

I see a lot of the same/similar patterns here. A little helper function to set these things comes to mind, but there's enough prior art of having these patterns inline, so either way is fine by me.

This revision is now accepted and ready to land.Apr 30 2021, 1:43 AM
This revision was landed with ongoing or failed builds.May 3 2021, 3:25 AM
This revision was automatically updated to reflect the committed changes.