[PATCH] D67005: [ARM] MVE: isLegalMaskedLoad

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 30 07:16:15 PDT 2019


SjoerdMeijer created this revision.
SjoerdMeijer added reviewers: samparker, dmgreen, efriedma.
Herald added subscribers: hiraditya, kristof.beyls, javed.absar.
Herald added a project: LLVM.

This tweaks TTI hook isLegalMaskedLoadr, which has 2 use cases: it is queried
for vector types, which is what the current implementation supports, but the
vectorizer also queries it supplying scalar types. The latter wasn't taken into
account, and scalar types get rejected as legal masked loads because their size
!= 128 bits.

      

On MVE, with most instructions being VPT Block compatible, you could argue that
everything can be legally masked (modulo the exceptions), but this new
implementation rejects double-word ints and floats, which seems to be
reasonable for now. This seems to improve codegen for some existing cases, and
I will follow this up with loop vectorization tests that also query this.


https://reviews.llvm.org/D67005

Files:
  llvm/lib/Target/ARM/ARMTargetTransformInfo.h
  llvm/test/CodeGen/Thumb2/mve-masked-ldst.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67005.218095.patch
Type: text/x-patch
Size: 20223 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190830/26cf3243/attachment.bin>


More information about the llvm-commits mailing list