[Bug tree-optimization/59591] [4.9 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:156 for -march=core-avx2

2013-12-30 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59591

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #31525|0   |1
is obsolete||

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 31540
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31540action=edit
gcc49-pr59591.patch

Updated patch with runtime testcases.  Unfortunately, I don't have access to
any CPUs with AVX2 right now, so can't test whether it works there properly.


[Bug tree-optimization/59591] [4.9 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:156 for -march=core-avx2

2013-12-30 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59591

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Mon Dec 30 17:05:10 2013
New Revision: 206248

URL: http://gcc.gnu.org/viewcvs?rev=206248root=gccview=rev
Log:
PR tree-optimization/59591
* tree-vect-stmts.c (vectorizable_mask_load_store): Fix up handling
of modifier = NARROW masked gathers.
(permute_vec_elements): Use gimple_get_lhs instead of
gimple_assign_lhs.

* gcc.dg/vect/pr59591-1.c: New test.
* gcc.dg/vect/pr59591-2.c: New test.
* gcc.target/i386/pr59591-1.c: New test.
* gcc.target/i386/pr59591-2.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/vect/pr59591-1.c
trunk/gcc/testsuite/gcc.dg/vect/pr59591-2.c
trunk/gcc/testsuite/gcc.target/i386/pr59591-1.c
trunk/gcc/testsuite/gcc.target/i386/pr59591-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-stmts.c


[Bug tree-optimization/59591] [4.9 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:156 for -march=core-avx2

2013-12-30 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59591

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org ---
Fixed.


[Bug tree-optimization/59591] [4.9 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:156 for -march=core-avx2

2013-12-27 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59591

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Actually started with r205856 already.


[Bug tree-optimization/59591] [4.9 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:156 for -march=core-avx2

2013-12-27 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59591

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Slightly reduced fortran testcase for -O3 -mavx2:
subroutine foo (m, n, o, p, q, e, a, b, x, f)
  integer, intent (in) :: n, o, p, q, m, f
  integer, dimension (n:o) :: e, a, b
  integer, dimension (n:o, p:q) :: x
  integer :: j, i
  do j = 1, m
do i = n, f
  if (e(i) .eq. 0) then
a(i) = x(i, b(i))
  endif
enddo
  enddo
end subroutine foo

and C testcase for -O3 -mavx2 -fopenmp-simd:
int p[256], q[256], r[256], t[256];

void
foo (void)
{
  int i;
  #pragma omp simd safelen(64)
  for (i = 0; i  256; i++)
if (r[i]  32)
  t[i] = p[q[i] * 3L + 2L];
}


[Bug tree-optimization/59591] [4.9 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:156 for -march=core-avx2

2013-12-27 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59591

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 31525
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31525action=edit
gcc49-pr59591.patch

Untested fix.  Still need to turn the testcase into runtime testcase and look
at the other gather direction (the patch fixes the modifier = NARROW case, need
to look at modifier = WIDEN case).


[Bug tree-optimization/59591] [4.9 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:156 for -march=core-avx2

2013-12-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59591

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0
Summary|ICE in  |[4.9 Regression] ICE in
   |vect_get_vec_def_for_stmt_c |vect_get_vec_def_for_stmt_c
   |opy, at |opy, at
   |tree-vect-stmts.c:156 for   |tree-vect-stmts.c:156 for
   |-march=core-avx2|-march=core-avx2


[Bug tree-optimization/59591] [4.9 Regression] ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:156 for -march=core-avx2

2013-12-24 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59591

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-12-24
 Ever confirmed|0   |1