llvm-6502/lib
Chandler Carruth a644b090de [x86] Teach the new vector shuffle lowering how to lower 128-bit
shuffles using AVX and AVX2 instructions. This fixes PR21138, one of the
few remaining regressions impacting benchmarks from the new vector
shuffle lowering.

You may note that it "regresses" many of the vperm2x128 test cases --
these were actually "improved" by the naive lowering that the new
shuffle lowering previously did. This regression gave me fits. I had
this patch ready-to-go about an hour after flipping the switch but
wasn't sure how to have the best of both worlds here and thought the
correct solution might be a completely different approach to lowering
these vector shuffles.

I'm now convinced this is the correct lowering and the missed
optimizations shown in vperm2x128 are actually due to missing
target-independent DAG combines. I've even written most of the needed
DAG combine and will submit it shortly, but this part is ready and
should help some real-world benchmarks out.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219079 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-05 11:41:36 +00:00
..
Analysis Make AAMDNodes ctor and operator bool (!!!) explicit, mop up bugs and weirdness exposed by it. 2014-10-04 22:44:29 +00:00
AsmParser
Bitcode
CodeGen Make AAMDNodes ctor and operator bool (!!!) explicit, mop up bugs and weirdness exposed by it. 2014-10-04 22:44:29 +00:00
DebugInfo Remove unnecessary copying or replace it with moves in a bunch of places. 2014-10-04 16:55:56 +00:00
ExecutionEngine
IR Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
IRReader
LineEditor
Linker
LTO
MC MCParser: Modernize memory handling. 2014-10-03 18:32:55 +00:00
Object
Option
ProfileData Eliminate some deep std::vector copies. NFC. 2014-10-03 18:33:16 +00:00
Support Converting the ErrorHandlerMutex to a ManagedStatic to avoid the static constructor and destructor. 2014-10-03 22:03:12 +00:00
TableGen Eliminate some deep std::vector copies. NFC. 2014-10-03 18:33:16 +00:00
Target [x86] Teach the new vector shuffle lowering how to lower 128-bit 2014-10-05 11:41:36 +00:00
Transforms [InstCombine] Simplify the logic from r219067 using ValueTracking 2014-10-05 00:53:02 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile