llvm-6502/lib
Chandler Carruth 330aa6fd6b [x86] Add a dedicated lowering path for zext-compatible vector shuffles
to the new vector shuffle lowering code.

This allows us to emit PMOVZX variants consistently for patterns where
it is a viable lowering. This instruction is both fast and allows us to
fold loads into it. This only hooks the new lowering up for i16 and i8
element widths, mostly so I could manage the change to the tests. I'll
add the i32 one next, although it is significantly less interesting.

One thing to note is that we already had some tests for these patterns
but those tests had far less horrible instructions. The problem is that
those tests weren't checking the strict start and end of the instruction
sequence. =[ As a consequence something changed in the lowering making
us generate *TERRIBLE* code for these patterns in SSE2 through SSSE3.
I've consolidated all of the tests and spelled out the madness that we
currently emit for these shuffles. I'm going to try to figure out what
has gone wrong here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218102 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-19 06:07:49 +00:00
..
Analysis Add file to CMake build as well. 2014-09-18 00:39:20 +00:00
AsmParser Make CallingConv::ID an alias of "unsigned". 2014-09-10 18:00:17 +00:00
Bitcode Use IntrusiveRefCntPtr to manage the lifetime of BitCodeAbbrevs. 2014-09-15 15:44:14 +00:00
CodeGen Optimize sext/zext insertion algorithm in back-end. 2014-09-19 05:30:35 +00:00
DebugInfo Fix DWARFUnitSection::getUnitForOffset(). 2014-09-18 09:38:15 +00:00
ExecutionEngine [MCJIT] Fix a debugging-output formatting bug in RuntimeDyld. 2014-09-18 16:43:24 +00:00
IR Use cast<> instead of unchecked dyn_cast<> 2014-09-18 22:28:56 +00:00
IRReader Pass a && to getLazyBitcodeModule. 2014-09-03 17:31:46 +00:00
LineEditor
Linker Merge alignment of common GlobalValue. 2014-09-09 17:48:18 +00:00
LTO LTO: introduce object file-based on-disk module format. 2014-09-18 21:28:49 +00:00
MC Another required re-setting for MCStreamer::reset(). 2014-09-17 17:50:34 +00:00
Object LTO: introduce object file-based on-disk module format. 2014-09-18 21:28:49 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData LineIterator: Provide a variant that keeps blank lines 2014-09-17 15:43:01 +00:00
Support LineIterator: Provide a variant that keeps blank lines 2014-09-17 15:43:01 +00:00
TableGen [TableGen] Fully resolve class-instance values before defs in multiclasses 2014-09-16 17:14:13 +00:00
Target [x86] Add a dedicated lowering path for zext-compatible vector shuffles 2014-09-19 06:07:49 +00:00
Transforms Add a new pass FunctionTargetTransformInfo. This pass serves as a 2014-09-18 00:34:14 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile