]> git.ipfire.org Git - thirdparty/gcc.git/commit
tree-optimization/111846 - put simd-clone-info into SLP tree
authorRichard Biener <rguenther@suse.de>
Tue, 17 Oct 2023 11:42:59 +0000 (13:42 +0200)
committerRichard Biener <rguenther@suse.de>
Tue, 17 Oct 2023 12:24:51 +0000 (14:24 +0200)
commit323209cd73bf1d81d91637677db5883afc8ae5f6
tree2e288c4840292fdd7e906c1cd6ccc7a2a2f24297
parentfbdf88a1f6de2399101ecea948ff1abbf82459fc
tree-optimization/111846 - put simd-clone-info into SLP tree

The following avoids bogously re-using the simd-clone-info we
currently hang off stmt_info from two different SLP contexts where
a different number of lanes should have chosen a different best
simdclone.

PR tree-optimization/111846
* tree-vectorizer.h (_slp_tree::simd_clone_info): Add.
(SLP_TREE_SIMD_CLONE_INFO): New.
* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize
SLP_TREE_SIMD_CLONE_INFO.
(_slp_tree::~_slp_tree): Release it.
* tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
SLP_TREE_SIMD_CLONE_INFO or STMT_VINFO_SIMD_CLONE_INFO
dependent on if we're doing SLP.

* gcc.dg/vect/pr111846.c: New testcase.
gcc/testsuite/gcc.dg/vect/pr111846.c [new file with mode: 0644]
gcc/tree-vect-slp.cc
gcc/tree-vect-stmts.cc
gcc/tree-vectorizer.h