diff mbox

Fix PR68592

Message ID alpine.LSU.2.11.1511301542160.4884@t29.fhfr.qr
State New
Headers show

Commit Message

Richard Biener Nov. 30, 2015, 2:43 p.m. UTC
The following fixes PR68592 where I forgot the pattern def seq when
resetting SLP type.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2015-11-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68592
	* tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
	on the pattern def sequence.

	* gfortran.dg/pr68592.f: New testcase.
diff mbox

Patch

Index: gcc/tree-vect-loop.c
===================================================================
--- gcc/tree-vect-loop.c	(revision 231065)
+++ gcc/tree-vect-loop.c	(working copy)
@@ -2178,6 +2178,13 @@  again:
 	    {
 	      gcc_assert (STMT_SLP_TYPE (stmt_info) == loop_vect);
 	      stmt_info = vinfo_for_stmt (STMT_VINFO_RELATED_STMT (stmt_info));
+	      for (gimple_stmt_iterator pi
+		     = gsi_start (STMT_VINFO_PATTERN_DEF_SEQ (stmt_info));
+		   !gsi_end_p (pi); gsi_next (&pi))
+		{
+		  gimple *pstmt = gsi_stmt (pi);
+		  STMT_SLP_TYPE (vinfo_for_stmt (pstmt)) = loop_vect;
+		}
 	    }
 	  STMT_SLP_TYPE (stmt_info) = loop_vect;
 	}
Index: gcc/testsuite/gfortran.dg/pr68592.f
===================================================================
--- gcc/testsuite/gfortran.dg/pr68592.f	(revision 0)
+++ gcc/testsuite/gfortran.dg/pr68592.f	(working copy)
@@ -0,0 +1,20 @@ 
+! PR tree-optimization/68592
+! { dg-do compile }
+! { dg-require-profiling "-fprofile-generate" }
+! { dg-options "-Ofast -fprofile-generate" }
+! { dg-additional-options "-mavx" { target x86_64-*-* i?86-*-* } }
+      PARAMETER (MXCPGA=320,ZERO=0.0)
+      DIMENSION CPNORM(MXCPGA),CDNORM(MXCPGA),
+     *          CFNORM(MXCPGA)  
+         KTYPIL        = KTYPI()
+         DO 84 K=1,NOGTF
+           LMP=LMP+1
+           CFNORM(LMP)=ZERO
+           IF (KTYPIL.EQ.1) LMP=CMPILMP
+           IF (KTYPIL.EQ.2) CPNORM(LMP)=CMPILMP
+           IF (KTYPIL.EQ.3) CDNORM(LMP)=CMPILMP
+           IF (KTYPIL.EQ.4) LMP=CMPILMP
+           IF (KTYPIL.EQ.6) LMP=CMPILMP
+   84    CONTINUE
+         CALL MMPNOR(CPNORM,CDNORM,CFNORM) 
+      END