mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-22 00:01:10 +08:00
tree-vect-slp.c (vect_analyze_slp_instance): Dump constructors we are actually analyzing.
2019-11-20 Richard Biener <rguenther@suse.de> * tree-vect-slp.c (vect_analyze_slp_instance): Dump constructors we are actually analyzing. (vect_slp_check_for_constructors): Do not vectorize uniform constuctors, do not dump here. * gcc.dg/vect/bb-slp-42.c: Adjust. * gcc.dg/vect/bb-slp-40.c: Likewise. From-SVN: r278495
This commit is contained in:
parent
2439d584d5
commit
140ee00a96
@ -1,3 +1,10 @@
|
||||
2019-11-20 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* tree-vect-slp.c (vect_analyze_slp_instance): Dump
|
||||
constructors we are actually analyzing.
|
||||
(vect_slp_check_for_constructors): Do not vectorize uniform
|
||||
constuctors, do not dump here.
|
||||
|
||||
2019-11-20 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/92537
|
||||
|
@ -1,3 +1,8 @@
|
||||
2019-11-20 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* gcc.dg/vect/bb-slp-42.c: Adjust.
|
||||
* gcc.dg/vect/bb-slp-40.c: Likewise.
|
||||
|
||||
2019-11-20 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/92537
|
||||
|
@ -30,5 +30,5 @@ void foo(void)
|
||||
}
|
||||
|
||||
/* See that we vectorize an SLP instance. */
|
||||
/* { dg-final { scan-tree-dump "Found vectorizable constructor" "slp1" } } */
|
||||
/* { dg-final { scan-tree-dump "Analyzing vectorizable constructor" "slp1" } } */
|
||||
/* { dg-final { scan-tree-dump "vectorizing stmts using SLP" "slp1" } } */
|
||||
|
@ -44,6 +44,5 @@ main ()
|
||||
|
||||
}
|
||||
|
||||
/* See that we vectorize an SLP instance. */
|
||||
/* { dg-final { scan-tree-dump "Found vectorizable constructor" "slp1" { target { ! vect_fully_masked } } } } */
|
||||
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "slp1" { target { ! vect_fully_masked } } } } */
|
||||
/* See that we do not try to vectorize the uniform CTORs. */
|
||||
/* { dg-final { scan-tree-dump-not "Analyzing vectorizable constructor" "slp1" } } */
|
||||
|
@ -2183,6 +2183,10 @@ vect_analyze_slp_instance (vec_info *vinfo,
|
||||
else
|
||||
return false;
|
||||
}
|
||||
if (dump_enabled_p ())
|
||||
dump_printf_loc (MSG_NOTE, vect_location,
|
||||
"Analyzing vectorizable constructor: %G\n",
|
||||
stmt_info->stmt);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -3116,31 +3120,22 @@ vect_slp_check_for_constructors (bb_vec_info bb_vinfo)
|
||||
gimple_stmt_iterator gsi;
|
||||
|
||||
for (gsi = bb_vinfo->region_begin;
|
||||
gsi_stmt (gsi) != gsi_stmt (bb_vinfo->region_end); gsi_next (&gsi))
|
||||
gsi_stmt (gsi) != gsi_stmt (bb_vinfo->region_end); gsi_next (&gsi))
|
||||
{
|
||||
gimple *stmt = gsi_stmt (gsi);
|
||||
gassign *stmt = dyn_cast <gassign *> (gsi_stmt (gsi));
|
||||
if (!stmt || gimple_assign_rhs_code (stmt) != CONSTRUCTOR)
|
||||
continue;
|
||||
|
||||
if (is_gimple_assign (stmt)
|
||||
&& gimple_assign_rhs_code (stmt) == CONSTRUCTOR
|
||||
&& TREE_CODE (gimple_assign_lhs (stmt)) == SSA_NAME
|
||||
&& TREE_CODE (TREE_TYPE (gimple_assign_lhs (stmt))) == VECTOR_TYPE)
|
||||
{
|
||||
tree rhs = gimple_assign_rhs1 (stmt);
|
||||
tree rhs = gimple_assign_rhs1 (stmt);
|
||||
if (!VECTOR_TYPE_P (TREE_TYPE (rhs))
|
||||
|| maybe_ne (TYPE_VECTOR_SUBPARTS (TREE_TYPE (rhs)),
|
||||
CONSTRUCTOR_NELTS (rhs))
|
||||
|| VECTOR_TYPE_P (TREE_TYPE (CONSTRUCTOR_ELT (rhs, 0)->value))
|
||||
|| uniform_vector_p (rhs))
|
||||
continue;
|
||||
|
||||
if (CONSTRUCTOR_NELTS (rhs) == 0)
|
||||
continue;
|
||||
|
||||
poly_uint64 subparts = TYPE_VECTOR_SUBPARTS (TREE_TYPE (rhs));
|
||||
|
||||
if (maybe_ne (subparts, CONSTRUCTOR_NELTS (rhs)))
|
||||
continue;
|
||||
|
||||
if (dump_enabled_p ())
|
||||
dump_printf_loc (MSG_NOTE, vect_location,
|
||||
"Found vectorizable constructor: %G\n", stmt);
|
||||
stmt_vec_info stmt_info = bb_vinfo->lookup_stmt (stmt);
|
||||
BB_VINFO_GROUPED_STORES (bb_vinfo).safe_push (stmt_info);
|
||||
}
|
||||
stmt_vec_info stmt_info = bb_vinfo->lookup_stmt (stmt);
|
||||
BB_VINFO_GROUPED_STORES (bb_vinfo).safe_push (stmt_info);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user