diff options
author | Richard Biener <rguenther@suse.de> | 2021-06-10 10:39:31 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-06-10 10:41:16 +0200 |
commit | cce1697e6fe0134616ebc8f7040d99e66c12241a (patch) | |
tree | c64ab1c4fe0e1507ffd05ba2b1c94e7ed0b339b9 /gcc/tree-vect-slp.c | |
parent | 5ad76ad7f5bb7f052f4ef694b2b46f6e14a8d666 (diff) | |
download | gcc-cce1697e6fe0134616ebc8f7040d99e66c12241a.zip gcc-cce1697e6fe0134616ebc8f7040d99e66c12241a.tar.gz gcc-cce1697e6fe0134616ebc8f7040d99e66c12241a.tar.bz2 |
tree-optimization/101003 - use pattern defs when linearizing
We of course have to use pattern stmt defs for the linearized
chain operands which is what I failed to ensure.
2021-06-10 Richard Biener <rguenther@suse.de>
PR tree-optimization/101003
* tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
use the pattern stmt defs when linearizing a chain.
Diffstat (limited to 'gcc/tree-vect-slp.c')
-rw-r--r-- | gcc/tree-vect-slp.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index 1915d74..c4f8f38 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -1806,6 +1806,11 @@ vect_build_slp_tree_2 (vec_info *vinfo, slp_tree node, 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) + { + def_stmt_info = vect_stmt_to_vectorize (def_stmt_info); + op = gimple_get_lhs (def_stmt_info->stmt); + } gimple *use_stmt; use_operand_p use_p; if (dt == vect_internal_def |