RPM packages for i386 are targeted to any Intel 80386 processor or newer. RPM packages for i686 are compiled using instructions from the 80386 instruction set, but the code is optimized for an Intel Pentium or newer processor.
i686 pacakges actually use i686 specific instructions, and will not work on older processors (i386, i486, and i586). i386 packages are the ones that use i386-only instruction set, and scheduling of instructions is optimized for execution of i686 processors (since that is the architecture most people use these days).
The majority of packages for Fedora are compiled with i386 instruction set, since there doesn't seem to be any advantage in using extended instruction sets of newer processors (as was kindly pointed to me on several ocasions). Only the packages that really benefit from extended instruction set are compiled for i586 and/or i686. This basically boils down to instructions for atomic locking and the packages that are actually implementing locking for userland applications (or need to perform it on low level for themself), such as kernel and glibc.
-- Aleksandar Milivojevic <amilivojevic@xxxxxx> Pollard Banknote Limited Systems Administrator 1499 Buffalo Place Tel: (204) 474-2323 ext 276 Winnipeg, MB R3T 1L7