Mirror of official llvm git repository located at http://llvm.org/git/llvm. Updated every five minutes.
Go to file
David Majnemer 98232aa5c9 [X86] Don't transform X << 1 to X + X during type legalization
While legalizing a 64-bit shift left by 1, the following occurs:

We split the shift operand in half: a high half and a low half.
We then create an ADDC with the low half and a ADDE with the high half +
the carry bit from the ADDC.

This is problematic if X is any_ext'd because the high half computation
is now undef + undef + carry bit and there is no way to ensure that the
two undef values had the same bitwise representation.  This results in
the lowest bit in the high half turning into garbage.

Instead, do not try to turn shifts into arithmetic during type
legalization.

This fixes PR26350.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259065 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-28 18:20:05 +00:00
bindings Remove autoconf support 2016-01-26 21:29:08 +00:00
cmake Remove autoconf support 2016-01-26 21:29:08 +00:00
docs [Coverage] Fix more bugs in covmap V1 documentation 2016-01-27 03:13:09 +00:00
examples Remove autoconf support 2016-01-26 21:29:08 +00:00
include Make header self-contained. 2016-01-28 17:48:29 +00:00
lib [X86] Don't transform X << 1 to X + X during type legalization 2016-01-28 18:20:05 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources
test [X86] Don't transform X << 1 to X + X during type legalization 2016-01-28 18:20:05 +00:00
tools [llvm-nm] Remove redundant check for file validity. 2016-01-27 20:27:44 +00:00
unittests Fix identify_magic() to check that a file that starts with MH_MAGIC is 2016-01-26 23:43:37 +00:00
utils [utils] Add windows support to update_llc_test_checks.py 2016-01-27 21:13:18 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [GlobalISel] Add the proper cmake plumbing. 2016-01-20 20:58:56 +00:00
CODE_OWNERS.TXT
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt Revert previous test commit. 2016-01-04 19:13:29 +00:00

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

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.