]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-optimization/101112 - fix pattern stmt def lookup in SLP reassoc
authorRichard Biener <rguenther@suse.de>
Fri, 18 Jun 2021 10:20:22 +0000 (12:20 +0200)
committerRichard Biener <rguenther@suse.de>
Fri, 18 Jun 2021 11:43:21 +0000 (13:43 +0200)
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.

gcc/tree-vect-slp.c

index 0c1f85beeb2e9f3fb7c66c15d4d30594b2570f9e..f9c33c0bb141b2b69ec5b39796bd430aa7dcf12d 100644 (file)
@@ -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