]> gcc.gnu.org Git - gcc.git/commit
tree-optimization/110742 - fix latent issue with permuting existing vectors
authorRichard Biener <rguenther@suse.de>
Thu, 20 Jul 2023 11:09:17 +0000 (13:09 +0200)
committerRichard Biener <rguenther@suse.de>
Fri, 21 Jul 2023 07:28:44 +0000 (09:28 +0200)
commit9a8782e63790842d1bfa03e12eecf73c4aaeb1f8
tree1b792f276ed4c16c159c2076896f7b1ea4d7fde9
parent89619f87697a0e0b54be4627f0f811f6c486ffe5
tree-optimization/110742 - fix latent issue with permuting existing vectors

When we materialize a layout we push edge permutes to constant/external
defs without checking we can actually do so.  For externals defined
by vector stmts rather than scalar components we can't.

PR tree-optimization/110742
* tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
Do not materialize an edge permutation in an external node with
vector defs.
(vect_slp_analyze_node_operations_1): Guard purely internal
nodes better.

* g++.dg/torture/pr110742.C: New testcase.
gcc/testsuite/g++.dg/torture/pr110742.C [new file with mode: 0644]
gcc/tree-vect-slp.cc
This page took 0.062508 seconds and 6 git commands to generate.