https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105181
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Summary|[optimization] gcc generate |Store and load with |worse code than clang base |updating the pointer is not |on advanced simd |used as often as it should | |be on aarch64 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This is just an induction variable selection issue. Gcc decides using one is better than using 3 where the store and loads do the update too. This is most likely a cost model issue as ivopts does have some support for these kinds of instructions.