llvm-project/llvm
Andrea Di Biagio 54b0949af9 [X86] Teach how to combine horizontal binop even in the presence of undefs.
Before this change, the backend was unable to fold a build_vector dag
node with UNDEF operands into a single horizontal add/sub.

This patch teaches how to combine a build_vector with UNDEF operands into a
horizontal add/sub when possible. The algorithm conservatively avoids to combine
a build_vector with only a single non-UNDEF operand.

Added test haddsub-undef.ll to verify that we correctly fold horizontal binop
even in the presence of UNDEFs.

llvm-svn: 211265
2014-06-19 10:29:41 +00:00
..
autoconf Remove path_tclsh.m4. 2014-06-02 12:54:32 +00:00
bindings [OCaml] Unbreak Llvm_target.TargetMachine.set_verbose_asm 2014-06-09 17:34:34 +00:00
cmake Remove clang-specific libxml2 check from CMake 2014-06-06 05:08:42 +00:00
docs Revert r211066, 211067, 211068, 211069, 211070. 2014-06-16 22:49:41 +00:00
examples Try to fix the msvc build. 2014-04-29 23:37:02 +00:00
include Remove OwningPtr.h and associated tests 2014-06-19 07:25:18 +00:00
lib [X86] Teach how to combine horizontal binop even in the presence of undefs. 2014-06-19 10:29:41 +00:00
projects
test [X86] Teach how to combine horizontal binop even in the presence of undefs. 2014-06-19 10:29:41 +00:00
tools Move -dwarf-version to an MC level command line option so it's 2014-06-19 06:22:08 +00:00
unittests Remove OwningPtr.h and associated tests 2014-06-19 07:25:18 +00:00
utils Remove OwningPtr.h and associated tests 2014-06-19 07:25:18 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format
.gitignore
CMakeLists.txt Delete trailing whitespace. 2014-06-12 21:27:03 +00:00
CODE_OWNERS.TXT ARM Linux support 2014-04-02 23:03:28 +00:00
CREDITS.TXT Update Credits. 2014-05-29 19:59:58 +00:00
LICENSE.TXT
LLVMBuild.txt
Makefile [configure/make] Propagate names of build host tools when making BuildTools 2014-03-25 21:45:41 +00:00
Makefile.common
Makefile.config.in
Makefile.rules Add the coverage cflags to the link step as well to make sure 2014-06-17 23:27:32 +00:00
README.txt Trivial test commit. 2014-04-26 19:05:45 +00:00
configure Touch configure to force clang's config.h.in reconfiguration on the build servers 2014-06-06 10:36:38 +00:00
llvm.spec.in

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.