Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Sam Tebbs 9cb186cbd7 [ARM] Add support for the MVE long shift instructions
MVE adds the lsll, lsrl and asrl instructions, which perform a shift on a 64 bit value separated into two 32 bit registers.

The Expand64BitShift function is modified to accept ISD::SHL, ISD::SRL and ISD::SRA and convert it into the appropriate opcode in ARMISD. An SHL is converted into an lsll, an SRL is converted into an lsrl for the immediate form and a negation and lsll for the register form, and SRA is converted into an asrl.

test/CodeGen/ARM/shift_parts.ll is added to test the logic of emitting these instructions.

Differential Revision: https://reviews.llvm.org/D63430

llvm-svn: 364654
2019-06-28 15:43:31 +00:00
benchmarks
bindings
cmake
docs [LangRef] Clarify codegen expectations for intrinsics with fp/integer-only overloads. 2019-06-27 23:33:05 +00:00
examples
include [DebugInfo] Fix setStartAddress after r364637 2019-06-28 10:10:10 +00:00
lib [ARM] Add support for the MVE long shift instructions 2019-06-28 15:43:31 +00:00
projects
resources
runtimes
test [ARM] Add support for the MVE long shift instructions 2019-06-28 15:43:31 +00:00
tools [llvm-cov[ Fix lcov coverage report contains functions from other compilation units. 2019-06-28 15:38:25 +00:00
unittests [DebugInfo] Simplify GSYM::AddressRange and GSYM::AddressRanges 2019-06-28 10:06:11 +00:00
utils [compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.* 2019-06-27 20:56:04 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt
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.