diff options
author | Richard Biener <rguenther@suse.de> | 2025-03-03 13:21:53 +0100 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2025-03-03 14:43:14 +0100 |
commit | 758de6263dfc7ba8701965fa468691ac23cb7eb5 (patch) | |
tree | 5b2fc9f4a8797046f0461be1233b6dce22263cfa /gcc/json-parsing.cc | |
parent | f22e89167b3abfbf6d67f42fc4d689d8ffdc1810 (diff) | |
download | gcc-758de6263dfc7ba8701965fa468691ac23cb7eb5.zip gcc-758de6263dfc7ba8701965fa468691ac23cb7eb5.tar.gz gcc-758de6263dfc7ba8701965fa468691ac23cb7eb5.tar.bz2 |
tree-optimization/119057 - bogus double reduction detection
We are detecting a cycle as double reduction where the inner loop
cycle has extra out-of-loop uses. This clashes at least with
assumptions from the SLP discovery code which says the cycle
isn't reachable from another SLP instance. It also was not intended
to support this case, in fact with GCC 14 we seem to generate wrong
code here.
PR tree-optimization/119057
* tree-vect-loop.cc (check_reduction_path): Add argument
specifying whether we're analyzing the inner loop of a
double reduction. Do not allow extra uses outside of the
double reduction cycle in this case.
(vect_is_simple_reduction): Adjust.
* gcc.dg/vect/pr119057.c: New testcase.
Diffstat (limited to 'gcc/json-parsing.cc')
0 files changed, 0 insertions, 0 deletions