[X86] Limit the number of target specific nodes emitted in LowerShiftParts
authorCraig Topper <craig.topper@intel.com>
Fri, 29 Jun 2018 17:24:07 +0000 (17:24 +0000)
committerCraig Topper <craig.topper@intel.com>
Fri, 29 Jun 2018 17:24:07 +0000 (17:24 +0000)
commit87b107dd698fcf0678e65208d670c04cfa570355
treec58ce60c02531a38f45a5fa8e896aa052021d128
parentd77e7ba74e77fe8fc61f84e79ba6678d614c40af
[X86] Limit the number of target specific nodes emitted in LowerShiftParts

The important part is the creation of the SHLD/SHRD nodes. The compare and the conditional move can use target independent nodes that can be legalized on their own. This gives some opportunities to trigger the optimizations present in the lowering for those things. And its just better to limit the number of places we emit target specific nodes.

The changed test cases still aren't optimal.

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

llvm-svn: 335998
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/legalize-shift-64.ll
llvm/test/CodeGen/X86/pr32282.ll