This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE] Generate SVE >2 element structured load/stores from fixed types
ClosedPublic

Authored by bsmith on Oct 22 2021, 4:08 AM.

Details

Summary

This adds support for SVE structured loads/stores to the relevant target
hooks, such that we can support these instructions in the InterleavedAccess
pass.

Depends on D112078

Diff Detail

Event Timeline

bsmith created this revision.Oct 22 2021, 4:08 AM
bsmith requested review of this revision.Oct 22 2021, 4:08 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 22 2021, 4:08 AM
Matt added a subscriber: Matt.Oct 26 2021, 5:16 AM
peterwaller-arm accepted this revision.Oct 27 2021, 8:36 AM

Looks good to me. Optional nits.

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
12149

nit. NEON? :)

trivial. While we're here I keep reading it as 'load integers', could we rename it to '...LoadIntrs'? Please reject this comment of mine unless you happen to agree.

This revision is now accepted and ready to land.Oct 27 2021, 8:36 AM
This revision was landed with ongoing or failed builds.Oct 29 2021, 2:53 AM
This revision was automatically updated to reflect the committed changes.

This is causing build failures on our bot: https://green.lab.llvm.org/green/job/clang-stage1-RA/25089/console

llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:12017:10: error: no matching function for call to 'max'
  return std::max(1UL, (DL.getTypeSizeInBits(VecTy) + 127) / VecSize);
         ^~~~~~~~

Can you take a look please?

thakis added a subscriber: thakis.Oct 29 2021, 4:59 AM

This breaks the build on Mac and win: http://45.33.8.238/mac/37920/step_4.txt

Win: http://45.33.8.238/win/47923/step_4.txt

Please take a look and revert for now if it takes a while to fix.

Thanks for the fix! :)