Use a compile-time constant for the "K" constraint in the MMX detection.
authorSøren Sandmann Pedersen <ssp@redhat.com>
Sun, 1 Jul 2012 20:59:53 +0000 (16:59 -0400)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Mon, 2 Jul 2012 22:21:21 +0000 (18:21 -0400)
When compiling with -O0, gcc doesn't understand that in

     signed char x = 0;

     ...

     asm ("...",
        : "K" (x));

x is constant. Fix this by using an immediate constant instead of a
variable.

configure.ac

index 2b9d1ba..36f423e 100644 (file)
@@ -351,12 +351,11 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 int main () {
     __m64 v = _mm_cvtsi32_si64 (1);
     __m64 w;
-    signed char x = 0;
 
     /* Some versions of clang will choke on K */
     asm ("pshufw %2, %1, %0\n\t"
         : "=y" (w)
-        : "y" (v), "K" (x)
+        : "y" (v), "K" (5)
     );
 
     return _mm_cvtsi64_si32 (v);