1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
Go to file
David Sherwood ac8a8b4ad9 [SVE][CodeGen] Fix scalable vector issues in DAGTypeLegalizer::GenWidenVectorStores
In DAGTypeLegalizer::GenWidenVectorStores the algorithm assumes it only
ever deals with fixed width types, hence the offsets for each individual
store never take 'vscale' into account. I've changed the main loop in
that function to use TypeSize instead of unsigned for tracking the
remaining store amount and offset increment. In addition, I've changed
the loop to use the new IncrementPointer helper function for updating
the addresses in each iteration, since this handles scalable vector
types.

Whilst fixing this function I also fixed a minor issue in
IncrementPointer whereby we were not adding the no-unsigned-wrap flag
for the add instruction in the same way as the fixed width case does.

Also, I've added a report_fatal_error in GenWidenVectorTruncStores,
since this code currently uses a sequence of element-by-element scalar
stores.

I've added new tests in

  CodeGen/AArch64/sve-intrinsics-stores.ll
  CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll

for the changes in GenWidenVectorStores.

Differential Revision: https://reviews.llvm.org/D84937
2020-08-13 11:07:17 +01:00
benchmarks
bindings [Bindings] Remove ipc_propagation. 2020-08-02 22:36:53 +01:00
cmake [CMake] Simplify CMake handling for zlib 2020-08-11 20:22:11 -07:00
docs [AMDGPU] Fix typo. NFC 2020-08-13 10:41:48 +02:00
examples [llvm][examples][SimplifyCFG] Fix pass's IR changed reporting 2020-07-27 13:39:58 -06:00
include [SVE][CodeGen] Fix scalable vector issues in DAGTypeLegalizer::GenWidenVectorStores 2020-08-13 11:07:17 +01:00
lib [SVE][CodeGen] Fix scalable vector issues in DAGTypeLegalizer::GenWidenVectorStores 2020-08-13 11:07:17 +01:00
projects Add few docs and implementation of strcpy and strcat. 2019-10-04 17:30:54 +00:00
resources
runtimes Revert "[AIX] Try to not use LLVM tools while building runtimes" 2020-08-10 21:35:49 -04:00
test [SVE][CodeGen] Fix scalable vector issues in DAGTypeLegalizer::GenWidenVectorStores 2020-08-13 11:07:17 +01:00
tools [macho2yaml] Remove an unused variable. NFC. 2020-08-13 11:14:31 +08:00
unittests [SystemZ/ZOS] Implement computeHostNumPhysicalCores 2020-08-12 08:31:33 -04:00
utils [UpdateTestChecks][FIX] Python 2.7 compatibility and use right prefix 2020-08-12 11:58:08 -05:00
.clang-format
.clang-tidy - Update .clang-tidy to ignore parameters of main like functions for naming violations in clang and llvm directory 2020-01-31 16:49:45 +00:00
.gitattributes Fix the "git modified" issue on the preserve-comments-crlf.s. 2019-09-10 12:17:49 +00:00
.gitignore [clangd] Store index in '.cache/clangd/index' instead of '.clangd/index' 2020-07-07 14:53:45 +02:00
CMakeLists.txt [CMake] Bump CMake minimum version to 3.13.4 2020-07-22 14:25:07 -04:00
CODE_OWNERS.TXT Remove Olesen from LLVM code owners 2020-08-05 11:12:10 -07:00
configure
CREDITS.TXT [test commit] Add my name to the CREDITS.TXT 2020-07-24 12:05:53 -05:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt Test commit. 2020-03-14 18:08:26 -07:00
RELEASE_TESTERS.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.