re PR tree-optimization/36119 (internal compiler error: in vectorizable_assignment, at tree-vect-transform.c:3671)

PR tree-optimization/36119
	* tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
	in case of SLP.

From-SVN: r134944
This commit is contained in:
Ira Rosen 2008-05-05 07:47:49 +00:00 committed by Ira Rosen
parent 24c0514153
commit 06d10aafc7
4 changed files with 45 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2008-05-05 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/36119
* tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
in case of SLP.
2008-06-04 Jan Hubicka <jh@suse.cz>
tree-optimization/36100

View File

@ -1,3 +1,8 @@
2008-05-05 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/36119
* gfortran.dg/vect/pr36119.f: New test.
2008-05-04 Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/35995

View File

@ -0,0 +1,29 @@
! { dg-do compile { target { i?86-*-* x86_64-*-* } } }
! { dg-options "-O3 -mfpmath=sse -msse2 -ffree-form" }
SUBROUTINE check_dnucint_ana (dcore)
IMPLICIT NONE
INTEGER, PARAMETER :: dp=8
REAL(dp), DIMENSION(10, 2), INTENT(IN),&
OPTIONAL :: dcore
INTEGER :: i, j
REAL(dp) :: delta, nssss, od, rn, ssssm, &
ssssp
REAL(dp), DIMENSION(10, 2) :: corem, corep, ncore
LOGICAL :: check_value
delta = 1.0E-8_dp
od = 0.5_dp/delta
ncore = od * (corep - corem)
nssss = od * (ssssp - ssssm)
IF (PRESENT(dcore)) THEN
DO i = 1, 2
DO j = 1, 10
IF (.NOT.check_value(ncore(j,i), dcore(j,i), delta, 0.1_dp)) THEN
END IF
END DO
END DO
END IF
END SUBROUTINE check_dnucint_ana
! { dg-final { cleanup-tree-dump "vect" } }

View File

@ -3668,6 +3668,11 @@ vectorizable_assignment (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt,
VEC(tree,heap) *vec_oprnds = NULL;
tree vop;
/* FORNOW: SLP with multiple types is not supported. The SLP analysis
verifies this, so we can safely override NCOPIES with 1 here. */
if (slp_node)
ncopies = 1;
gcc_assert (ncopies >= 1);
if (ncopies > 1)
return false; /* FORNOW */