This is an archive of the discontinued LLVM Phabricator instance.

[X86] Adding tuning flags for int <-> fp domain switching penalties; NFC
ClosedPublic

Authored by goldstein.w.n on Feb 12 2023, 2:14 PM.

Details

Summary

Atom

  • No domain switching penalties

Nehalem+

  • No penalty on moves

Haswell+

  • No penalty on moves / shuffles

Skylake+

  • No penality on moves / shuffles / blends

Diff Detail

Event Timeline

goldstein.w.n created this revision.Feb 12 2023, 2:14 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 12 2023, 2:14 PM
goldstein.w.n requested review of this revision.Feb 12 2023, 2:14 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 12 2023, 2:14 PM
RKSimon added inline comments.Feb 13 2023, 6:38 AM
llvm/lib/Target/X86/X86.td
551

Do you have plans to use all of these domain tuning flags?

goldstein.w.n added inline comments.Feb 13 2023, 8:47 AM
llvm/lib/Target/X86/X86.td
551

Do you have plans to use all of these domain tuning flags?

Don't have plans for the blend/mov ones, but figured since making it a unique patch, might as well cover all the bases.

I wouldn't say they aren't usable however, there are definitely some shuffle cases where it pays to override AllowFloat / AllowInt which these flags can help with.

RKSimon accepted this revision.Feb 13 2023, 9:09 AM

LGTM - testing can wait until we start using these (but we will need to have coverage driven by -mattr=+no-bypass-delay as well as specific CPU targets)

This revision is now accepted and ready to land.Feb 13 2023, 9:09 AM

@goldstein.w.n Why is this dependent on D143786?

@goldstein.w.n Why is this dependent on D143786?

They both modify X86.td see L882.
We could seperate but one of them would need to be rebased after the other was commited.

Add unpck/movhlps + support for codesize / tput decisiosn

Matt added a subscriber: Matt.Feb 27 2023, 10:40 AM

Rebase (after D144832, no dep on D143786)

This revision was landed with ongoing or failed builds.Feb 27 2023, 4:53 PM
This revision was automatically updated to reflect the committed changes.