llvm-6502/lib
Andrea Di Biagio 3e5582cc15 [X86] Add target combine rule to select ADDSUB instructions from a build_vector
This patch teaches the backend how to combine a build_vector that implements
an 'addsub' between packed float vectors into a sequence of vector add
and vector sub followed by a VSELECT.

The new VSELECT is expected to be lowered into a BLENDI.
At ISel stage, the sequence 'vector add + vector sub + BLENDI' is
pattern-matched against ISel patterns added at r211427 to select
'addsub' instructions.
Added three more ISel patterns for ADDSUB.

Added test sse3-avx-addsub-2.ll to verify that we correctly emit 'addsub'
instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211679 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-25 10:02:21 +00:00
..
Analysis Support: Move class ScaledNumber 2014-06-24 00:38:09 +00:00
AsmParser IR: add "cmpxchg weak" variant to support permitted failure. 2014-06-13 14:24:07 +00:00
Bitcode Make ObjectFile and BitcodeReader always own the MemoryBuffer. 2014-06-23 21:53:12 +00:00
CodeGen Print a=b as an assignment. 2014-06-24 22:45:16 +00:00
DebugInfo [DWARF parser] Use distinction between DW_AT_ranges_base and DW_AT_GNU_ranges_base instead of DWARF version 2014-06-13 22:31:03 +00:00
ExecutionEngine [RuntimeDyld] Adds the necessary hooks to MCJIT to be able to debug generated 2014-06-25 00:20:53 +00:00
IR Add new debug kind LocTrackingOnly. 2014-06-24 17:02:03 +00:00
IRReader Remove 'using std::errro_code' from lib. 2014-06-13 02:24:39 +00:00
LineEditor
Linker Replace some assert(0)'s with llvm_unreachable. 2014-06-18 05:05:13 +00:00
LTO Move some trivial methods up to MCStreamer. 2014-06-25 00:27:53 +00:00
MC Fix another asserting method in the null streamer. 2014-06-25 05:37:58 +00:00
Object [RuntimeDyld] Adds the necessary hooks to MCJIT to be able to debug generated 2014-06-25 00:20:53 +00:00
Option ArgList: use MakeArgList overloads in subclasses and clean up some calls. 2014-06-20 04:36:29 +00:00
ProfileData Renaming SwapByteOrder() to getSwappedBytes() 2014-06-14 11:36:01 +00:00
Support Use SourceMgr::getMemoryBuffer() in a couple of places 2014-06-25 00:41:15 +00:00
TableGen Convert some assert(0) to llvm_unreachable or fold an 'if' condition into the assert. 2014-06-19 06:10:58 +00:00
Target [X86] Add target combine rule to select ADDSUB instructions from a build_vector 2014-06-25 10:02:21 +00:00
Transforms Factor out part of LICM::sink into a helper function. 2014-06-25 09:17:21 +00:00
CMakeLists.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
LLVMBuild.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
Makefile ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00