diff options
author | Richard Biener <rguenther@suse.de> | 2024-09-20 12:17:22 +0200 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2024-09-20 14:49:23 +0200 |
commit | 664e0ce580a8f20a78aa355c42222e4647841f77 (patch) | |
tree | 2387aeb7144cced396bf39ac47bd94c3496cc29b /gcc/fortran/error.cc | |
parent | 4eba48a684b1a1f77aa18b29a1ae58dbdc842b5b (diff) | |
download | gcc-664e0ce580a8f20a78aa355c42222e4647841f77.zip gcc-664e0ce580a8f20a78aa355c42222e4647841f77.tar.gz gcc-664e0ce580a8f20a78aa355c42222e4647841f77.tar.bz2 |
Fall back to elementwise access for too spaced SLP single element interleaving
gcc.dg/vect/vect-pr111779.c is a case where non-SLP manages to vectorize
using VMAT_ELEMENTWISE but SLP currently refuses because doing a regular
access with permutes would cause excess vector loads with at most one
element used. The following makes us fall back to elementwise accesses
for that, too.
* tree-vect-stmts.cc (get_group_load_store_type): Fall back
to VMAT_ELEMENTWISE when single element interleaving of
a too large group.
(vectorizable_load): Do not try to verify load permutations
when using VMAT_ELEMENTWISE for single-lane SLP and fix code
generation for this case.
* gfortran.dg/vect/vect-8.f90: Allow one more vectorized loop.
Diffstat (limited to 'gcc/fortran/error.cc')
0 files changed, 0 insertions, 0 deletions