This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Common patterns between UMULL and int_aarch64_neon_umull
ClosedPublic

Authored by dmgreen on Feb 15 2022, 1:03 PM.

Details

Summary

We have some duplicate patterns between the AArch64ISD::UMULL (/SMULL) and the int_aarch64_neon_umull (/smull) intrinsics. They did not replicate all the patterns though, leaving some gaps on instructions like umlal2 from codegen. This commons all the patterns by converting all int_aarch64_neon_umull intrinsics to UMULL nodes and removing the duplicate pattens so that all instructions go through the same tablegen pattern.

This improves some of the longer-than-legal mla patterns, helping them replace ext with umlal2. Found whilst looking at D96522 / D118979.

Diff Detail

Event Timeline

dmgreen created this revision.Feb 15 2022, 1:03 PM
dmgreen requested review of this revision.Feb 15 2022, 1:03 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 15 2022, 1:03 PM
This revision is now accepted and ready to land.Feb 16 2022, 11:21 PM
dmgreen edited the summary of this revision. (Show Details)Feb 17 2022, 12:15 AM
This revision was landed with ongoing or failed builds.Feb 19 2022, 6:39 AM
This revision was automatically updated to reflect the committed changes.