Will Woods (wwoods(a)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