[x86] Remove the last vestiges of the BLENDI-based ADDSUB pattern
authorChandler Carruth <chandlerc@gmail.com>
Tue, 16 Sep 2014 00:39:08 +0000 (00:39 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Tue, 16 Sep 2014 00:39:08 +0000 (00:39 +0000)
commit2e363ece75c005db692582c543c2759ffe0ab3ca
tree374ff86861882c2b8150b2ae8680edc3aac12ef7
parentc9bc145e31764d5a6399642a8b8993882c133ed9
[x86] Remove the last vestiges of the BLENDI-based ADDSUB pattern
matching. This design just fundamentally didn't work because ADDSUB is
available prior to any legal lowerings of BLENDI nodes. Instead, we have
a dedicated ADDSUB synthetic ISD node which is pattern matched trivially
into the instructions. These nodes are then recognized by both the
existing and a trivial new lowering combine in the backend. Removing
these patterns required adding 2 missing shuffle masks to the DAG
combine, without which tests would have failed. Added the masks and
a helpful assert as well to catch if anything ever goes wrong here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217851 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrSSE.td