aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-06-18 12:20:22 +0200
committerRichard Biener <rguenther@suse.de>2021-06-18 13:43:21 +0200
commit17a4bee01c3b29c5ccdd39f34384521e5d44135b (patch)
tree27ee5016855198e66453a453353b8d1132718a79 /gcc
parent92edc4a7684cdad5d30e197b976c35b2257f7bed (diff)
downloadgcc-17a4bee01c3b29c5ccdd39f34384521e5d44135b.zip
gcc-17a4bee01c3b29c5ccdd39f34384521e5d44135b.tar.gz
gcc-17a4bee01c3b29c5ccdd39f34384521e5d44135b.tar.bz2
tree-optimization/101112 - fix pattern stmt def lookup in SLP reassoc
This fixes the lookup of a pattern stmt def operand. 2021-06-18 Richard Biener <rguenther@suse.de> PR tree-optimization/101112 * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition to lookup a pattern stmt def.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/tree-vect-slp.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 0c1f85b..f9c33c0 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -1482,13 +1482,9 @@ vect_slp_linearize_chain (vec_info *vinfo,
stmt_vec_info def_stmt_info;
bool res = vect_is_simple_use (op, vinfo, &dt, &def_stmt_info);
gcc_assert (res);
- if (dt == vect_internal_def)
- {
- stmt_vec_info orig_def_stmt_info = def_stmt_info;
- def_stmt_info = vect_stmt_to_vectorize (def_stmt_info);
- if (def_stmt_info != orig_def_stmt_info)
- op = gimple_get_lhs (def_stmt_info->stmt);
- }
+ if (dt == vect_internal_def
+ && is_pattern_stmt_p (def_stmt_info))
+ op = gimple_get_lhs (def_stmt_info->stmt);
gimple *use_stmt;
use_operand_p use_p;
if (dt == vect_internal_def