[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)
commit8366cebeb52a0d9ea9408de1b62f3551b0f6aa89
tree4164231d570ce57ebe8b512039f4b99f17557d65
parent4dc895164a8b3a26792dc7fe5db391e7218968be
[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.

llvm-svn: 211332
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86ISelLowering.h
llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
llvm/lib/Target/X86/X86InstrSSE.td