aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-07-16 11:53:17 +0200
committerRichard Biener <rguenth@gcc.gnu.org>2024-07-16 16:05:11 +0200
commit016c947b02e79a5c0c0c2d4ad5cb71aa04db3efd (patch)
tree6d817652a52a725b48d67b1327398022a5dcab71 /gcc/tree-vectorizer.h
parentcca1229b85f2ad9422773fdb954d0924fa1cd350 (diff)
downloadgcc-016c947b02e79a5c0c0c2d4ad5cb71aa04db3efd.zip
gcc-016c947b02e79a5c0c0c2d4ad5cb71aa04db3efd.tar.gz
gcc-016c947b02e79a5c0c0c2d4ad5cb71aa04db3efd.tar.bz2
tree-optimization/115841 - reduction epilogue placement issue
When emitting the compensation to the vectorized main loop for a vector reduction value to be re-used in the vectorized epilogue we fail to place it in the correct block when the main loop is known to be entered (no loop_vinfo->main_loop_edge) but the epilogue is not (a loop_vinfo->skip_this_loop_edge). The code currently disregards this situation. With the recent znver4 cost fix I couldn't trigger this situation with the testcase but I adjusted it so it could eventually trigger on other targets. PR tree-optimization/115841 * tree-vect-loop.cc (vect_transform_cycle_phi): Correctly place the partial vector reduction for the accumulator re-use when the main loop cannot be skipped but the epilogue can. * gcc.dg/vect/pr115841.c: New testcase.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions