[Bug tree-optimization/115382] Wrong code with in-order conditional reduction and masked loops
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jul 17 07:30:24 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115382
--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Richard Biener
<rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:bf64404280a90715d1228edef0d5756e81635a64
commit r14-10444-gbf64404280a90715d1228edef0d5756e81635a64
Author: Robin Dapp <rdapp@ventanamicro.com>
Date: Fri Jun 7 14:36:41 2024 +0200
vect: Merge loop mask and cond_op mask in fold-left reduction [PR115382].
Currently we discard the cond-op mask when the loop is fully masked
which causes wrong code in
gcc.dg/vect/vect-cond-reduc-in-order-2-signed-zero.c
when compiled with
-O3 -march=cascadelake --param vect-partial-vector-usage=2.
This patch ANDs both masks.
gcc/ChangeLog:
PR tree-optimization/115382
* tree-vect-loop.cc (vectorize_fold_left_reduction): Use
prepare_vec_mask.
* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
Remove static of prepare_vec_mask.
* tree-vectorizer.h (prepare_vec_mask): Export.
(cherry picked from commit 2b438a0d2aa80f051a09b245a58f643540d4004b)
More information about the Gcc-bugs
mailing list