diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2008-03-13 14:33:47 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2008-03-13 14:33:47 +0100 |
commit | 1359ef39755c2a648c44e410e974450d91a4bd99 (patch) | |
tree | 0ca19fa288a9af69b989a25372e7675c5943fbe1 /gcc/config/i386/ammintrin.h | |
parent | 5d2edb29da34b654ab66139c12280eae688970bb (diff) | |
download | gcc-1359ef39755c2a648c44e410e974450d91a4bd99.tar.gz |
re PR target/34000 (GCC pedwarns about use of static inline functions from system headers in extern inline functions)
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.
From-SVN: r133169
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); |