This is an archive of the discontinued LLVM Phabricator instance.

[NFC][SVE] Change useSVEForFixedLengthVectorVT to allow unconditional SVE usage for NEON sized vectors.
ClosedPublic

Authored by paulwalker-arm on Feb 3 2022, 5:16 PM.

Details

Summary

Previously useSVEForFixedLengthVectorVT only allowed SVE usage when
the target SVE register length was known to be at least 256bit.
This was true even for NEON sized vectors, which was an artificial
restriction imposed during early SVE bring up. This now changes so
that callers can opt to use SVE for NEON sized vectors regardless
of the SVE register length.

The patch is NFC because for all places where OverrideNEON is used
we now explicitly also check that SVE code generation for larger
than NEON vectors is enabled. The intent is that over time these
extra checks will either be removed or the lowering disabled if the
SVE usage proves not beneficial.

Diff Detail

Event Timeline

paulwalker-arm created this revision.Feb 3 2022, 5:16 PM
paulwalker-arm requested review of this revision.Feb 3 2022, 5:16 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 3 2022, 5:16 PM
david-arm accepted this revision.Feb 4 2022, 12:44 AM
david-arm added a subscriber: david-arm.

LGTM!

This revision is now accepted and ready to land.Feb 4 2022, 12:44 AM
This revision was landed with ongoing or failed builds.Feb 4 2022, 6:47 AM
This revision was automatically updated to reflect the committed changes.
kazu added a subscriber: kazu.Jun 4 2022, 6:07 PM

This patch seems to trigger a crash on lowering @llvm.vector.reduce.or.v4i56. For details, please see:

https://github.com/llvm/llvm-project/issues/55866

Herald added a project: Restricted Project. · View Herald TranscriptJun 4 2022, 6:07 PM