This is an archive of the discontinued LLVM Phabricator instance.

[X86] Make the multiply and divide itineraries more consistent.
ClosedPublic

Authored by craig.topper on Mar 18 2018, 7:14 PM.

Details

Summary

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.

Diff Detail

Event Timeline

craig.topper created this revision.Mar 18 2018, 7:14 PM
RKSimon accepted this revision.Mar 19 2018, 5:00 AM

LGTM - it amazes me we never got this level of detail in the SchedWrite classes..

This revision is now accepted and ready to land.Mar 19 2018, 5:00 AM
craig.topper closed this revision.Mar 20 2018, 11:10 AM

Commited in r327866 but forgot the Differential Revision line