[PATCH] D159191: [DAGCombiner][SVE] Add support for illegal extending masked loads
David Sherwood via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 30 06:02:35 PDT 2023
david-arm created this revision.
david-arm added reviewers: sdesmalen, paulwalker-arm, kmclaughlin, dtemirbulatov.
Herald added subscribers: ctetreau, psnobl, hiraditya, kristof.beyls.
Herald added a reviewer: efriedma.
Herald added a project: All.
david-arm requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
In some cases where the same mask is used for multiple
extending masked loads it can be more efficient to combine
the zero- or sign-extend into the load even if it's not a
legal or custom operation. This leads to splitting up the
extending load into smaller parts, which also requires
splitting the mask. For SVE at least this improves the
performance of the SPEC benchmark x264 slightly on
neoverse-v1 (~0.3%), and at least one other benchmark
improves by around 30%. The uplift for SVE seems due to
removing the dependencies (vector unpacks) introduced
between the loads and the vector operations, since this
should increase the level of parallelism.
See tests:
CodeGen/AArch64/sve-masked-ldst-sext.ll
CodeGen/AArch64/sve-masked-ldst-zext.ll
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D159191
Files:
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/sve-masked-ldst-sext.ll
llvm/test/CodeGen/AArch64/sve-masked-ldst-zext.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D159191.554680.patch
Type: text/x-patch
Size: 15008 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230830/b571ca37/attachment.bin>
More information about the llvm-commits
mailing list