[PATCH] D128065: [AArch64][SVE] Fold target specific ext/trunc nodes into loads/stores

Bradley Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 17 08:50:14 PDT 2022


bsmith created this revision.
bsmith added reviewers: paulwalker-arm, peterwaller-arm, c-rhodes, sdesmalen.
Herald added subscribers: ctetreau, psnobl, hiraditya, kristof.beyls, tschuett.
Herald added a reviewer: efriedma.
Herald added a project: All.
bsmith requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Due to the way fixed length SVE lowering works, we sometimes introduce
ext/trunc nodes very late, these nodes then immediately get converted
into target specific nodes (UUNPKLO/UZP1) before they get a chance to be
folded into a load/store.

This patch introduces target specific dag combines for these nodes so that
we can still create extending loads/truncating stores out of them.

Additionally this patch introduces a PTRUE dag combine such that we can
correct the register size of a PTRUE very late, as is done in these new
dag combines.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D128065

Files:
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/test/CodeGen/AArch64/insert-subvector-res-legalization.ll
  llvm/test/CodeGen/AArch64/sve-fixed-length-fp-to-int.ll
  llvm/test/CodeGen/AArch64/sve-fixed-length-int-div.ll
  llvm/test/CodeGen/AArch64/sve-fixed-length-int-to-fp.ll
  llvm/test/CodeGen/AArch64/sve-fixed-length-mask-opt.ll
  llvm/test/CodeGen/AArch64/sve-fixed-length-masked-gather.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D128065.437928.patch
Type: text/x-patch
Size: 39842 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220617/3f6bca35/attachment.bin>


More information about the llvm-commits mailing list