x86 architecture is total mess when it comes to naming. Basically there were “i386”, “i486”, “i586”, “i686” — nothing more was used. But this gives lot of problems.
First one — which optimisations can be used on “i686”? It has MMX for sure but does it have SSE? SSEv2? SSEv3? 3DNow! technology? It depends on cpu… for example PentiumPro (the first “i686”) has MMX but lack any other addons. Athlon64 will have most of them (or even all in newest cores) but under 32bit Linux it still be “i686”.
Second thing is how Linux recognize CPU. On ALIX board I have AMD Geode LX which has MMX and 3DNow! but lack SSE. According to some data it is “i686” but under Linux it is “i586”:
root@alix:~$ uname -m i586
Currently I am running Ångström on it but is it built with “i686” optimisations…