tree-optimization/101801 - remove vect_worthwhile_without_simd_p
authorRichard Biener <rguenther@suse.de>
Fri, 6 Aug 2021 12:39:05 +0000 (14:39 +0200)
committerRichard Biener <rguenther@suse.de>
Fri, 6 Aug 2021 13:32:30 +0000 (15:32 +0200)
commitf31da42e047e8018ca6ad9809273bc7efb6ffcaf
tree94fce0bf3db36f9a3feefe87c26f67c2321c7a5e
parentc2a984a3570b908a44a35e43bb48f0a05196156a
tree-optimization/101801 - remove vect_worthwhile_without_simd_p

This removes the cost part of vect_worthwhile_without_simd_p, retaining
only the correctness bits.  The reason is that the cost heuristic
do not properly account for SLP plus the check whether "without simd"
applies misfires for AVX512 mask vectors at the moment, leading to
missed vectorizations there.

Any costing decision should take place in the cost modeling, no
single stmt is to disable all vectorization on its own.

2021-08-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/101801
* tree-vectorizer.h (vect_worthwhile_without_simd_p): Rename...
(vect_can_vectorize_without_simd_p): ... to this.
* tree-vect-loop.c (vect_worthwhile_without_simd_p): Rename...
(vect_can_vectorize_without_simd_p): ... to this and fold
in vect_min_worthwhile_factor.
(vect_min_worthwhile_factor): Remove.
(vectorizable_reduction): Adjust and remove the cost part.
* tree-vect-stmts.c (vectorizable_shift): Likewise.
(vectorizable_operation): Likewise.
gcc/tree-vect-loop.c
gcc/tree-vect-stmts.c
gcc/tree-vectorizer.h