diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2011-02-21 20:59:52 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2011-02-21 20:59:52 +0100 |
commit | 23e0d9301971df49e1b283e948a548faf0d3facd (patch) | |
tree | 3d7aedb66e9309f17f2bf184b9ca9e6ffaf29856 /gcc/config | |
parent | 11c9e8f1db33c5aa3aae3b2400f3386bc05e740a (diff) | |
download | gcc-23e0d9301971df49e1b283e948a548faf0d3facd.zip gcc-23e0d9301971df49e1b283e948a548faf0d3facd.tar.gz gcc-23e0d9301971df49e1b283e948a548faf0d3facd.tar.bz2 |
re PR target/47840 (incorrect _mm256_insert_epi{32,64} implementations)
PR target/47840
* config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
(_mm256_insert_epi64): Use _mm_insert_epi64.
From-SVN: r170371
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/avxintrin.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/i386/avxintrin.h b/gcc/config/i386/avxintrin.h index 70bfce1..8055cc6 100644 --- a/gcc/config/i386/avxintrin.h +++ b/gcc/config/i386/avxintrin.h @@ -737,7 +737,7 @@ extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __arti _mm256_insert_epi32 (__m256i __X, int __D, int const __N) { __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 2); - __Y = _mm_insert_epi16 (__Y, __D, __N % 4); + __Y = _mm_insert_epi32 (__Y, __D, __N % 4); return _mm256_insertf128_si256 (__X, __Y, __N >> 2); } @@ -762,7 +762,7 @@ extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __arti _mm256_insert_epi64 (__m256i __X, int __D, int const __N) { __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1); - __Y = _mm_insert_epi16 (__Y, __D, __N % 2); + __Y = _mm_insert_epi64 (__Y, __D, __N % 2); return _mm256_insertf128_si256 (__X, __Y, __N >> 1); } #endif |