https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81877
--- Comment #13 from Alexander Monakov <amonakov at gcc dot gnu.org> --- > More rigorously defining the semantic of loop->safelen (the > middle-end term) is necessary nevertheless. I believe omp ordered > doesn't have any middle-end representation? Except on nvptx, 'omp ordered' in omp-simd context becomes a stmt sequence bracketed with IFN_GOMP_SIMD_ORDERED_{START,END}, which completely disables cross-iteration vectorization aiui. So your example doesn't get vectorized (not even with SLP). (on omp/ptx the approach is different)