[AArch64] Merge [US]MULL with half adds and subs into [US]ML[AS]L
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Mon, 25 Jan 2021 07:55:13 +0000 (07:55 +0000)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Mon, 25 Jan 2021 07:58:12 +0000 (07:58 +0000)
commit8fbc1437c605fe92c0fa286757e3b287d6b02f05
treed40e752947d35581af877e70bb13858c863dd2c7
parent6884fbc2c4fb46d0528c02d16d510f4f725fac11
[AArch64] Merge [US]MULL with half adds and subs into [US]ML[AS]L

This patch adds patterns to teach the AArch64 backend to merge [US]MULL
instructions and adds/subs of half the size into [US]ML[AS]L where we don't use
the top half of the result.

Differential Revision: https://reviews.llvm.org/D95218
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/test/CodeGen/AArch64/mla_mls_merge.ll [new file with mode: 0644]