Synthesize SSE3/AVX 128 bit horizontal add/sub instructions from
authorDuncan Sands <baldrick@free.fr>
Thu, 22 Sep 2011 20:15:48 +0000 (20:15 +0000)
committerDuncan Sands <baldrick@free.fr>
Thu, 22 Sep 2011 20:15:48 +0000 (20:15 +0000)
commit17470bee5fd18bb2eae7825dae535c060a34ee7d
treefb9368f9a8f91124a5a1a541ca9a5f48b2d3a6d1
parentd102a03b36fb522899cefc31a396c9793b929cf6
Synthesize SSE3/AVX 128 bit horizontal add/sub instructions from
floating point add/sub of appropriate shuffle vectors.  Does not
synthesize the 256 bit AVX versions because they work differently.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140332 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86InstrFragmentsSIMD.td
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/haddsub.ll [new file with mode: 0644]