From: Richard Henderson Date: Fri, 23 Dec 2005 00:31:44 +0000 (-0800) Subject: mmintrin.h (_mm_add_si64): Only define for SSE2. X-Git-Tag: releases/gcc-4.2.0~5175 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c52243fe1103584323ced1e66d601233c23a4b75;p=thirdparty%2Fgcc.git mmintrin.h (_mm_add_si64): Only define for SSE2. * config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2. (_mm_sub_si64): Likewise. * config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise. * gcc.target/i386/sse-7.c: Use -msse2. From-SVN: r108996 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0ee56c05528d..2c592a262c3f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-12-22 Richard Henderson + + * config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2. + (_mm_sub_si64): Likewise. + * config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise. + 2005-12-23 Alan Modra PR rtl-optimization/25432 @@ -2213,7 +2219,7 @@ 2005-12-06 Jan Beulich * config/i386/i386.c (builtin_description): Use MASK_SSE2 for - __builtin_ia32_paddq and __builtin_ia32_subq. + __builtin_ia32_paddq and __builtin_ia32_psubq. (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for __builtin_ia32_pshufw. * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2. diff --git a/gcc/config/i386/mmintrin.h b/gcc/config/i386/mmintrin.h index 252364b803e1..b98caf0cac22 100644 --- a/gcc/config/i386/mmintrin.h +++ b/gcc/config/i386/mmintrin.h @@ -274,11 +274,13 @@ _m_paddd (__m64 __m1, __m64 __m2) } /* Add the 64-bit values in M1 to the 64-bit values in M2. */ +#ifdef __SSE2__ static __inline __m64 __attribute__((__always_inline__)) _mm_add_si64 (__m64 __m1, __m64 __m2) { return (__m64) __builtin_ia32_paddq ((long long)__m1, (long long)__m2); } +#endif /* Add the 8-bit values in M1 to the 8-bit values in M2 using signed saturated arithmetic. */ @@ -376,11 +378,13 @@ _m_psubd (__m64 __m1, __m64 __m2) } /* Add the 64-bit values in M1 to the 64-bit values in M2. */ +#ifdef __SSE2__ static __inline __m64 __attribute__((__always_inline__)) _mm_sub_si64 (__m64 __m1, __m64 __m2) { return (__m64) __builtin_ia32_psubq ((long long)__m1, (long long)__m2); } +#endif /* Subtract the 8-bit values in M2 from the 8-bit values in M1 using signed saturating arithmetic. */ diff --git a/gcc/config/i386/xmmintrin.h b/gcc/config/i386/xmmintrin.h index 99790b064202..20c41c739d54 100644 --- a/gcc/config/i386/xmmintrin.h +++ b/gcc/config/i386/xmmintrin.h @@ -1075,6 +1075,7 @@ _m_pmulhuw (__m64 __A, __m64 __B) /* Return a combination of the four 16-bit values in A. The selector must be an immediate. */ +#ifdef __SSE2__ #if 0 static __inline __m64 __attribute__((__always_inline__)) _mm_shuffle_pi16 (__m64 __A, int __N) @@ -1092,6 +1093,7 @@ _m_pshufw (__m64 __A, int __N) ((__m64) __builtin_ia32_pshufw ((__v4hi)(A), (N))) #define _m_pshufw(A, N) _mm_shuffle_pi16 ((A), (N)) #endif +#endif /* Conditionally store byte elements of A into P. The high bit of each byte in the selector N determines whether the corresponding byte from diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 23222eabd9ef..078c5417bae0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2005-12-22 Richard Henderson + + * gcc.target/i386/sse-7.c: Use -msse2. + 2005-12-23 Jakub Jelinek PR rtl-optimization/25432 diff --git a/gcc/testsuite/gcc.target/i386/sse-7.c b/gcc/testsuite/gcc.target/i386/sse-7.c index 3d4d1ec45fac..41e771e696a7 100644 --- a/gcc/testsuite/gcc.target/i386/sse-7.c +++ b/gcc/testsuite/gcc.target/i386/sse-7.c @@ -1,5 +1,5 @@ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ -/* { dg-options "-O2 -msse" } */ +/* { dg-options "-O2 -msse2" } */ #include #include #include