From: Uros Bizjak Date: Sat, 8 Mar 2008 22:05:42 +0000 (+0100) Subject: sse2-mmx.c (unsigned_add3): Use _mm_setzero_si64 to zero carry. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8c729fb26f69579c12c89724faff934c961b0952;p=gcc.git sse2-mmx.c (unsigned_add3): Use _mm_setzero_si64 to zero carry. * gcc.target/i386/sse2-mmx.c (unsigned_add3): Use _mm_setzero_si64 to zero carry. From-SVN: r133043 --- diff --git a/gcc/testsuite/gcc.target/i386/sse2-mmx.c b/gcc/testsuite/gcc.target/i386/sse2-mmx.c index cc2381e04ab..ca375cb90d9 100644 --- a/gcc/testsuite/gcc.target/i386/sse2-mmx.c +++ b/gcc/testsuite/gcc.target/i386/sse2-mmx.c @@ -23,10 +23,10 @@ unsigned_add3 (const __m64 * a, const __m64 * b, unsigned int i; - one = _mm_cmpeq_pi8 (_a, _a); - one = _mm_sub_si64 (_mm_xor_si64 (one, one), one); + carry = _mm_setzero_si64 (); - carry = _mm_xor_si64 (one, one); + one = _mm_cmpeq_pi8 (carry, carry); + one = _mm_sub_si64 (carry, one); for (i = 0; i < count; i++) { @@ -49,7 +49,6 @@ unsigned_add3 (const __m64 * a, const __m64 * b, carry = _mm_srli_si64 (carry, 63); } - _mm_empty (); return carry; } @@ -66,6 +65,8 @@ sse2_test (void) carry = (unsigned long long) unsigned_add3 ((__m64 *)a, (__m64 *)b, (__m64 *)result, N); + _mm_empty (); + if (carry != 1) abort ();