aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2008-03-08 23:05:42 +0100
committerUros Bizjak <uros@gcc.gnu.org>2008-03-08 23:05:42 +0100
commit8c729fb26f69579c12c89724faff934c961b0952 (patch)
treeba78f1c6c4c831f0922a69403cb9c50ce0bc32f9
parentfc9161c19fe6c9301224cc856ea2d29561364e46 (diff)
downloadgcc-8c729fb26f69579c12c89724faff934c961b0952.zip
gcc-8c729fb26f69579c12c89724faff934c961b0952.tar.gz
gcc-8c729fb26f69579c12c89724faff934c961b0952.tar.bz2
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
-rw-r--r--gcc/testsuite/gcc.target/i386/sse2-mmx.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/testsuite/gcc.target/i386/sse2-mmx.c b/gcc/testsuite/gcc.target/i386/sse2-mmx.c
index cc2381e..ca375cb 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 ();