diff options
author | Richard Biener <rguenther@suse.de> | 2021-01-12 11:17:33 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-01-12 15:17:24 +0100 |
commit | 52a170b1a1818b7521c25e76271638a448b3f630 (patch) | |
tree | 38a14497f302dc2adf2990fc71c6c4f77a8673ea /gcc/cp/tree.c | |
parent | e91910d3576eeac714c93ec25ea3b15012007903 (diff) | |
download | gcc-52a170b1a1818b7521c25e76271638a448b3f630.tar.gz |
tree-optimization/98550 - fix BB vect unrolling check
This fixes the check that disqualifies BB vectorization because of
required unrolling to match up with the later exact_div we do. To
not disable the ability to split groups that do not match up
exactly with a choosen vector type this also introduces a soft-fail
mechanism to vect_build_slp_tree_1 which delays failing to after
the matches[] array is populated from other checks and only then
determines the split point according to the vector type.
2021-01-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/98550
* tree-vect-slp.c (vect_record_max_nunits): Check whether
the group size is a multiple of the vector element count.
(vect_build_slp_tree_1): When we need to fail because
the vector type choosen causes unrolling do so lazily
without affecting matches only at the end to guide group splitting.
* g++.dg/opt/pr98550.C: New testcase.
Diffstat (limited to 'gcc/cp/tree.c')
0 files changed, 0 insertions, 0 deletions