[PATCH] D73158: [AArch64TTI] AArch64 supports NT vector stores through STNP.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 21 19:40:55 PST 2020


fhahn created this revision.
fhahn added reviewers: dmgreen, samparker, t.p.northover, ab.
Herald added subscribers: hiraditya, kristof.beyls.
Herald added a project: LLVM.

This patch adds a custom implementation of isLegalNTStore to AArch64TTI
that supports vector types that can be directly stored by STNP. Note
that the implementation may not catch all valid cases (e.g. because the
vector is a multiple of 256 and could be broken down to multiple valid 256 bit
stores), but it is good enough for LV to vectorize loops with NT stores,
as LV only passes in a vector with 2 elements to check. LV seems to also
be the only user of isLegalNTStore.

We should also do the same for NT loads, but before that we need to
ensure that we properly lower LDNP of vectors, similar to D72919 <https://reviews.llvm.org/D72919>.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D73158

Files:
  llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
  llvm/test/Transforms/LoopVectorize/AArch64/nontemporal-load-store.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73158.239483.patch
Type: text/x-patch
Size: 5281 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200122/d90470bc/attachment-0001.bin>


More information about the llvm-commits mailing list