diff options
author | Richard Biener <rguenther@suse.de> | 2019-10-04 09:18:26 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-10-04 09:18:26 +0000 |
commit | 48528394eafa9d1db9f956570f910c76d429a3e5 (patch) | |
tree | f1938b568bd4faf791d2f36c86e03b15523413b0 /gcc/tree-vect-loop.c | |
parent | 3d203d01760ed8e5a81a9406fee67c139d116ad0 (diff) | |
download | gcc-48528394eafa9d1db9f956570f910c76d429a3e5.zip gcc-48528394eafa9d1db9f956570f910c76d429a3e5.tar.gz gcc-48528394eafa9d1db9f956570f910c76d429a3e5.tar.bz2 |
re PR target/91982 (gcc.target/aarch64/sve/clastb_*.c tests failing with segfault)
2019-10-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/91982
* tree-vect-loop.c (vectorizable_live_operation): Also guard
against EXTRACT_LAST_REDUCTION.
* tree-vect-stmts.c (vect_transform_stmt): Likewise.
From-SVN: r276566
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r-- | gcc/tree-vect-loop.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 31e7457..3db4a5c 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -7901,7 +7901,10 @@ vectorizable_live_operation (stmt_vec_info stmt_info, 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) { |