llvm-6502/lib
Chandler Carruth bd357588a1 [x86] Teach the x86 vector shuffle lowering to detect mergable 128-bit
lanes.

By special casing these we can often either reduce the total number of
shuffles significantly or reduce the number of (high latency on Haswell)
AVX2 shuffles that potentially cross 128-bit lanes. Even when these
don't actually cross lanes, they have much higher latency to support
that. Doing two of them and a blend is worse than doing a single insert
across the 128-bit lanes to blend and then doing a single interleaved
shuffle.

While this seems like a narrow case, it kept cropping up on me and the
difference is *huge* as you can see in many of the test cases. I first
hit this trying to perfectly fix the interleaving shuffle patterns used
by Halide for AVX2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222533 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-21 13:56:05 +00:00
..
Analysis AliasSet: Simplify mergeSetIn 2014-11-19 19:36:18 +00:00
AsmParser Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
Bitcode Add accessor marcos to ConstantPlaceHolder, similar to those in the base class. 2014-11-21 02:42:08 +00:00
CodeGen [DAG] Refactor the shuffle combining logic in DAGCombiner. NFC. 2014-11-21 11:33:07 +00:00
DebugInfo Make DWARFAcceleratorTable::dump() const. 2014-11-20 16:21:11 +00:00
ExecutionEngine [MCJIT] Remove JITEventListener::NotifyFreeingMachineCode. This method is dead 2014-11-21 01:57:09 +00:00
IR Add curly braces to workaround an MSVC bug. 2014-11-21 01:19:09 +00:00
IRReader
LineEditor
Linker Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
LTO Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
MC Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
Object llvm-readobj: fix off-by-one error in COFFDumper 2014-11-19 02:07:10 +00:00
Option
ProfileData
Support Remove support for undocumented SpecialCaseList entries. 2014-11-20 01:27:19 +00:00
TableGen
Target [x86] Teach the x86 vector shuffle lowering to detect mergable 128-bit 2014-11-21 13:56:05 +00:00
Transforms [asan] Add new hidden compile-time flag asan-instrument-allocas to sanitize variable-sized dynamic allocas. Patch by Max Ostapenko. 2014-11-21 10:29:50 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile