[Bug target/91982] gcc.target/aarch64/sve/clastb_*.c tests failing with segfault
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Oct 4 07:52:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91982
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
So somehow
last_5 = _4 >= min_v_11(D) ? last_16 : i_17;
has been removed. I see
last_5 = .FOLD_EXTRACT_LAST (...
in the IL now. Removing old stmts during transform is really fragile...
(but yes, in-order reductions want to re-use the original cycle).
The following fixes the -1.c testcase (yeah, what a mess ;)). Unfortunately
a cc1 cross refuses to make-check and I'm not wanting to manually
compile all of sve/*.c
Index: gcc/tree-vect-stmts.c
===================================================================
--- gcc/tree-vect-stmts.c (revision 276564)
+++ gcc/tree-vect-stmts.c (working copy)
@@ -10897,6 +10897,9 @@ vect_transform_stmt (stmt_vec_info stmt_
stmt_vec_info orig_stmt_info = vect_orig_stmt (stmt_info);
if (!slp_node && STMT_VINFO_REDUC_DEF (orig_stmt_info)
&& STMT_VINFO_REDUC_TYPE (orig_stmt_info) != FOLD_LEFT_REDUCTION
+ && (STMT_VINFO_REDUC_TYPE (orig_stmt_info) != COND_REDUCTION
+ || (STMT_VINFO_VEC_REDUCTION_TYPE (orig_stmt_info)
+ != EXTRACT_LAST_REDUCTION))
&& is_a <gphi *> (STMT_VINFO_REDUC_DEF (orig_stmt_info)->stmt))
{
gphi *phi = as_a <gphi *> (STMT_VINFO_REDUC_DEF (orig_stmt_info)->stmt);
Index: gcc/tree-vect-loop.c
===================================================================
--- gcc/tree-vect-loop.c (revision 276564)
+++ gcc/tree-vect-loop.c (working copy)
@@ -7901,7 +7901,10 @@ vectorizable_live_operation (stmt_vec_in
return true;
if (STMT_VINFO_DEF_TYPE (stmt_info) == vect_reduction_def)
{
- if (STMT_VINFO_REDUC_TYPE (stmt_info) == FOLD_LEFT_REDUCTION)
+ if (STMT_VINFO_REDUC_TYPE (stmt_info) == FOLD_LEFT_REDUCTION
+ || (STMT_VINFO_REDUC_TYPE (stmt_info) == COND_REDUCTION
+ && (STMT_VINFO_VEC_REDUCTION_TYPE (stmt_info)
+ == EXTRACT_LAST_REDUCTION)))
return true;
if (slp_node)
{
More information about the Gcc-bugs
mailing list