tree-optimization/97886 - deal with strange LC PHI nodes
This makes vectorization properly assign vector types to PHI nodes that copy from externals on loop exit edges. 2020-11-18 Richard Biener <rguenther@suse.de> PR tree-optimization/97886 * tree-vect-loop.c (vectorizable_lc_phi): Properly assign vector types to invariants for SLP.
This commit is contained in:
parent
798bdfa0eb
commit
30270bf042
1 changed files with 11 additions and 0 deletions
|
@ -7593,6 +7593,17 @@ vectorizable_lc_phi (loop_vec_info loop_vinfo,
|
|||
|
||||
if (!vec_stmt) /* transformation not required. */
|
||||
{
|
||||
/* Deal with copies from externs or constants that disguise as
|
||||
loop-closed PHI nodes (PR97886). */
|
||||
if (slp_node
|
||||
&& !vect_maybe_update_slp_op_vectype (SLP_TREE_CHILDREN (slp_node)[0],
|
||||
SLP_TREE_VECTYPE (slp_node)))
|
||||
{
|
||||
if (dump_enabled_p ())
|
||||
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
|
||||
"incompatible vector types for invariants\n");
|
||||
return false;
|
||||
}
|
||||
STMT_VINFO_TYPE (stmt_info) = lc_phi_info_type;
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue