summaryrefslogtreecommitdiff
path: root/gcc/config/i386/emmintrin.h
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-17 08:25:15 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-17 08:25:15 +0000
commit8071f7e8ecee06d1389888b75316db2c96942515 (patch)
tree5e2d9406e6e6795981e3fbfabc6edef884e135ac /gcc/config/i386/emmintrin.h
parent174eebfd6c75919ee6dc3bf73f2074c7dea94c47 (diff)
downloadgcc-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.h41
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)