diff options
author | Richard Biener <rguenther@suse.de> | 2023-01-12 11:18:22 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2023-01-12 14:30:21 +0100 |
commit | b073f2b098ba7819450d6c14a0fb96cb1c09f242 (patch) | |
tree | 4e4737fd89497bae3814686055011758a3a55734 /gcc/function.cc | |
parent | 117be79bd84ed21b47588d0cd86d72d5d1757cae (diff) | |
download | gcc-b073f2b098ba7819450d6c14a0fb96cb1c09f242.zip gcc-b073f2b098ba7819450d6c14a0fb96cb1c09f242.tar.gz gcc-b073f2b098ba7819450d6c14a0fb96cb1c09f242.tar.bz2 |
tree-optimization/99412 - reassoc and reduction chains
With -ffast-math we end up associating reduction chains and break
them - this is because of old code that tries to rectify reductions
into a shape likened by the vectorizer. Nowadays the rank compute
produces correct association for reduction chains and the vectorizer
has robust support to fall back to a regular reductions (via
reduction path) when it turns out to be not a proper reduction chain.
So this patch removes the special code in reassoc which makes
the TSVC s352 vectorized with -Ofast (it is already without
-ffast-math).
PR tree-optimization/99412
* tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
(swap_ops_for_binary_stmt): Remove reduction handling.
(rewrite_expr_tree_parallel): Adjust.
(reassociate_bb): Likewise.
* tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
* gcc.dg/vect/pr99412.c: New testcase.
* gcc.dg/tree-ssa/reassoc-47.c: Adjust comment.
* gcc.dg/tree-ssa/reassoc-48.c: Remove.
Diffstat (limited to 'gcc/function.cc')
0 files changed, 0 insertions, 0 deletions