From: Uros Bizjak Date: Sun, 4 Dec 2011 13:38:58 +0000 (+0100) Subject: re PR target/51393 (Wrong parameter type for _mm256_insert_epi64 in avxintrin.h) X-Git-Tag: releases/gcc-4.5.4~337 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7246c3a89d7ae9a77abca33237db093f577acd9;p=thirdparty%2Fgcc.git re PR target/51393 (Wrong parameter type for _mm256_insert_epi64 in avxintrin.h) PR target/51393 * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second parameter as long long. testsuite/ChangeLog: PR target/51393 * gcc.target/i386/pr51393.c: New test. From-SVN: r181989 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8b6423c7e450..898cbae36c6b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-12-04 Jérémie Detrey + + PR target/51393 + * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second + parameter as long long. + 2011-11-25 Richard Sandiford Backport from mainline: diff --git a/gcc/config/i386/avxintrin.h b/gcc/config/i386/avxintrin.h index 8055cc607224..6d4213dc8bd5 100644 --- a/gcc/config/i386/avxintrin.h +++ b/gcc/config/i386/avxintrin.h @@ -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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7a93cb8ae818..a6a2327c504c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-12-04 Uros Bizjak + Jérémie Detrey + + PR target/51393 + * gcc.target/i386/pr51393.c: New test. + 2011-11-19 Eric Botcazou * gcc.dg/delay-slot-2.c: New test. @@ -437,7 +443,7 @@ 2011-04-18 Richard Guenther - Backported from 4.6 branch + Backported from 4.6 branch 2011-03-11 Jakub Jelinek PR c++/48035 @@ -707,7 +713,7 @@ * gcc.dg/torture/pr45967.c: New testcase. * gcc.dg/torture/pr45967-2.c: Likewise. * gcc.dg/torture/pr45967-3.c: Likewise. - * gcc.dg/torture/pr39074-2.c: Adjust. + * gcc.dg/torture/pr39074-2.c: Adjust. * gcc.dg/torture/pta-escape-1.c: Likewise * gcc.dg/torture/pta-ptrarith-1.c: Likewise * gcc.dg/tree-ssa/pta-callused.c: Likewise @@ -1673,11 +1679,11 @@ 2010-09-06 Dodji Seketeli - PR c++/45200 - PR c++/45293 - PR c++/45558 - * g++.dg/template/typedef34.C: New test. - * g++.dg/template/typedef35.C: New test. + PR c++/45200 + PR c++/45293 + PR c++/45558 + * g++.dg/template/typedef34.C: New test. + * g++.dg/template/typedef35.C: New test. 2010-09-04 Tobias Burnus @@ -4535,7 +4541,7 @@ * gfortran.dg/read_x_eof.f90: New test. * gfortran.dg/read_x_past.f: Update test. -2010-03-10 Jan Hubicka +2010-03-10 Jan Hubicka * gcc.c-torture/compile/pr43288.c: New test. diff --git a/gcc/testsuite/gcc.target/i386/pr51393.c b/gcc/testsuite/gcc.target/i386/pr51393.c new file mode 100644 index 000000000000..ac167396ee75 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr51393.c @@ -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 + +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 (); +}