llvm-project/llvm
OverMighty 232953f996 [AArch64] Add pattern for SQDML*Lv1i32_indexed
There was no pattern to fold into these instructions. This patch adds
the pattern obtained from the following ACLE intrinsics so that they
generate sqdmlal/sqdmlsl instructions instead of separate sqdmull and
sqadd/sqsub instructions:
 - vqdmlalh_s16, vqdmlslh_s16
 - vqdmlalh_lane_s16, vqdmlalh_laneq_s16, vqdmlslh_lane_s16,
   vqdmlslh_laneq_s16 (when the lane index is 0)

It also modifies the result of the existing pattern for the latter, when
the lane index is not 0, to use the v1i32_indexed instructions instead
of the v4i16_indexed ones.

Fixes #49997.

Differential Revision: https://reviews.llvm.org/D131700
2022-08-17 12:00:47 +01:00
..
benchmarks
bindings
cmake [CMake] Cleanup the descriptions for gRPC options 2022-08-16 09:05:05 -07:00
docs [llvm-objdump] Start on -chained_fixups for llvm-otool 2022-08-15 10:58:52 -04:00
examples [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
include [TTI] Remove getInstructionThroughput cost helper. 2022-08-17 11:41:47 +01:00
lib [AArch64] Add pattern for SQDML*Lv1i32_indexed 2022-08-17 12:00:47 +01:00
projects
resources
runtimes [CMake] Fix runtimes cross-compilation when using LLVM_USE_LINKER 2022-08-03 11:24:09 -07:00
test [AArch64] Add pattern for SQDML*Lv1i32_indexed 2022-08-17 12:00:47 +01:00
tools Untangle the mess which is MachineBasicBlock::hasAddressTaken(). 2022-08-16 16:15:44 -07:00
unittests [unittests/CodeGen] Remove unique_ptr from the result of createTargetMachine 2022-08-16 22:06:50 +00:00
utils [Intrinsics] Add initial support for NonNull attribute 2022-08-16 21:28:23 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [llvm] Include utils/unittest before projects and runtimes 2022-08-15 09:54:35 -07:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.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.