This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Convert vector add(ext, ext) into ext(add(ext, ext))
ClosedPublic

Authored by dmgreen on Jun 23 2022, 4:14 AM.

Details

Summary

Given a vector add or sub from extends that needs more that one 'step' (i.e i8 to i32 or i16 to i64), we can transform the sequence to sext(add(ext, ext)), to allow the add(ext, ext) to become a single uaddl and a larger extend, producing less instructions in total.
https://alive2.llvm.org/ce/z/S2T4k-

Diff Detail

Event Timeline

dmgreen created this revision.Jun 23 2022, 4:14 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 23 2022, 4:14 AM
dmgreen requested review of this revision.Jun 23 2022, 4:14 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 23 2022, 4:14 AM
This revision is now accepted and ready to land.Jun 23 2022, 8:10 AM
This revision was landed with ongoing or failed builds.Jun 24 2022, 2:04 AM
This revision was automatically updated to reflect the committed changes.