llvm-6502/test
Tim Northover 44697f3fc1 X86 CodeGenPrep: sink shufflevectors before shifts
On x86, shifting a vector by a scalar is significantly cheaper than shifting a
vector by another fully general vector. Unfortunately, because SelectionDAG
operates on just one basic block at a time, the shufflevector instruction that
reveals whether the right-hand side of a shift *is* really a scalar is often
not visible to CodeGen when it's needed.

This adds another handler to CodeGenPrepare, to sink any useful shufflevector
instructions down to the basic block where they're used, predicated on a target
hook (since on other architectures, doing so will often just introduce extra
real work).

rdar://problem/16063505

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201655 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-19 10:02:43 +00:00
..
Analysis Add extra CHECK prefix to tests with explicit prefix 2014-02-16 13:28:15 +00:00
Assembler Bug 18228 - Fix accepting bitcasts between vectors of pointers with a 2014-01-22 19:21:33 +00:00
Bindings Fix known typos 2014-01-24 17:20:08 +00:00
Bitcode Update testing case for r200806. 2014-02-04 23:53:12 +00:00
BugPoint
CodeGen Avoid an infinite cycle with private linkage and -f{data|function}-sections. 2014-02-19 01:28:30 +00:00
DebugInfo Add a DIELoc class to cover the DW_FORM_exprloc set of expressions 2014-02-16 08:46:55 +00:00
ExecutionEngine PC-rel implemented in AArch64, test now pass 2014-02-12 17:17:41 +00:00
Feature Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
FileCheck
Instrumentation Now that llvm always does the right thing with private, use it. 2014-02-19 02:08:39 +00:00
Integer
JitListener
Linker Copy dll storage in copyAttributes. 2014-02-13 05:11:35 +00:00
LTO Don't internalize linkonce_odr non constant variables. 2014-02-07 19:04:43 +00:00
MC Remove special FP opcode maps and instead add enough MRM_XX formats to handle all the FP operations. This increases format by 1 bit, but decreases opcode map by 1 bit so the TSFlags size doesn't change. 2014-02-19 08:25:02 +00:00
Object Add a test for printing absolute symbols in ELF. 2014-02-05 04:36:47 +00:00
Other [PM] Wire up the Verifier for the new pass manager and connect it to the 2014-01-20 11:34:08 +00:00
TableGen
tools llvm-objdump/COFF: Print load configuration table. 2014-02-19 03:53:11 +00:00
Transforms X86 CodeGenPrep: sink shufflevectors before shifts 2014-02-19 10:02:43 +00:00
Unit
Verifier [PM] Make the verifier work independently of any pass manager. 2014-01-19 02:22:18 +00:00
YAMLParser
.clang-format
CMakeLists.txt PGO: llvm-profdata: tool for merging profiles 2014-02-17 23:22:49 +00:00
lit.cfg PGO: llvm-profdata: tool for merging profiles 2014-02-17 23:22:49 +00:00
lit.site.cfg.in Eliminate inappropriate use of FindProgramByName() from lli 2014-01-22 21:52:35 +00:00
Makefile Eliminate inappropriate use of FindProgramByName() from lli 2014-01-22 21:52:35 +00:00
Makefile.tests
TestRunner.sh