]> git.ipfire.org Git - thirdparty/gcc.git/commit
tree-optimization/115895 - overrun with masked loop
authorRichard Biener <rguenther@suse.de>
Tue, 14 Jan 2025 14:26:21 +0000 (15:26 +0100)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 16 Jan 2025 07:44:39 +0000 (08:44 +0100)
commit1b5d2ccd060ce983c7459ee165275e0205271396
tree9fc9b1264492aaa1435078890966ce166267f918
parentcf9de710aaacd8a3c2cddf348c704b19a5404a0f
tree-optimization/115895 - overrun with masked loop

The following addresses the fact that with loop masking (or regular
mask loads) we do not implement load shortening but we override
the case where we need that for correctness.  Likewise when we
attempt to use loop masking to handle large trailing gaps we cannot
do so when there's this overrun case.

PR tree-optimization/115895
* tree-vect-stmts.cc (get_group_load_store_type): When we
might overrun because the group size is not a multiple of the
vector size we cannot use loop masking since that does not
implement the required load shortening.

* gcc.target/i386/vect-pr115895.c: New testcase.
gcc/testsuite/gcc.target/i386/vect-pr115895.c [new file with mode: 0644]
gcc/tree-vect-stmts.cc