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  <rguent...@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.

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

Reply via email to