configure.ac: Add check for pmulhuw assembly
authorSøren Sandmann Pedersen <ssp@redhat.com>
Thu, 10 Oct 2013 02:12:23 +0000 (22:12 -0400)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Sat, 12 Oct 2013 19:04:27 +0000 (15:04 -0400)
Clang 3.0 chokes on the following bit of assembly

    asm ("pmulhuw %1, %0\n\t"
        : "+y" (__A)
        : "y" (__B)
    );

from pixman-mmx.c with this error message:

    fatal error: error in backend: Unsupported asm: input constraint
        with a matching output constraint of incompatible type!

So add a check in configure to only enable MMX when the compiler can
deal with it.

configure.ac

index 2dd477663def4db160ee4e0f3b694ea9e865eb16..59e31c4a1cef355b4a7206f858051e5f5497759b 100644 (file)
@@ -355,6 +355,12 @@ int main () {
         : "y" (v), "K" (5)
     );
 
+    /* Some versions of clang will choke on this */
+    asm ("pmulhuw %1, %0\n\t"
+       : "+y" (w)
+       : "y" (v)
+    );
+
     return _mm_cvtsi64_si32 (v);
 }]])], have_mmx_intrinsics=yes)
 CFLAGS=$xserver_save_CFLAGS