Page MenuHomePhabricator

[X86] Correct scheduler information for rotate by constant for Haswell, Broadwell, and Skylake.

Authored by craig.topper on Mar 7 2019, 12:41 AM.



Rotate with explicit immediate is a single uop from Haswell on. An immediate of 1 has a dependency on the previous writer of flags, but the other immediate values do not.

The implicit rotate by 1 instruction is 2 uops. But the flags are merged after the rotate uop so the data result does not see the flag dependency. But I don't think we have any way of modeling that.

RORX is 1 uop without the load. 2 uops with the load. We currently model these with WriteShift/WriteShiftLd.

Diff Detail


Event Timeline

craig.topper created this revision.Mar 7 2019, 12:41 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 7 2019, 12:41 AM
Herald added a subscriber: gbedwell. · View Herald Transcript
andreadb accepted this revision.Mar 7 2019, 3:09 AM


This revision is now accepted and ready to land.Mar 7 2019, 3:09 AM
This revision was automatically updated to reflect the committed changes.