From: Uros Bizjak Date: Mon, 21 Feb 2011 20:04:57 +0000 (+0100) Subject: re PR target/47840 (incorrect _mm256_insert_epi{32,64} implementations) X-Git-Tag: releases/gcc-4.4.6~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bc85062a0df98e1e672421fc34b424a7eb8b824;p=thirdparty%2Fgcc.git 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: r170373 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 76fd7eb5944c..1dc26a0cb8fd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-02-21 Uros Bizjak + + 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 PR tree-optimization/46620 diff --git a/gcc/config/i386/avxintrin.h b/gcc/config/i386/avxintrin.h index 70bfce1a2746..8055cc607224 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