[X86][SSE] Missing SSE/AVX1 memory folding integer instructions
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 21 Jan 2015 23:43:30 +0000 (23:43 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 21 Jan 2015 23:43:30 +0000 (23:43 +0000)
commit3f6acdd26564f4c6a375ed7ee16df85c01d54cdd
treefcb07c6296f2dc005e670753510e6b9009218c4a
parentf5f8a3e6a6ed8f72d1ed57c29e5fc6686bbcbedd
[X86][SSE] Missing SSE/AVX1 memory folding integer instructions

Added most of the missing integer vector folding patterns for SSE (to SSE42) and AVX1.

The most useful of these are probably the i32/i64 extraction, i8/i16/i32/i64 insertions, zero/sign extension, unsigned saturation subtractions, i64 subtractions and the variable mask blends (pblendvb) - others include CLMUL, SSE42 string comparisons and bit tests.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226745 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrInfo.cpp
test/CodeGen/X86/2011-11-30-or.ll
test/CodeGen/X86/psubus.ll
test/CodeGen/X86/stack-folding-int-avx1.ll
test/CodeGen/X86/stack-folding-int-sse42.ll