[Bug target/124866] SVE Loop Vectorizer fails to vectorize stride-4 access (fallback to gather missing)
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Apr 13 19:40:46 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124866
Drea Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2026-04-13
--- Comment #3 from Drea Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> On trunk with -march=armv8.3-a+sve I see
Yes as I mentioned there is a cost model issue.
-march=armv9-a+sve2 does not vetorize the code but -march=armv8.3-a+sve2 does.
So the gimple vectorizer is doing the right thing.
Just the backend decides differently.
Note -march=armv8.3-a uses the -mtune=generic-armv8-a while -march=armv9-a uses
-mtune=generic-armv9-a.
So this also works: "-march=armv9-a+sve2 -O3 -mtune=generic-armv8-a".
Now I have not benchmarked either on real HW to tell you which is better so I
can't fully say which cost model should be changed.
More information about the Gcc-bugs
mailing list