diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-03-13 13:33:47 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-03-13 13:33:47 +0000 |
commit | 517b02860af00c3a34bdf6c1a499683a916496b4 (patch) | |
tree | 0ca19fa288a9af69b989a25372e7675c5943fbe1 /gcc/config/i386/ammintrin.h | |
parent | f7c302cfb235598759996067ac71da235e62e4b5 (diff) | |
download | gcc-517b02860af00c3a34bdf6c1a499683a916496b4.tar.gz |
PR target/34000
PR target/35553
* config/i386/xmmintrin.h: Change all static inline functions to
extern inline and add __gnu_inline__ attribute.
* config/i386/bmintrin.h: Ditto.
* config/i386/smmintrin.h: Ditto.
* config/i386/tmmintrin.h: Ditto.
* config/i386/mmintrin-common.h: Ditto.
* config/i386/ammintrin.h: Ditto.
* config/i386/emmintrin.h: Ditto.
* config/i386/pmmintrin.h: Ditto.
* config/i386/mmintrin.h: Ditto.
* config/i386/mm3dnow.h: Ditto.
testsuite/ChangeLog:
PR target/34000
PR target/35553
* g++.dg/other/i386-3.C: New test.
* gcc.target/i386/sse-13.c: Redefine extern instead of static.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/mmx-1.c: Ditto.
* gcc.target/i386/mmx-2.c: Ditto.
* gcc.target/i386/3dnow-1.c: Ditto.
* gcc.target/i386/3dnow-2.c: Ditto.
* gcc.target/i386/3dnowA-1.c: Ditto.
* gcc.target/i386/3dnowA-2.c: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133169 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/ammintrin.h')
-rw-r--r-- | gcc/config/i386/ammintrin.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/config/i386/ammintrin.h b/gcc/config/i386/ammintrin.h index 1351ebd9155..8866e37ad38 100644 --- a/gcc/config/i386/ammintrin.h +++ b/gcc/config/i386/ammintrin.h @@ -37,26 +37,26 @@ /* We need definitions from the SSE3, SSE2 and SSE header files*/ #include <pmmintrin.h> -static __inline void __attribute__((__always_inline__, __artificial__)) +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_stream_sd (double * __P, __m128d __Y) { __builtin_ia32_movntsd (__P, (__v2df) __Y); } -static __inline void __attribute__((__always_inline__, __artificial__)) +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_stream_ss (float * __P, __m128 __Y) { __builtin_ia32_movntss (__P, (__v4sf) __Y); } -static __inline __m128i __attribute__((__always_inline__, __artificial__)) +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_extract_si64 (__m128i __X, __m128i __Y) { return (__m128i) __builtin_ia32_extrq ((__v2di) __X, (__v16qi) __Y); } #ifdef __OPTIMIZE__ -static __inline __m128i __attribute__((__always_inline__, __artificial__)) +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_extracti_si64 (__m128i __X, unsigned const int __I, unsigned const int __L) { return (__m128i) __builtin_ia32_extrqi ((__v2di) __X, __I, __L); @@ -67,14 +67,14 @@ _mm_extracti_si64 (__m128i __X, unsigned const int __I, unsigned const int __L) (unsigned int)(I), (unsigned int)(L))) #endif -static __inline __m128i __attribute__((__always_inline__, __artificial__)) +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_si64 (__m128i __X,__m128i __Y) { return (__m128i) __builtin_ia32_insertq ((__v2di)__X, (__v2di)__Y); } #ifdef __OPTIMIZE__ -static __inline __m128i __attribute__((__always_inline__, __artificial__)) +extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_inserti_si64(__m128i __X, __m128i __Y, unsigned const int __I, unsigned const int __L) { return (__m128i) __builtin_ia32_insertqi ((__v2di)__X, (__v2di)__Y, __I, __L); |