]> git.ipfire.org Git - thirdparty/gcc.git/commit
tree-optimization/117502 - VMAT_STRIDED_SLP vs VMAT_ELEMENTWISE when considering...
authorRichard Biener <rguenther@suse.de>
Fri, 8 Nov 2024 12:06:07 +0000 (13:06 +0100)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 12 Nov 2024 07:31:14 +0000 (08:31 +0100)
commit0b27a7dd050262a7d64d87863201e4ebbde88386
treef6461493d33806259292dc5e4dbd7d6f40489efc
parente232dc3bb5c3e8f8a3749239135b7b859a204fc7
tree-optimization/117502 - VMAT_STRIDED_SLP vs VMAT_ELEMENTWISE when considering gather

The following treats both the same when considering to use gather or
scatter for single-element interleaving accesses.

This will cause

FAIL: gcc.target/aarch64/sve/sve_iters_low_2.c scan-tree-dump-not vect "LOOP VECTORIZED"

where we now vectorize the loop with VNx4QI, I'll leave it to ARM folks
to investigate whether that's OK and to adjust the testcase or to see
where to adjust things to make the testcase not vectorized again.  The
original fix for which the testcase was introduced is still efffective.

PR tree-optimization/117502
* tree-vect-stmts.cc (get_group_load_store_type): Also consider
VMAT_STRIDED_SLP when checking to use gather/scatter for
single-element interleaving access.
* tree-vect-loop.cc (update_epilogue_loop_vinfo): STMT_VINFO_STRIDED_P
can be classified as VMAT_GATHER_SCATTER, so update DR_REF for
those as well.
gcc/tree-vect-loop.cc
gcc/tree-vect-stmts.cc