[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