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.