]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/47840 (incorrect _mm256_insert_epi{32,64} implementations)
authorUros Bizjak <ubizjak@gmail.com>
Mon, 21 Feb 2011 20:04:57 +0000 (21:04 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 21 Feb 2011 20:04:57 +0000 (21:04 +0100)
PR target/47840
* config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
(_mm256_insert_epi64): Use _mm_insert_epi64.

From-SVN: r170373

gcc/ChangeLog
gcc/config/i386/avxintrin.h

index 76fd7eb5944c62f4d3184afc9fd8f19afa68c455..1dc26a0cb8fd904e6b4aa34691d5e98a387260de 100644 (file)
@@ -1,3 +1,9 @@
+2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/47840
+       * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
+       (_mm256_insert_epi64): Use _mm_insert_epi64.
+
 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
 
        PR tree-optimization/46620
index 70bfce1a27462287ebddb038e9117050c1522da1..8055cc607224e8e69d9ac1b235f5d3dbd6be6216 100644 (file)
@@ -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