i686 ---> i586, i386 ---> i586, x86_64 stays the same

Bill Nottingham notting at redhat.com
Mon Apr 6 14:57:48 UTC 2009


Will Woods (wwoods at redhat.com) said: 
> Again: the only difference between i586 and i686 is the CMOV family of
> instructions, which are generally *slower* than the i586 version.
> 
> You can read Linus' detailed explanation here:
> http://ondioline.org/mail/cmov-a-bad-idea-on-out-of-order-cpus
> 
> Building for i686 gives *no* real performance benefit[1], but breaks
> support for i586 machines - Via C7-based netbooks, AMD Geode (e.g. the
> OLPC XO-1), and so on.
> 
> -w
> 
> [1] except on in-order CPUs like Atom and the original Pentium

Actually, in some testing I did, the fasted was '-march=i686
-mtune=generic' (which was ~1% faster than '-march=i586 -mtune=generic'),
tested across Core2Duo, Athlon64, and Atom.

Twiddling the instruction scheduling (-mtune) invariably made things
worse, across the board.

Bill




More information about the fedora-test-list mailing list