[x86] Make the x86 PACKSSWB, PACKSSDW, PACKUSWB, and PACKUSDW
authorChandler Carruth <chandlerc@gmail.com>
Fri, 20 Jun 2014 01:05:28 +0000 (01:05 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 20 Jun 2014 01:05:28 +0000 (01:05 +0000)
commitc577e71bf580d344970406915e050a301ae8a28d
tree74bf87f17abedf54f91b7eda6709847ce67de899
parent160dcf5b61b8d328cd1705a90c1e0ae27dcabd41
[x86] Make the x86 PACKSSWB, PACKSSDW, PACKUSWB, and PACKUSDW
instructions available as synthetic SDNodes PACKSS and PACKUS that will
select to the correct instruction variants based on the return type.
This allows us to use these rather important instructions when lowering
vector shuffles.

Also moves the relevant instruction definitions to be split out from
the fully generic multiclasses to allow them to match these new SDNodes
in the same way that the UNPCK instructions do.

No functionality should actually be changed here.

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