[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)
commit23e2cfa834adc8a22e5d3aa3772888596d632896
tree846163738cdd8762f0abc9b8b30c70f85014c579
parentda50ff8e4a63a1bb0f80b1c1f3d71db84485fd77
[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.

llvm-svn: 222647
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/vector-blend.ll
llvm/test/CodeGen/X86/vselect-2.ll