https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107715
--- Comment #3 from Alexander Monakov <amonakov at gcc dot gnu.org> --- There's a forward dependency over 'c' (read of c[i] vs. write of c[i+1] with 'i' iterating forward), and the vectorized variant takes the hit on each iteration. How is a slowdown even surprising. For the non-vectorized variant you have at most 50% iterations waiting on the previous, when 'b' has positive and negative elements in alternation, but the generator doesn't elicit this worst case.