diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-17 08:25:15 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-17 08:25:15 +0000 |
commit | 8071f7e8ecee06d1389888b75316db2c96942515 (patch) | |
tree | 5e2d9406e6e6795981e3fbfabc6edef884e135ac /gcc/config/i386/emmintrin.h | |
parent | 174eebfd6c75919ee6dc3bf73f2074c7dea94c47 (diff) | |
download | gcc-8071f7e8ecee06d1389888b75316db2c96942515.tar.gz |
PR target/32961
* config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
immediate shift value.
config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
_mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
_mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
Remove macros for !__OPTIMIZE__ case.
testsuite/ChangeLog:
PR target/32961
* gcc.target/i386/pr32961.c: New testcase.
* gcc.target/i386/sse-13.c: Remove __builtin_ia32_psllwi128,
__builtin_ia32_psrlqi128, __builtin_ia32_psrlwi128,
__builtin_ia32_psrldi128, __builtin_ia32_psrawi128,
__builtin_ia32_psradi128, __builtin_ia32_psllqi128 and
__builtin_ia32_pslldi128 defines.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129403 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/emmintrin.h')
-rw-r--r-- | gcc/config/i386/emmintrin.h | 41 |
1 files changed, 8 insertions, 33 deletions
diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h index 1fd2551f5de..0451ed7deff 100644 --- a/gcc/config/i386/emmintrin.h +++ b/gcc/config/i386/emmintrin.h @@ -1113,51 +1113,35 @@ _mm_mul_epu32 (__m128i __A, __m128i __B) return (__m128i)__builtin_ia32_pmuludq128 ((__v4si)__A, (__v4si)__B); } -#ifdef __OPTIMIZE__ static __inline __m128i __attribute__((__always_inline__, __artificial__)) -_mm_slli_epi16 (__m128i __A, const int __B) +_mm_slli_epi16 (__m128i __A, int __B) { return (__m128i)__builtin_ia32_psllwi128 ((__v8hi)__A, __B); } static __inline __m128i __attribute__((__always_inline__, __artificial__)) -_mm_slli_epi32 (__m128i __A, const int __B) +_mm_slli_epi32 (__m128i __A, int __B) { return (__m128i)__builtin_ia32_pslldi128 ((__v4si)__A, __B); } static __inline __m128i __attribute__((__always_inline__, __artificial__)) -_mm_slli_epi64 (__m128i __A, const int __B) +_mm_slli_epi64 (__m128i __A, int __B) { return (__m128i)__builtin_ia32_psllqi128 ((__v2di)__A, __B); } -#else -#define _mm_slli_epi16(__A, __B) \ - ((__m128i)__builtin_ia32_psllwi128 ((__v8hi)(__A), __B)) -#define _mm_slli_epi32(__A, __B) \ - ((__m128i)__builtin_ia32_pslldi128 ((__v4si)(__A), __B)) -#define _mm_slli_epi64(__A, __B) \ - ((__m128i)__builtin_ia32_psllqi128 ((__v2di)(__A), __B)) -#endif -#ifdef __OPTIMIZE__ static __inline __m128i __attribute__((__always_inline__, __artificial__)) -_mm_srai_epi16 (__m128i __A, const int __B) +_mm_srai_epi16 (__m128i __A, int __B) { return (__m128i)__builtin_ia32_psrawi128 ((__v8hi)__A, __B); } static __inline __m128i __attribute__((__always_inline__, __artificial__)) -_mm_srai_epi32 (__m128i __A, const int __B) +_mm_srai_epi32 (__m128i __A, int __B) { return (__m128i)__builtin_ia32_psradi128 ((__v4si)__A, __B); } -#else -#define _mm_srai_epi16(__A, __B) \ - ((__m128i)__builtin_ia32_psrawi128 ((__v8hi)(__A), __B)) -#define _mm_srai_epi32(__A, __B) \ - ((__m128i)__builtin_ia32_psradi128 ((__v4si)(__A), __B)) -#endif #ifdef __OPTIMIZE__ static __inline __m128i __attribute__((__always_inline__, __artificial__)) @@ -1178,32 +1162,23 @@ _mm_slli_si128 (__m128i __A, const int __B) ((__m128i)__builtin_ia32_pslldqi128 (__A, (__B) * 8)) #endif -#ifdef __OPTIMIZE__ static __inline __m128i __attribute__((__always_inline__, __artificial__)) -_mm_srli_epi16 (__m128i __A, const int __B) +_mm_srli_epi16 (__m128i __A, int __B) { return (__m128i)__builtin_ia32_psrlwi128 ((__v8hi)__A, __B); } static __inline __m128i __attribute__((__always_inline__, __artificial__)) -_mm_srli_epi32 (__m128i __A, const int __B) +_mm_srli_epi32 (__m128i __A, int __B) { return (__m128i)__builtin_ia32_psrldi128 ((__v4si)__A, __B); } static __inline __m128i __attribute__((__always_inline__, __artificial__)) -_mm_srli_epi64 (__m128i __A, const int __B) +_mm_srli_epi64 (__m128i __A, int __B) { return (__m128i)__builtin_ia32_psrlqi128 ((__v2di)__A, __B); } -#else -#define _mm_srli_epi16(__A, __B) \ - ((__m128i)__builtin_ia32_psrlwi128 ((__v8hi)(__A), __B)) -#define _mm_srli_epi32(__A, __B) \ - ((__m128i)__builtin_ia32_psrldi128 ((__v4si)(__A), __B)) -#define _mm_srli_epi64(__A, __B) \ - ((__m128i)__builtin_ia32_psrlqi128 ((__v2di)(__A), __B)) -#endif static __inline __m128i __attribute__((__always_inline__, __artificial__)) _mm_sll_epi16 (__m128i __A, __m128i __B) |