https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93334
--- Comment #5 from N Schaeffer <nathanael.schaeffer at gmail dot com> --- Elaborating a bit on this: I can eliminate this problem by using: -O3 -fno-tree-loop-distribute-patterns -fno-tree-loop-vectorize I wonder why -fno-tree-loop-distribute-patterns is not enough ? In that case, I get no calls to memset, but still the write-after-write dependency check. Also, decorating the loop with #pragma omp simd AND compiling with -O3 -march=core-avx2 -fopenmp-simd -fno-tree-loop-distribute-patterns finally generates sensible code. Note that with -fno-tree-loop-distribute-patterns, I still get calls to memset instead of a simd-vectorized loop...