[Pixman] [PATCH 1/3] autoconf: add MMX EXT support check

Matt Turner mattst88 at gmail.com
Sun Feb 19 14:12:21 PST 2012

On Sun, Feb 19, 2012 at 4:59 PM, Søren Sandmann <sandmann at cs.au.dk> wrote:
> Matt Turner <mattst88 at gmail.com> writes:
>> The current runtime test checked that MMX extensions were available
>> before executing code in pixman-mmx.c, even though no MMX extensions
>> were used.
>> The new --{enable,disable}-mmxext flag enables the use of MMX extensions
>> in pixman-mmx.c. This allows us to use a few more efficient instructions
>> added with 3DNow and SSE1 by default, and also allows the builder to
>> disable these instructions and use pixman-mmx.c on a system without MMX
>> extensions, something that wasn't possible before.
> Are there any interesting chips without MMX extensions? Pentium MMX
> definitely is not interesting. If there aren't, I'd rather just get rid
> of the ifdefs and unconditionally require MMX-ext to be present.

Not really, but it doesn't seem to be much code at all to support
MMX/nonEXT. Either way is okay with me.

>> The SSE intrinsics header xmmintrin.h includes the MMX extensions we
>> want to use, while the mm3dnow.h header does not. Instead of compiling
>> with -msse (which would cause SSE instructions to be generated), we use
>> a hack and just #define __SSE__ before including xmmintrin.h.
> I like this hack, but looking at the code it doesn't look like you are
> using it?

Ah, I hit problems with that. I should have removed that paragraph
from the commit message.

When you compile xmmintrin.h with #define __SSE__ but without -msse,
you get lots of errors about converting between vector types, so I
don't think it works.

I wound up just duplicating the two _mm_* functions the _MM_SHUFFLE.

More information about the Pixman mailing list