1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
Go to file
Andrea Di Biagio 7e0e036a46 [X86] Add target specific combine rules to fold SSE2/AVX2 packed arithmetic shift intrinsics.
This patch teaches the backend how to combine packed SSE2/AVX2 arithmetic shift
intrinsics.

The rules are:
 - Always fold a packed arithmetic shift by zero to its first operand;
 - Convert a packed arithmetic shift intrinsic dag node into a ISD::SRA only if
   the shift count is known to be smaller than the vector element size.

This patch also teaches to function 'getTargetVShiftByConstNode' how fold
target specific vector shifts by zero.

Added two new tests to verify that the DAGCombiner is able to fold
sequences of SSE2/AVX2 packed arithmetic shift calls.

llvm-svn: 208342
2014-05-08 17:44:04 +00:00
autoconf
bindings [OCaml] Add an ocamlfind package llvm.all_backends. 2014-05-01 21:00:52 +00:00
cmake Disable -Wcomment when building with GCC. 2014-05-06 09:46:06 +00:00
docs IR: Don't allow non-default visibility on local linkage 2014-05-07 22:57:20 +00:00
examples Try to fix the msvc build. 2014-04-29 23:37:02 +00:00
include Add isOSFreeBSD triple test 2014-05-08 13:00:15 +00:00
lib [X86] Add target specific combine rules to fold SSE2/AVX2 packed arithmetic shift intrinsics. 2014-05-08 17:44:04 +00:00
projects
test [X86] Add target specific combine rules to fold SSE2/AVX2 packed arithmetic shift intrinsics. 2014-05-08 17:44:04 +00:00
tools Remove the UseCFI option from createAsmStreamer. 2014-05-07 13:00:43 +00:00
unittests Replace a virtual with an override. 2014-05-07 19:52:32 +00:00
utils Move late partial-unrolling thresholds into the processor definitions 2014-05-08 09:14:44 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt [CMake] Add build rules for llvm-PerfectShuffle utility 2014-05-07 16:54:00 +00:00
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules [Build] Add rule to generate fully-expanded .td file 2014-05-06 03:49:45 +00:00
README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, 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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.