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
This commit is contained in:
parent
2b2f3077f3
commit
c52243fe11
@ -1,3 +1,9 @@
|
|||||||
|
2005-12-22 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
|
* 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 <amodra@bigpond.net.au>
|
2005-12-23 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
PR rtl-optimization/25432
|
PR rtl-optimization/25432
|
||||||
@ -2213,7 +2219,7 @@
|
|||||||
2005-12-06 Jan Beulich <jbeulich@novell.com>
|
2005-12-06 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
* config/i386/i386.c (builtin_description): Use MASK_SSE2 for
|
* 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
|
(ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
|
||||||
__builtin_ia32_pshufw.
|
__builtin_ia32_pshufw.
|
||||||
* config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
|
* config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
|
||||||
|
@ -274,11 +274,13 @@ _m_paddd (__m64 __m1, __m64 __m2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Add the 64-bit values in M1 to the 64-bit values in M2. */
|
/* Add the 64-bit values in M1 to the 64-bit values in M2. */
|
||||||
|
#ifdef __SSE2__
|
||||||
static __inline __m64 __attribute__((__always_inline__))
|
static __inline __m64 __attribute__((__always_inline__))
|
||||||
_mm_add_si64 (__m64 __m1, __m64 __m2)
|
_mm_add_si64 (__m64 __m1, __m64 __m2)
|
||||||
{
|
{
|
||||||
return (__m64) __builtin_ia32_paddq ((long long)__m1, (long long)__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
|
/* Add the 8-bit values in M1 to the 8-bit values in M2 using signed
|
||||||
saturated arithmetic. */
|
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. */
|
/* Add the 64-bit values in M1 to the 64-bit values in M2. */
|
||||||
|
#ifdef __SSE2__
|
||||||
static __inline __m64 __attribute__((__always_inline__))
|
static __inline __m64 __attribute__((__always_inline__))
|
||||||
_mm_sub_si64 (__m64 __m1, __m64 __m2)
|
_mm_sub_si64 (__m64 __m1, __m64 __m2)
|
||||||
{
|
{
|
||||||
return (__m64) __builtin_ia32_psubq ((long long)__m1, (long long)__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
|
/* Subtract the 8-bit values in M2 from the 8-bit values in M1 using signed
|
||||||
saturating arithmetic. */
|
saturating arithmetic. */
|
||||||
|
@ -1075,6 +1075,7 @@ _m_pmulhuw (__m64 __A, __m64 __B)
|
|||||||
|
|
||||||
/* Return a combination of the four 16-bit values in A. The selector
|
/* Return a combination of the four 16-bit values in A. The selector
|
||||||
must be an immediate. */
|
must be an immediate. */
|
||||||
|
#ifdef __SSE2__
|
||||||
#if 0
|
#if 0
|
||||||
static __inline __m64 __attribute__((__always_inline__))
|
static __inline __m64 __attribute__((__always_inline__))
|
||||||
_mm_shuffle_pi16 (__m64 __A, int __N)
|
_mm_shuffle_pi16 (__m64 __A, int __N)
|
||||||
@ -1092,6 +1093,7 @@ _m_pshufw (__m64 __A, int __N)
|
|||||||
((__m64) __builtin_ia32_pshufw ((__v4hi)(A), (N)))
|
((__m64) __builtin_ia32_pshufw ((__v4hi)(A), (N)))
|
||||||
#define _m_pshufw(A, N) _mm_shuffle_pi16 ((A), (N))
|
#define _m_pshufw(A, N) _mm_shuffle_pi16 ((A), (N))
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Conditionally store byte elements of A into P. The high bit of each
|
/* Conditionally store byte elements of A into P. The high bit of each
|
||||||
byte in the selector N determines whether the corresponding byte from
|
byte in the selector N determines whether the corresponding byte from
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2005-12-22 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
|
* gcc.target/i386/sse-7.c: Use -msse2.
|
||||||
|
|
||||||
2005-12-23 Jakub Jelinek <jakub@redhat.com>
|
2005-12-23 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR rtl-optimization/25432
|
PR rtl-optimization/25432
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
|
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
|
||||||
/* { dg-options "-O2 -msse" } */
|
/* { dg-options "-O2 -msse2" } */
|
||||||
#include <xmmintrin.h>
|
#include <xmmintrin.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user