[X86][SSE] Use pblendw for v4i32/v2i64 during isel.
authorCraig Topper <craig.topper@intel.com>
Sun, 24 Feb 2019 19:23:41 +0000 (19:23 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 24 Feb 2019 19:23:41 +0000 (19:23 +0000)
commit5532a9873765e1f068a1fd85f2bba803dc23c378
tree443c272993f268a1a02453af933f156f1c0fc28e
parentce2bd19c49bf7541cb8c1a072332db0f9cc277d3
[X86][SSE] Use pblendw for v4i32/v2i64 during isel.

Summary:

Previously we used BLENDPS/BLENDPD but that puts the blend in the FP domain. Under optsize, the two address instruction pass can cause blendps/blendpd to commute to blendps/blendpd. But we probably shouldn't do that if the original type was a integer. So use pblendw instead.

Reviewers: spatel, RKSimon

Reviewed By: RKSimon

Subscribers: jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58574

llvm-svn: 354755
llvm/lib/Target/X86/X86InstrSSE.td
llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll
llvm/test/CodeGen/X86/combine-sdiv.ll
llvm/test/CodeGen/X86/commute-blend-sse41.ll
llvm/test/CodeGen/X86/insertelement-ones.ll
llvm/test/CodeGen/X86/lower-vec-shift.ll
llvm/test/CodeGen/X86/sse2.ll
llvm/test/CodeGen/X86/vector-narrow-binop.ll
llvm/test/CodeGen/X86/vector-shuffle-128-v4.ll
llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll