1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/test
Michael Kuperstein 493cb3070b [X86] Improve shift combining
This folds (ashr (shl a, [56,48,32,24,16]), SarConst)
into       (shl, (sext (a), [56,48,32,24,16] - SarConst))
or into    (lshr, (sext (a), SarConst - [56,48,32,24,16]))
depending on sign of (SarConst - [56,48,32,24,16])

sexts in X86 are MOVs.
The MOVs have the same code size as above SHIFTs (only SHIFT by 1 has lower code size).
However the MOVs have 2 advantages to SHIFTs on x86:
1. MOVs can write to a register that differs from source.
2. MOVs accept memory operands.

This fixes PR24373.

Patch by: evgeny.v.stupachenko@intel.com
Differential Revision: http://reviews.llvm.org/D13161

llvm-svn: 255761
2015-12-16 11:22:37 +00:00
..
Analysis [X86][SSE] Update the cost table for integer-integer conversions on SSE2/SSE4.1. 2015-12-11 00:31:39 +00:00
Assembler [ConstantFold] Fix bitcast to gep constant folding transform. 2015-12-14 19:30:32 +00:00
Bindings
Bitcode add fast-math-flags to 'call' instructions (PR21290) 2015-12-14 21:59:03 +00:00
BugPoint
CodeGen [X86] Improve shift combining 2015-12-16 11:22:37 +00:00
DebugInfo Recommit LiveDebugValues pass after fixing a couple of minor issues. 2015-12-16 11:09:48 +00:00
Examples
ExecutionEngine Un-XFAIL JIT EH tests under [am]san. 2015-12-15 23:46:21 +00:00
Feature [MergeFunctions] Use II instead of CI for InvokeInst; NFC 2015-12-14 19:11:45 +00:00
FileCheck
Instrumentation [PGO] make profile prefix even shorter and more readable 2015-12-15 00:32:56 +00:00
Integer
JitListener
LibDriver
Linker Use diagnostic handler in the LLVMContext 2015-12-14 23:17:03 +00:00
LTO
MC [X86] Add relaxtion logic for SBB instructions. 2015-12-15 00:09:23 +00:00
Object Stabilize llvm/test/Object/archive-update.test a bit. 2015-12-07 23:15:57 +00:00
Other [llc/opt] Add an option to run all passes twice 2015-12-04 21:56:46 +00:00
SymbolRewriter
TableGen Add new vector types for 512-, 1024- and 2048-bit vectors 2015-11-24 13:07:35 +00:00
tools [sancov] blacklist support. 2015-12-16 00:31:48 +00:00
Transforms [EarlyCSE] DSE of stores which write back loaded values 2015-12-16 01:01:30 +00:00
Unit
Verifier [IR] Add support for floating pointer atomic loads and stores 2015-12-16 00:49:36 +00:00
YAMLParser
.clang-format
CMakeLists.txt [llvm-dwp] Add missing dependency from llvm tests on the llvm-dwp tool 2015-12-01 00:57:05 +00:00
lit.cfg check-llvm: Introduce the new feature "tls". 2015-12-01 01:14:58 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh