Hi!

As discussed in the PR and on IRC, this testcase is very fragile, counting
additions with vect_ named SSA_NAME on lhs works only for some tunings,
for other tunings reassoc width etc. affect it and we can e.g. have
anonymous SSA_NAMEs on the lhs in the optimized dump instead.

These alternate regexps seems to match regardless of the tunings (at least
what I've tried), starting with the corresponding fix onwards, and FAIL
before the fix.

Regtested on x86_64-linux and i686-linux, ok for trunk?

2014-01-13  Jakub Jelinek  <ja...@redhat.com>

        PR testsuite/59494
        * gfortran.dg/vect/fast-math-mgrid-resid.f: Change
        -fdump-tree-optimized to -fdump-tree-pcom-details in dg-options and
        cleanup-tree-dump from optimized to pcom.  Remove scan-tree-dump-times
        for vect_\[^\\n\]*\\+, add scan-tree-dump-times for no suitable chains 
and
        Executing predictive commoning without unrolling.

--- gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f.jj   2013-04-08 
15:38:21.000000000 +0200
+++ gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f      2014-01-13 
13:18:39.904315828 +0100
@@ -1,7 +1,7 @@
 ! { dg-do compile { target i?86-*-* x86_64-*-* } }
 ! { dg-require-effective-target vect_double }
 ! { dg-require-effective-target sse2 }
-! { dg-options "-O3 -ffast-math -msse2 -fpredictive-commoning -ftree-vectorize 
-fdump-tree-optimized" }
+! { dg-options "-O3 -ffast-math -msse2 -fpredictive-commoning -ftree-vectorize 
-fdump-tree-pcom-details" }
 
 
 ******* RESID COMPUTES THE RESIDUAL:  R = V - AU
@@ -39,8 +39,9 @@ C
       RETURN
       END
 ! we want to check that predictive commoning did something on the
-! vectorized loop, which means we have to have exactly 13 vector
-! additions.
-! { dg-final { scan-tree-dump-times "vect_\[^\\n\]*\\+ " 13 "optimized" } }
+! vectorized loop.
+! { dg-final { scan-tree-dump-times "Executing predictive commoning without 
unrolling" 1 "pcom" { target lp64 } } }
+! { dg-final { scan-tree-dump-times "Executing predictive commoning without 
unrolling" 2 "pcom" { target ia32 } } }
+! { dg-final { scan-tree-dump-times "Predictive commoning failed: no suitable 
chains" 0 "pcom" } }
 ! { dg-final { cleanup-tree-dump "vect" } }
-! { dg-final { cleanup-tree-dump "optimized" } }
+! { dg-final { cleanup-tree-dump "pcom" } }

        Jakub

Reply via email to