Package with x86 vector instruction support

Adam Jackson ajax at redhat.com
Wed Apr 20 21:32:43 UTC 2011


On 4/20/11 1:59 PM, Jerry James wrote:

> I'm packaging a library that does some heavy mathematical
> computations.  The build system tries to cleverly determine whether an
> Intel CPU with vector instructions is being used.  Until I can
> convince upstream to do this at runtime, I'll need to build the
> package (a library) for the lowest common denominator.  The package
> checks for MMX, SSE, SSE2, SSE3, and SSSE3.  For i686, can I assume
> MMX?  SSE?

The least capable processor we've gone out of our way to fix things for 
is the AMD Geode GX, which has MMX and 3DNow, but is also slightly less 
than a proper Pentium Pro in that it doesn't have nopl or cmov.

However, rpm sets --march=i686, which implies only Pentium Pro and does 
not imply MMX or anything newer.  Not that I know of anyone who's tried 
running Fedora on a bare i686 in recent memory.

> I believe I can also build an SSE2 version of the library
> and drop it into /usr/lib/sse2.  How about for x86_64?  Can I assume
> SSE2 is available?  (I thought I could, but I see that /usr/lib64/sse2
> exists on my machine, so now I'm uncertain.)  I don't see a
> /usr/lib64/sse3 or /usr/lib64/ssse3, so I just have to forget those,
> right?

All AMD64 and compatible chips support SSE and SSE2, correct.  I'm 
reasonably sure that path is simply for symmetry with i686 in case some 
application was relying on it.

- ajax


More information about the devel mailing list