[PATCH] D111221: [AArch64][SVE] Improve code generation for VLS i1 masks

David Truby via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 6 05:33:47 PDT 2021


DavidTruby created this revision.
Herald added subscribers: psnobl, hiraditya, kristof.beyls, tschuett.
Herald added a reviewer: efriedma.
DavidTruby requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

This patch partially resolves an issue for VLS code generation
where a mask is generated from a smaller width integer comparison
than the instruction using the mask requires.

Instead of sign extending a p register by converting it to a z
register, extending that, and converting back, we instead just
do an unpack of the p register.

A separate issue causes the code generation to still be poor when
the mask generation would fit in a neon register, as we then use
a neon comparison operation and have to convert that to a p register.
This will be resolved in a separate patch.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D111221

Files:
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/test/CodeGen/AArch64/sve-fixed-length-masked-loads.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D111221.377509.patch
Type: text/x-patch
Size: 18130 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211006/092e58ca/attachment.bin>


More information about the llvm-commits mailing list