[X86] Use MOVZX16rr8/MOVZXrm8 when extending input for i8 udivrem.
authorCraig Topper <craig.topper@intel.com>
Fri, 6 Sep 2019 19:15:04 +0000 (19:15 +0000)
committerCraig Topper <craig.topper@intel.com>
Fri, 6 Sep 2019 19:15:04 +0000 (19:15 +0000)
commit22b35c4291d2d90db27cac4ccf5c21f619ff49af
tree7145226eab3c9aa66a2ad3960fb83e25967568fe
parent4934f013b12b1a8d35efa69165c17eed92c52ff9
[X86] Use MOVZX16rr8/MOVZXrm8 when extending input for i8 udivrem.

We can rely on X86FixupBWInsts to turn these into MOVZX32. This
simplifies a follow up commit to use MOVSX for i8 sdivrem with
a late optimization to use CBW when register allocation works out.

llvm-svn: 371242
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
llvm/test/CodeGen/X86/2008-09-11-CoalescerBug2.ll
llvm/test/CodeGen/X86/anyext.ll
llvm/test/CodeGen/X86/bypass-slow-division-32.ll
llvm/test/CodeGen/X86/bypass-slow-division-tune.ll
llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
llvm/test/CodeGen/X86/divrem.ll
llvm/test/CodeGen/X86/divrem8_ext.ll
llvm/test/CodeGen/X86/scalar_widen_div.ll
llvm/test/CodeGen/X86/urem-power-of-two.ll