[PATCH] D155299: [AArch64][SVE2] Combine add+lsr to rshrnb for stores

Matt Devereau via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 14 08:09:28 PDT 2023


MattDevereau created this revision.
MattDevereau added reviewers: david-arm, sdesmalen, Rin.
Herald added subscribers: ctetreau, hiraditya, kristof.beyls.
Herald added a reviewer: efriedma.
Herald added a project: All.
MattDevereau requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

[AArch64][SVE2] Combine add+lsr to rshrnb for stores

With the sequence

  add z0.h, z0.h, 1 << shiftimm
  lsr z0.h, shiftimm
  st1b z0.h, x1

This can be replaced with

  rshrnb z0.b, shiftimm
  st1b z0.h, x1

When we know the top half of the destination register is ignored by the store.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D155299

Files:
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/test/CodeGen/AArch64/sve2-intrinsics-binary-narrowing-shr.ll
  llvm/test/CodeGen/AArch64/sve2-intrinsics-combine-rshrnb.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D155299.540424.patch
Type: text/x-patch
Size: 35532 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230714/49f7b50b/attachment.bin>


More information about the llvm-commits mailing list