[X86] Improved target specific combine on VSELECT dag nodes.
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 24 Nov 2014 12:23:15 +0000 (12:23 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 24 Nov 2014 12:23:15 +0000 (12:23 +0000)
commita1e1f01699d27a5905c917a06a96b57625963d4e
tree81838d92f8533fbefa1d45cd8f38ea6860311ee0
parent4a9d304d9d89f534479ebaffdb8baf2f4d095f96
[X86] Improved target specific combine on VSELECT dag nodes.

This patch teaches function 'transformVSELECTtoBlendVECTOR_SHUFFLE' how to
convert VSELECT dag nodes to shuffles on targets that do not have SSE4.1.
On pre-SSE4.1 targets, we can still perform blend operations using movss/movsd.

Also, removed a target specific combine that performed a premature lowering of
VSELECT nodes to target specific MOVSS/MOVSD nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222647 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vector-blend.ll
test/CodeGen/X86/vselect-2.ll