llvm-project/llvm
Florian Hahn 39ae86ab72 [AArch64TTI] AArch64 supports NT vector stores through STNP.
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.

Reviewers: dmgreen, samparker, t.p.northover, ab

Reviewed By: dmgreen

Differential Revision: https://reviews.llvm.org/D73158
2020-01-22 16:45:24 -08:00
..
benchmarks
bindings Pass length of string in Go binding of CreateCompileUnit 2020-01-17 13:35:30 -08:00
cmake Remove AllTargetsAsmPrinters 2020-01-17 19:04:06 -05:00
docs Add support for (expressing) vscale. 2020-01-22 10:09:27 +00:00
examples [ORC] Fix the LLJITWithObjectCache example to address changes in ce2207abaf. 2020-01-21 22:45:21 -08:00
include [PatternMatch] Make m_c_ICmp swap the predicate (PR42801) 2020-01-22 22:56:26 +01:00
lib [AArch64TTI] AArch64 supports NT vector stores through STNP. 2020-01-22 16:45:24 -08:00
projects
resources
runtimes [CMake] Prefer multi-target variables over generic target variables in runtimes build 2020-01-17 15:18:18 -08:00
test [AArch64TTI] AArch64 supports NT vector stores through STNP. 2020-01-22 16:45:24 -08:00
tools [llvm-cov] Add support for -skip-functions to lcov 2020-01-22 12:49:00 -08:00
unittests [PatternMatch] Add m_APInt/m_APFloat matchers accepting undef 2020-01-22 22:49:32 +01:00
utils [gn build] reformat all build files again 2020-01-22 14:04:20 -05:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Bump the trunk major version to 11 2020-01-15 13:38:01 +01:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.