This is an archive of the discontinued LLVM Phabricator instance.

[ARM] MVE loads and stores
ClosedPublic

Authored by dmgreen on Jun 26 2019, 1:16 PM.

Details

Summary

This fills in the gaps for basic MVE loads and stores, allowing unaligned access and adding far too many tests. These will become important as narrowing/expanding and pre/post inc are added. Big endian might still not be handled very will, because we have not yet added bitcasts (and I'm not sure how we want it to work yet). I've included the alignment code anyway which maps with our current patterns. We plan to return to that later.

Code written by Simon Tatham.

Diff Detail

Event Timeline

dmgreen created this revision.Jun 26 2019, 1:16 PM
samparker added inline comments.Jun 26 2019, 11:37 PM
llvm/lib/Target/ARM/ARMISelLowering.cpp
13196

Why has Allowed been introduced? Looks like we can still just return.

13215

nit: reduce indentation and early exit instead.

dmgreen updated this revision to Diff 206828.Jun 27 2019, 4:44 AM

Flatten and return directly.

samparker accepted this revision.Jun 27 2019, 5:21 AM

Cheers! LGTM

This revision is now accepted and ready to land.Jun 27 2019, 5:21 AM
miyuki added a subscriber: miyuki.Jun 27 2019, 9:31 AM
This revision was automatically updated to reflect the committed changes.