[X86] Make the multiply and divide itineraries more consistent.
authorCraig Topper <craig.topper@intel.com>
Mon, 19 Mar 2018 16:38:33 +0000 (16:38 +0000)
committerCraig Topper <craig.topper@intel.com>
Mon, 19 Mar 2018 16:38:33 +0000 (16:38 +0000)
commit5ccd87233fdac5119d50ebfba413c8f4bc484f16
tree494610aae8c8bfec6efd04d6e0b4cb2300d8f848
parenta6137e2b237411c232b48561ea2c308a0cff157b
[X86] Make the multiply and divide itineraries more consistent.

Sometimes we used the same itinerary for MEM and REG forms, but that seems inconsistent with our usual usage.

We also used the MUL8 itinerary for MULX32/64 which was also weird.

The test changes are because we were using IIC_IMUL32_RR and IIC_IMUL64_RR instead of IIC_IMUL32_REG/IIC_IMUL64_REG for the 32 and 64 bit multiplies that produce double width result.

llvm-svn: 327866
llvm/lib/Target/X86/X86InstrArithmetic.td
llvm/lib/Target/X86/X86Schedule.td
llvm/lib/Target/X86/X86ScheduleAtom.td
llvm/test/CodeGen/X86/schedule-x86_64.ll