1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test
David Majnemer 05fc1c63f9 [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.

llvm-svn: 259065
2016-01-28 18:20:05 +00:00
..
Analysis [DemandedBits] Fix computation of demanded bits for ICmps 2016-01-25 14:49:36 +00:00
Assembler
Bindings
Bitcode
BugPoint
CodeGen [X86] Don't transform X << 1 to X + X during type legalization 2016-01-28 18:20:05 +00:00
DebugInfo Followup to 258750; update more tests to use .p2align . 2016-01-26 00:35:07 +00:00
Examples
ExecutionEngine [RuntimeDyld][AArch64] Add support for the MachO ARM64_RELOC_SUBTRACTOR reloc. 2016-01-21 21:59:50 +00:00
Feature
FileCheck
Instrumentation
Integer
JitListener
LibDriver
Linker [ThinLTO] Find all needed metadata when linking metadata as postpass 2016-01-25 22:04:56 +00:00
LTO
MC AMDGPU: waitcnt operand fixes 2016-01-28 17:13:44 +00:00
Object Fix identify_magic() to check that a file that starts with MH_MAGIC is 2016-01-26 23:43:37 +00:00
Other
SymbolRewriter
TableGen [llvm-tblgen] Stop emitting the intrinsic name matching code 2016-01-26 23:01:21 +00:00
tools [llvm-nm] Remove redundant check for file validity. 2016-01-27 20:27:44 +00:00
Transforms [PlaceSafepoints] Clean up tests; NFC 2016-01-28 18:01:03 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
TestRunner.sh