* Re: [PATCH][RFC] Gate loop passes group on number-of-loops > 1, add no-loops group
2014-06-18 13:38 ` Jeff Law
@ 2014-06-23 16:50 ` Richard Biener
0 siblings, 0 replies; 4+ messages in thread
From: Richard Biener @ 2014-06-23 16:50 UTC (permalink / raw)
To: Jeff Law; +Cc: gcc-patches
On Wed, 18 Jun 2014, Jeff Law wrote:
> On 06/18/14 04:42, Richard Biener wrote:
> >
> > The following aims at reducing the number of pointless passes we run
> > on functions containing no loops. Those are at least two copyprop
> > and one dce pass (two dce passes when vectorization is enabled,
> > three dce passes and an additional copyprop pass when any graphite
> > optimization is enabled).
> >
> > Simply gating pass_tree_loop on number_of_loops () > 1 would disable
> > basic-block vectorization on loopless functions. Moving
> > basic-block vectorization out of pass_tree_loop works to the extent
> > that you'd need to move IVOPTs as well as data-ref analysis cannot
> > cope with TARGET_MEM_REFs.
> >
> > So the following introduces a pass_tree_no_loop pass group which
> > is enabled whenever the pass_tree_loop group is disabled.
> > As followup this would allow to skip cleanup work we do after the loop
> > pipeline just to cleanup after it.
> >
> > Any comments? Does such followup sound realistic or would it be
> > better to take the opportunity to move IVOPTs a bit closer to
> > RTL expansion and avoid that "pass_tree_no_loop hack"?
> Sounds good. I've always believed that each pass should be bubbling back up
> some kind of status about what it did/found as well.
>
> It was more of an RTL issue, but we had a certain commercial testsuite which
> created large loopless tests (*) that consumed vast quantities of wall clock
> time. I always wanted the RTL loop passes to signal back to toplev.c that no
> loops were found, which would in turn be used to say "we really don't need
> cse-after-loop and friends".
> It's certainly more complex these days, but I'd still like to be able to do
> such things.
>
> Regardless, that's well outside the scope of what you're trying to accomplish.
Not really - it's just the start of a series of (possible) patches. I
want to cut down the post-loop pass pipeline for functions without loops.
But indeed we may want to apply the same trick to RTL.
The following is what I ended up applying (ugh, we need a more
elegant solution for those dump naming / cleanup issues).
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.
Richard.
2014-06-23 Richard Biener <rguenther@suse.de>
* tree-ssa-loop.c (gate_loop): New function.
(pass_tree_loop::gate): Call it.
(pass_data_tree_no_loop, pass_tree_no_loop,
make_pass_tree_no_loop): New.
* tree-vectorizer.c: Include tree-scalar-evolution.c
(pass_slp_vectorize::execute): Initialize loops and SCEV if
required.
(pass_slp_vectorize::clone): New method.
* timevar.def (TV_TREE_NOLOOP): New.
* tree-pass.h (make_pass_tree_no_loop): Declare.
* passes.def (pass_tree_no_loop): New pass group with
SLP vectorizer.
* g++.dg/vect/slp-pr50413.cc: Scan and cleanup appropriate SLP dumps.
* g++.dg/vect/slp-pr50819.cc: Likewise.
* g++.dg/vect/slp-pr56812.cc: Likewise.
* gcc.dg/vect/bb-slp-1.c: Likewise.
* gcc.dg/vect/bb-slp-10.c: Likewise.
* gcc.dg/vect/bb-slp-11.c: Likewise.
* gcc.dg/vect/bb-slp-13.c: Likewise.
* gcc.dg/vect/bb-slp-14.c: Likewise.
* gcc.dg/vect/bb-slp-15.c: Likewise.
* gcc.dg/vect/bb-slp-16.c: Likewise.
* gcc.dg/vect/bb-slp-17.c: Likewise.
* gcc.dg/vect/bb-slp-18.c: Likewise.
* gcc.dg/vect/bb-slp-19.c: Likewise.
* gcc.dg/vect/bb-slp-2.c: Likewise.
* gcc.dg/vect/bb-slp-20.c: Likewise.
* gcc.dg/vect/bb-slp-21.c: Likewise.
* gcc.dg/vect/bb-slp-22.c: Likewise.
* gcc.dg/vect/bb-slp-23.c: Likewise.
* gcc.dg/vect/bb-slp-24.c: Likewise.
* gcc.dg/vect/bb-slp-25.c: Likewise.
* gcc.dg/vect/bb-slp-26.c: Likewise.
* gcc.dg/vect/bb-slp-27.c: Likewise.
* gcc.dg/vect/bb-slp-28.c: Likewise.
* gcc.dg/vect/bb-slp-29.c: Likewise.
* gcc.dg/vect/bb-slp-3.c: Likewise.
* gcc.dg/vect/bb-slp-30.c: Likewise.
* gcc.dg/vect/bb-slp-31.c: Likewise.
* gcc.dg/vect/bb-slp-32.c: Likewise.
* gcc.dg/vect/bb-slp-4.c: Likewise.
* gcc.dg/vect/bb-slp-5.c: Likewise.
* gcc.dg/vect/bb-slp-6.c: Likewise.
* gcc.dg/vect/bb-slp-7.c: Likewise.
* gcc.dg/vect/bb-slp-8.c: Likewise.
* gcc.dg/vect/bb-slp-8a.c: Likewise.
* gcc.dg/vect/bb-slp-8b.c: Likewise.
* gcc.dg/vect/bb-slp-9.c: Likewise.
* gcc.dg/vect/bb-slp-cond-1.c: Likewise.
* gcc.dg/vect/bb-slp-pattern-1.c: Likewise.
* gcc.dg/vect/bb-slp-pattern-2.c: Likewise.
* gcc.dg/vect/fast-math-bb-slp-call-1.c: Likewise.
* gcc.dg/vect/fast-math-bb-slp-call-2.c: Likewise.
* gcc.dg/vect/fast-math-bb-slp-call-3.c: Likewise.
* gcc.dg/vect/no-tree-reassoc-bb-slp-12.c: Likewise.
* gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c: Likewise.
* gcc.dg/vect/pr26359.c: Likewise.
* gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c: Likewise.
Index: gcc/tree-ssa-loop.c
===================================================================
*** gcc/tree-ssa-loop.c.orig 2014-06-18 14:57:20.173498927 +0200
--- gcc/tree-ssa-loop.c 2014-06-23 13:45:58.744051019 +0200
*************** along with GCC; see the file COPYING3.
*** 42,47 ****
--- 42,68 ----
#include "diagnostic-core.h"
#include "tree-vectorizer.h"
+
+ /* Gate for loop pass group. The group is controlled by -ftree-loop-optimize
+ but we also avoid running it when the IL doesn't contain any loop. */
+
+ static bool
+ gate_loop (function *fn)
+ {
+ if (!flag_tree_loop_optimize)
+ return false;
+
+ /* For -fdump-passes which runs before loop discovery print the
+ state of -ftree-loop-optimize. */
+ if (!loops_for_fn (fn))
+ return true;
+
+ /* Make sure to drop / re-discover loops when necessary. */
+ if (loops_state_satisfies_p (LOOPS_NEED_FIXUP))
+ fix_loop_structure (NULL);
+ return number_of_loops (fn) > 1;
+ }
+
/* The loop superpass. */
namespace {
*************** public:
*** 68,74 ****
{}
/* opt_pass methods: */
! virtual bool gate (function *) { return flag_tree_loop_optimize != 0; }
}; // class pass_tree_loop
--- 89,95 ----
{}
/* opt_pass methods: */
! virtual bool gate (function *fn) { return gate_loop (fn); }
}; // class pass_tree_loop
*************** make_pass_tree_loop (gcc::context *ctxt)
*** 80,85 ****
--- 101,145 ----
return new pass_tree_loop (ctxt);
}
+ /* The no-loop superpass. */
+
+ namespace {
+
+ const pass_data pass_data_tree_no_loop =
+ {
+ GIMPLE_PASS, /* type */
+ "no_loop", /* name */
+ OPTGROUP_NONE, /* optinfo_flags */
+ false, /* has_execute */
+ TV_TREE_NOLOOP, /* tv_id */
+ PROP_cfg, /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ 0, /* todo_flags_finish */
+ };
+
+ class pass_tree_no_loop : public gimple_opt_pass
+ {
+ public:
+ pass_tree_no_loop (gcc::context *ctxt)
+ : gimple_opt_pass (pass_data_tree_no_loop, ctxt)
+ {}
+
+ /* opt_pass methods: */
+ virtual bool gate (function *fn) { return !gate_loop (fn); }
+
+ }; // class pass_tree_no_loop
+
+ } // anon namespace
+
+ gimple_opt_pass *
+ make_pass_tree_no_loop (gcc::context *ctxt)
+ {
+ return new pass_tree_no_loop (ctxt);
+ }
+
+
/* Loop optimizer initialization. */
namespace {
Index: gcc/tree-vectorizer.c
===================================================================
*** gcc/tree-vectorizer.c.orig 2014-06-18 14:57:20.173498927 +0200
--- gcc/tree-vectorizer.c 2014-06-23 13:33:39.456101918 +0200
*************** along with GCC; see the file COPYING3.
*** 82,87 ****
--- 82,89 ----
#include "tree-ssa-propagate.h"
#include "dbgcnt.h"
#include "gimple-fold.h"
+ #include "tree-scalar-evolution.h"
+
/* Loop or bb location. */
source_location vect_location;
*************** public:
*** 610,615 ****
--- 612,618 ----
{}
/* opt_pass methods: */
+ opt_pass * clone () { return new pass_slp_vectorize (m_ctxt); }
virtual bool gate (function *) { return flag_tree_slp_vectorize != 0; }
virtual unsigned int execute (function *);
*************** pass_slp_vectorize::execute (function *f
*** 620,625 ****
--- 623,635 ----
{
basic_block bb;
+ bool in_loop_pipeline = scev_initialized_p ();
+ if (!in_loop_pipeline)
+ {
+ loop_optimizer_init (LOOPS_NORMAL);
+ scev_initialize ();
+ }
+
init_stmt_vec_info_vec ();
FOR_EACH_BB_FN (bb, fun)
*************** pass_slp_vectorize::execute (function *f
*** 639,644 ****
--- 649,661 ----
}
free_stmt_vec_info_vec ();
+
+ if (!in_loop_pipeline)
+ {
+ scev_finalize ();
+ loop_optimizer_finalize ();
+ }
+
return 0;
}
Index: gcc/timevar.def
===================================================================
*** gcc/timevar.def.orig 2014-06-18 14:57:20.173498927 +0200
--- gcc/timevar.def 2014-06-23 13:33:39.457101918 +0200
*************** DEFTIMEVAR (TV_TREE_CALL_CDCE , "tr
*** 162,167 ****
--- 162,168 ----
DEFTIMEVAR (TV_TREE_DSE , "tree DSE")
DEFTIMEVAR (TV_TREE_MERGE_PHI , "PHI merge")
DEFTIMEVAR (TV_TREE_LOOP , "tree loop optimization")
+ DEFTIMEVAR (TV_TREE_NOLOOP , "loopless fn")
DEFTIMEVAR (TV_TREE_LOOP_BOUNDS , "tree loop bounds")
DEFTIMEVAR (TV_LIM , "tree loop invariant motion")
DEFTIMEVAR (TV_TREE_LOOP_IVCANON , "tree canonical iv")
Index: gcc/tree-pass.h
===================================================================
*** gcc/tree-pass.h.orig 2014-06-18 14:57:20.173498927 +0200
--- gcc/tree-pass.h 2014-06-23 13:33:39.457101918 +0200
*************** extern gimple_opt_pass *make_pass_early_
*** 354,359 ****
--- 354,360 ----
extern gimple_opt_pass *make_pass_tail_recursion (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_tail_calls (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_tree_loop (gcc::context *ctxt);
+ extern gimple_opt_pass *make_pass_tree_no_loop (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_tree_loop_init (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_lim (gcc::context *ctxt);
extern gimple_opt_pass *make_pass_tree_unswitch (gcc::context *ctxt);
Index: gcc/passes.def
===================================================================
*** gcc/passes.def.orig 2014-06-18 14:57:20.173498927 +0200
--- gcc/passes.def 2014-06-23 13:33:39.468101917 +0200
*************** along with GCC; see the file COPYING3.
*** 198,203 ****
--- 198,205 ----
NEXT_PASS (pass_sink_code);
NEXT_PASS (pass_asan);
NEXT_PASS (pass_tsan);
+ /* Pass group that runs when 1) enabled, 2) there are loops
+ in the function. */
NEXT_PASS (pass_tree_loop);
PUSH_INSERT_PASSES_WITHIN (pass_tree_loop)
NEXT_PASS (pass_tree_loop_init);
*************** along with GCC; see the file COPYING3.
*** 230,239 ****
--- 232,249 ----
NEXT_PASS (pass_complete_unroll);
NEXT_PASS (pass_slp_vectorize);
NEXT_PASS (pass_loop_prefetch);
+ /* Run IVOPTs after the last pass that uses data-reference analysis
+ as that doesn't handle TARGET_MEM_REFs. */
NEXT_PASS (pass_iv_optimize);
NEXT_PASS (pass_lim);
NEXT_PASS (pass_tree_loop_done);
POP_INSERT_PASSES ()
+ /* Pass group that runs when pass_tree_loop is disabled or there
+ are no loops in the function. */
+ NEXT_PASS (pass_tree_no_loop);
+ PUSH_INSERT_PASSES_WITHIN (pass_tree_no_loop)
+ NEXT_PASS (pass_slp_vectorize);
+ POP_INSERT_PASSES ()
NEXT_PASS (pass_lower_vector_ssa);
NEXT_PASS (pass_cse_reciprocals);
NEXT_PASS (pass_reassoc);
Index: gcc/testsuite/g++.dg/vect/slp-pr50413.cc
===================================================================
*** gcc/testsuite/g++.dg/vect/slp-pr50413.cc.orig 2013-08-30 09:55:27.233781584 +0200
--- gcc/testsuite/g++.dg/vect/slp-pr50413.cc 2014-06-23 13:39:38.229077217 +0200
*************** void shift(unsigned char t)
*** 160,165 ****
V.bitmap.b96 = t;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 160,165 ----
V.bitmap.b96 = t;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/g++.dg/vect/slp-pr50819.cc
===================================================================
*** gcc/testsuite/g++.dg/vect/slp-pr50819.cc.orig 2013-08-30 09:55:27.234781596 +0200
--- gcc/testsuite/g++.dg/vect/slp-pr50819.cc 2014-06-23 13:40:04.382075416 +0200
*************** const & v2) {
*** 49,53 ****
res = res + s*(v1+v2);
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 49,53 ----
res = res + s*(v1+v2);
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/g++.dg/vect/slp-pr56812.cc
===================================================================
*** gcc/testsuite/g++.dg/vect/slp-pr56812.cc.orig 2013-10-29 15:15:40.585678487 +0100
--- gcc/testsuite/g++.dg/vect/slp-pr56812.cc 2014-06-23 13:40:28.401073763 +0200
*************** void mydata::Set (float x)
*** 17,21 ****
data[i] = x;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 17,21 ----
data[i] = x;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-1.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-1.c.orig 2013-08-30 09:55:27.136780433 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-1.c 2014-06-23 14:05:12.432971589 +0200
*************** int main (void)
*** 56,61 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 56,62 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-10.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-10.c.orig 2013-08-30 09:55:27.136780433 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-10.c 2014-06-23 14:05:23.580970821 +0200
*************** int main (void)
*** 49,55 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "unsupported alignment in basic block." 1 "slp" { xfail vect_element_align } } } */
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_element_align } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 49,55 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "unsupported alignment in basic block." 1 "slp2" { xfail vect_element_align } } } */
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_element_align } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-11.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-11.c.orig 2013-08-30 09:55:27.137780445 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-11.c 2014-06-23 13:48:32.108040460 +0200
*************** int main (void)
*** 48,53 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect64 } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 48,53 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect64 } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-13.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-13.c.orig 2013-08-30 09:55:27.126780313 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-13.c 2014-06-23 13:48:50.026039226 +0200
*************** int main (void)
*** 46,51 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 46,51 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-14.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-14.c.orig 2013-08-30 09:55:27.127780325 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-14.c 2014-06-23 13:49:08.409037961 +0200
*************** int main (void)
*** 47,52 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 47,52 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-15.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-15.c.orig 2013-08-30 09:55:27.131780373 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-15.c 2014-06-23 13:49:21.367037069 +0200
*************** int main (void)
*** 51,56 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 51,56 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-16.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-16.c.orig 2013-08-30 09:55:27.132780385 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-16.c 2014-06-23 14:05:33.215970158 +0200
*************** int main (void)
*** 65,70 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 65,71 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-17.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-17.c.orig 2013-08-30 09:55:27.133780397 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-17.c 2014-06-23 13:49:54.129034813 +0200
*************** int main (void)
*** 57,62 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 57,62 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-18.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-18.c.orig 2013-08-30 09:55:27.134780409 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-18.c 2014-06-23 13:50:06.610033954 +0200
*************** int main (void)
*** 46,51 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 46,51 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-19.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-19.c.orig 2013-08-30 09:55:27.135780421 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-19.c 2014-06-23 13:50:20.741032981 +0200
*************** int main (void)
*** 53,58 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { xfail *-*-* } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 53,58 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { xfail *-*-* } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-2.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-2.c.orig 2013-08-30 09:55:27.137780445 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-2.c 2014-06-23 14:05:44.829969358 +0200
*************** int main (void)
*** 53,58 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 53,59 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-20.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-20.c.orig 2013-08-30 09:55:27.137780445 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-20.c 2014-06-23 13:50:47.792031118 +0200
*************** int main (void)
*** 63,69 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
! /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 63,69 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_int_mult } } } */
! /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-21.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-21.c.orig 2013-08-30 09:55:27.126780313 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-21.c 2014-06-23 13:51:02.554030102 +0200
*************** int main (void)
*** 63,70 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
! /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "slp" { target { ! {vect_int_mult } } } } } */
! /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 63,70 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" } } */
! /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "slp2" { target { ! {vect_int_mult } } } } } */
! /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-22.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-22.c.orig 2013-08-30 09:55:27.127780325 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-22.c 2014-06-23 13:51:18.159029028 +0200
*************** int main (void)
*** 63,69 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { ! {vect_int_mult } } } } } */
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 63,69 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target { ! {vect_int_mult } } } } } */
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-23.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-23.c.orig 2013-08-30 09:55:27.131780373 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-23.c 2014-06-23 13:51:32.879028014 +0200
*************** int main (void)
*** 51,56 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 51,56 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-24.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-24.c.orig 2013-08-30 09:55:27.131780373 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-24.c 2014-06-23 14:30:13.534868240 +0200
*************** int main (void)
*** 54,59 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_element_align } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 54,60 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" { target vect_element_align } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-25.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-25.c.orig 2013-08-30 09:55:27.132780385 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-25.c 2014-06-23 14:30:28.828867187 +0200
*************** int main (void)
*** 54,59 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_element_align } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 54,60 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" { target vect_element_align } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-26.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-26.c.orig 2013-08-30 09:55:27.133780397 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-26.c 2014-06-23 14:30:34.141866821 +0200
*************** int main (void)
*** 55,60 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect64 } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 55,61 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" { target vect64 } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-27.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-27.c.orig 2013-08-30 09:55:27.134780409 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-27.c 2014-06-23 14:30:39.003866486 +0200
*************** int main (void)
*** 44,49 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_int_mult && { vect_unpack && vect_pack_trunc } } } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 44,50 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target { vect_int_mult && { vect_unpack && vect_pack_trunc } } } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-28.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-28.c.orig 2013-08-30 09:55:27.135780421 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-28.c 2014-06-23 14:30:46.722865955 +0200
*************** int main (void)
*** 66,71 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_int_mult && { vect_pack_trunc && vect_unpack } } } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 66,72 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target { vect_int_mult && { vect_pack_trunc && vect_unpack } } } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-29.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-29.c.orig 2013-08-30 09:55:27.135780421 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-29.c 2014-06-23 14:30:53.316865501 +0200
*************** int main (void)
*** 54,59 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_int_mult && vect_element_align } } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 54,60 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" { target { vect_int_mult && vect_element_align } } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-3.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-3.c.orig 2013-08-30 09:55:27.137780445 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-3.c 2014-06-23 13:53:36.125019529 +0200
*************** int main (void)
*** 42,47 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 42,47 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-30.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-30.c.orig 2013-08-30 09:55:27.126780313 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-30.c 2014-06-23 13:53:46.675018802 +0200
*************** test1(void)
*** 43,47 ****
int main() { test1(); return a[21]; }
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 43,47 ----
int main() { test1(); return a[21]; }
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-31.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-31.c.orig 2013-10-10 14:15:51.280493835 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-31.c 2014-06-23 13:53:51.749018453 +0200
*************** void f(){
*** 9,13 ****
a[1]=1+2*a[1]*a[1];
}
! /* { dg-final { scan-tree-dump "basic block vectorized" "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 9,13 ----
a[1]=1+2*a[1]*a[1];
}
! /* { dg-final { scan-tree-dump "basic block vectorized" "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-32.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-32.c.orig 2013-10-29 15:15:40.532677912 +0100
--- gcc/testsuite/gcc.dg/vect/bb-slp-32.c 2014-06-23 13:53:56.878018100 +0200
*************** int foo (int *p)
*** 19,23 ****
return tem0 + tem1 + tem2 + tem3;
}
! /* { dg-final { scan-tree-dump "vectorization is not profitable" "slp" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 19,23 ----
return tem0 + tem1 + tem2 + tem3;
}
! /* { dg-final { scan-tree-dump "vectorization is not profitable" "slp2" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-4.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-4.c.orig 2013-08-30 09:55:27.126780313 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-4.c 2014-06-23 13:54:04.122017601 +0200
*************** int main (void)
*** 38,43 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 38,43 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-5.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-5.c.orig 2013-08-30 09:55:27.130780361 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-5.c 2014-06-23 13:54:10.426017167 +0200
*************** int main (void)
*** 47,52 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 47,52 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-6.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-6.c.orig 2013-08-30 09:55:27.131780373 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-6.c 2014-06-23 13:54:15.672016806 +0200
*************** int main (void)
*** 45,50 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 45,50 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-7.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-7.c.orig 2013-08-30 09:55:27.132780385 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-7.c 2014-06-23 13:54:21.958016373 +0200
*************** int main (void)
*** 46,51 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 46,51 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-8.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-8.c.orig 2013-08-30 09:55:27.133780397 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-8.c 2014-06-23 13:54:29.503015854 +0200
*************** int main (void)
*** 48,53 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_hw_misalign } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 48,53 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_hw_misalign } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-8a.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-8a.c.orig 2013-08-30 09:55:27.135780421 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-8a.c 2014-06-23 13:54:35.707015427 +0200
*************** int main (void)
*** 47,52 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 47,52 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-8b.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-8b.c.orig 2013-08-30 09:55:27.136780433 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-8b.c 2014-06-23 13:54:40.903015069 +0200
*************** int main (void)
*** 49,54 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_hw_misalign } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 49,54 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_hw_misalign } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-9.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-9.c.orig 2013-08-30 09:55:27.134780409 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-9.c 2014-06-23 13:54:49.587014471 +0200
*************** int main (void)
*** 46,51 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 46,51 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c.orig 2013-08-30 09:55:27.136780433 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c 2014-06-23 14:31:03.958864768 +0200
*************** int main ()
*** 41,46 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_element_align } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 41,47 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" { target vect_element_align } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-pattern-1.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-pattern-1.c.orig 2012-03-16 10:54:03.000000000 +0100
--- gcc/testsuite/gcc.dg/vect/bb-slp-pattern-1.c 2014-06-23 14:06:31.460966148 +0200
*************** int main (void)
*** 48,54 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "slp" { target { vect_widen_mult_hi_to_si || vect_unpack } } } } */
! /* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 8 "slp" { target vect_widen_mult_hi_to_si_pattern } } } */
! /* { dg-final { scan-tree-dump-times "pattern recognized" 8 "slp" { target vect_widen_mult_hi_to_si_pattern } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 48,55 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "slp2" { target { vect_widen_mult_hi_to_si || vect_unpack } } } } */
! /* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 8 "slp2" { target vect_widen_mult_hi_to_si_pattern } } } */
! /* { dg-final { scan-tree-dump-times "pattern recognized" 8 "slp2" { target vect_widen_mult_hi_to_si_pattern } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/bb-slp-pattern-2.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/bb-slp-pattern-2.c.orig 2013-08-30 09:55:27.134780409 +0200
--- gcc/testsuite/gcc.dg/vect/bb-slp-pattern-2.c 2014-06-23 14:31:12.229864199 +0200
*************** int main ()
*** 48,52 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_element_align && vect_pack_trunc } } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 48,53 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp1" { target { vect_element_align && vect_pack_trunc } } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c.orig 2013-08-30 09:55:27.132780385 +0200
--- gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c 2014-06-23 14:31:25.106863312 +0200
*************** main ()
*** 45,49 ****
return main1 ();
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target { vect_call_copysignf && vect_call_sqrtf } } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 45,50 ----
return main1 ();
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target { vect_call_copysignf && vect_call_sqrtf } } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c.orig 2013-08-30 09:55:27.133780397 +0200
--- gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c 2014-06-23 14:31:32.741862787 +0200
*************** main ()
*** 63,67 ****
return main1 ();
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp" { target vect_call_lrint } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 63,68 ----
return main1 ();
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp2" { target vect_call_lrint } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c.orig 2013-03-13 11:39:27.969477882 +0100
--- gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c 2014-06-23 14:03:08.341980132 +0200
*************** int main()
*** 65,68 ****
return 0;
}
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 65,69 ----
return 0;
}
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c.orig 2013-08-30 09:55:27.134780409 +0200
--- gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c 2014-06-23 14:03:35.684978250 +0200
*************** int main (void)
*** 47,52 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 47,53 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" { target vect_int_mult } } } */
! /* { dg-final { cleanup-tree-dump "slp1" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c.orig 2013-04-04 15:31:59.774876073 +0200
--- gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c 2014-06-23 14:04:13.962975614 +0200
*************** A sum(A a,A b)
*** 13,17 ****
return a;
}
! /* { dg-final { scan-tree-dump-times "not vectorized: more than one data ref in stmt" 0 "slp" } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 13,17 ----
return a;
}
! /* { dg-final { scan-tree-dump-times "not vectorized: more than one data ref in stmt" 0 "slp2" } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
Index: gcc/testsuite/gcc.dg/vect/pr26359.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/pr26359.c.orig 2014-06-18 13:43:34.726803613 +0200
--- gcc/testsuite/gcc.dg/vect/pr26359.c 2014-06-23 14:32:05.609860524 +0200
*************** foo () {
*** 13,17 ****
}
/* { dg-final { scan-tree-dump-times "Deleting : vect_" 0 "dce5" } } */
! /* { dg-final { cleanup-tree-dump "dce" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
--- 13,17 ----
}
/* { dg-final { scan-tree-dump-times "Deleting : vect_" 0 "dce5" } } */
! /* { dg-final { cleanup-tree-dump "dce5" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
Index: gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c.orig 2010-11-23 10:52:09.000000000 +0100
--- gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c 2014-06-23 14:38:12.774835245 +0200
*************** int main (void)
*** 41,46 ****
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized using SLP" 1 "slp" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "slp" } } */
--- 41,46 ----
return 0;
}
! /* { dg-final { scan-tree-dump-times "basic block vectorized using SLP" 1 "slp2" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "slp2" } } */
^ permalink raw reply [flat|nested] 4+ messages in thread