[PATCH] D123012: [AArch64] Alter mull buildvectors(ext(..)) combine to work on shuffles

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 4 00:10:41 PDT 2022


dmgreen created this revision.
dmgreen added reviewers: jaykang10, NickGuy, SjoerdMeijer, fhahn.
Herald added subscribers: hiraditya, kristof.beyls.
Herald added a project: All.
dmgreen requested review of this revision.
Herald added a project: LLVM.

D120018 <https://reviews.llvm.org/D120018> altered this combine to work on buildvectors as opposed to shuffle dup's. This works well for dups and other things that are expanded into buildvectors. Some shuffles are legal though, and stay as vector_shuffle through lowering. This expands the transform to also handle shuffles, so that we can turn `mul(shuffle(sext` into `mul(sext(shuffle` and more readily make smull/umull instructions. This can come up from the SLP vectorizer adding shuffles that are costed from extends.


https://reviews.llvm.org/D123012

Files:
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/test/CodeGen/AArch64/aarch64-dup-ext.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123012.420110.patch
Type: text/x-patch
Size: 7221 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220404/0cffdc4d/attachment.bin>


More information about the llvm-commits mailing list