AVX: We lower VECTOR_SHUFFLE and BUILD_VECTOR nodes into vbroadcast instructions
authorNadav Rotem <nadav.rotem@intel.com>
Tue, 24 Apr 2012 11:07:03 +0000 (11:07 +0000)
committerNadav Rotem <nadav.rotem@intel.com>
Tue, 24 Apr 2012 11:07:03 +0000 (11:07 +0000)
commitd1a79136e33afd7069edb4c73d31af3fafb840a2
treebd9371c3cebf9c27e0921744b2a86b977e61f8eb
parentadb082cd6ae2ec799838cd84d54a381bca175cd4
AVX: We lower VECTOR_SHUFFLE and BUILD_VECTOR nodes into vbroadcast instructions
using the pattern (vbroadcast (i32load src)). In some cases, after we generate
this pattern new users are added to the load node, which prevent the selection
of the blend pattern. This commit provides fallback patterns which perform
in-vector broadcast (using in-vector vbroadcast in AVX2 and pshufd on AVX1).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155437 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/avx2-vbroadcast.ll