This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Extra tablegen patterns for smaller extracted addl/addw/subl/subw
ClosedPublic

Authored by dmgreen on Jun 23 2023, 7:20 AM.

Details

Summary

During lowering, especially of smaller vector types, we can end up with add (extract_subvector(zext(x), extract_subvector(zext(y)), which can be turned into extract_subvector(add(zext(y), zext(x))), which can use the addl AArch64 instruction. This adds some tablegen patterns for it, along with addw where only one operand is an extract/extend and subl/subw.

Diff Detail

Event Timeline

dmgreen created this revision.Jun 23 2023, 7:20 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 23 2023, 7:20 AM
dmgreen requested review of this revision.Jun 23 2023, 7:20 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 23 2023, 7:20 AM

Ping, thanks.

SjoerdMeijer accepted this revision.Jul 11 2023, 7:33 AM
SjoerdMeijer added a subscriber: SjoerdMeijer.

Look like some good patterns and improvements to me.

This revision is now accepted and ready to land.Jul 11 2023, 7:33 AM
This revision was landed with ongoing or failed builds.Jul 13 2023, 3:44 AM
This revision was automatically updated to reflect the committed changes.