backport: re PR target/51393 (Wrong parameter type for _mm256_insert_epi64 in avxintrin.h)
Backported from mainline 2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr> PR target/51393 * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second parameter as long long. 2011-12-04 Uros Bizjak <ubizjak@gmail.com> Jérémie Detrey <Jeremie.Detrey@loria.fr> PR target/51393 * gcc.target/i386/pr51393.c: New test. From-SVN: r182106
This commit is contained in:
parent
00803b649b
commit
d8c80dbf68
|
@ -1,3 +1,12 @@
|
|||
2011-12-08 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
Backported from mainline
|
||||
2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr>
|
||||
|
||||
PR target/51393
|
||||
* config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
|
||||
parameter as long long.
|
||||
|
||||
2011-11-07 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR target/30282
|
||||
|
|
|
@ -759,7 +759,7 @@ _mm256_insert_epi8 (__m256i __X, int __D, int const __N)
|
|||
|
||||
#ifdef __x86_64__
|
||||
extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
|
||||
_mm256_insert_epi64 (__m256i __X, int __D, int const __N)
|
||||
_mm256_insert_epi64 (__m256i __X, long long __D, int const __N)
|
||||
{
|
||||
__m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1);
|
||||
__Y = _mm_insert_epi64 (__Y, __D, __N % 2);
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2011-12-08 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
Backported from mainline
|
||||
2011-12-04 Uros Bizjak <ubizjak@gmail.com>
|
||||
Jérémie Detrey <Jeremie.Detrey@loria.fr>
|
||||
|
||||
PR target/51393
|
||||
* gcc.target/i386/pr51393.c: New test.
|
||||
|
||||
2011-10-23 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/50788
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-require-effective-target avx } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
/* { dg-options "-O -mavx" } */
|
||||
|
||||
#include "avx-check.h"
|
||||
#include <immintrin.h>
|
||||
|
||||
static void
|
||||
__attribute__((noinline))
|
||||
avx_test (void)
|
||||
{
|
||||
long long in = 0x800000000ll;
|
||||
long long out;
|
||||
|
||||
__m256i zero = _mm256_setzero_si256();
|
||||
__m256i tmp = _mm256_insert_epi64 (zero, in, 0);
|
||||
out = _mm256_extract_epi64(tmp, 0);
|
||||
|
||||
if (in != out)
|
||||
abort ();
|
||||
}
|
Loading…
Reference in New Issue