Optimize splat of a scalar load into a shuffle of a vector load when it's legal....
authorEvan Cheng <evan.cheng@apple.com>
Wed, 9 Dec 2009 21:00:30 +0000 (21:00 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 9 Dec 2009 21:00:30 +0000 (21:00 +0000)
commitc363094e04df621d41ca570eb2a7bf8826bb8c1a
treef471aca10ab30ffc20bb95bc94a18fed3c50357e
parent89452f7386540ca83e8991e74f1d74bbe7271922
Optimize splat of a scalar load into a shuffle of a vector load when it's legal. e.g.
vector_shuffle (scalar_to_vector (i32 load (ptr + 4))), undef, <0, 0, 0, 0>
=>
vector_shuffle (v4i32 load ptr), undef, <1, 1, 1, 1>

iff ptr is 16-byte aligned (or can be made into 16-byte aligned).

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