OSDN Git Service

[X86][SSE] Add INSERTPS target shuffle combines.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 19 Jan 2016 22:24:12 +0000 (22:24 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 19 Jan 2016 22:24:12 +0000 (22:24 +0000)
commit250273a9cef868e7fa5c3ad1cd88f4bdd17bb5e5
treea91b0669dc47ce74cc48624f11c9fadfe225b8f6
parentf32ef420e6f5b773c79a98554cabf215dc40bc02
[X86][SSE] Add INSERTPS target shuffle combines.

As vector shuffles can only reference two inputs many (V)INSERTPS patterns end up being split over two targets shuffles.

This patch adds combines to attempt to combine (V)INSERTPS nodes with input/output nodes that are just zeroing out these additional vector elements.

Differential Revision: http://reviews.llvm.org/D16072

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258205 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/insertps-combine.ll
test/CodeGen/X86/merge-consecutive-loads-128.ll
test/CodeGen/X86/vector-shuffle-128-v4.ll