https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93334
--- Comment #2 from bin cheng <amker at gcc dot gnu.org> --- (In reply to Richard Biener from comment #1) > Confirmed. The issue is that the overlap would be an issue if the stores > were using different values like > > void test_simple_code(long l, double* mem, long ofs2) { > for (long k=0; k<l; k++) { > mem[k] = 0.0; > mem[ofs2 +k] = 1.0; > } > } > > and we're simply not optimizing the case where the write-after-write > dependence can be ignored because the stored value is always the same. > I'm also not sure whether that's easy to do ... Bin? I will check if it can be handled as a special case. Thanks.