llvm-6502/lib
Andrea Di Biagio 53daaff125 [X86] Improved lowering of v4x32 build_vector dag nodes.
This patch improves the lowering of v4f32 and v4i32 build_vector dag nodes
that are known to have at least two non-zero elements.

With this patch, a build_vector that performs a blend with zero is 
converted into a shuffle. This is done to let the shuffle legalizer expand
the dag node in a optimal way. For example, if we know that a build_vector
performs a blend with zero, we can try to lower it as a movq/blend instead of
always selecting an insertps.

This patch also improves the logic that lowers a build_vector into a insertps
with zero masking. See for example the extra test cases added to test sse41.ll.

Differential Revision: http://reviews.llvm.org/D6311


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222375 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-19 19:34:29 +00:00
..
Analysis AliasSetTracker: UnknownInsts should contribute to the refcount 2014-11-19 09:41:05 +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 Pass a reference to ValueEnumerator. 2014-11-17 20:06:27 +00:00
CodeGen [X86][SSE] pslldq/psrldq byte shifts/rotation for SSE2 2014-11-19 10:06:49 +00:00
DebugInfo
ExecutionEngine Fix covered switch warning 2014-11-18 01:26:46 +00:00
IR Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +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 [ADT] Fix PR20728 - Incorrect APFloat::fusedMultiplyAdd results for x86_fp80. 2014-11-19 19:15:41 +00:00
TableGen
Target [X86] Improved lowering of v4x32 build_vector dag nodes. 2014-11-19 19:34:29 +00:00
Transforms Vectorize a reduction chain feeding into a 'return' statement. 2014-11-19 16:07:38 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile