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
This commit is contained in:
Uros Bizjak 2011-02-21 21:04:57 +01:00 committed by Uros Bizjak
parent 38f5b6ee8f
commit 1bc85062a0
2 changed files with 8 additions and 2 deletions

View 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

View 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