https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93334
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to N Schaeffer from comment #3) > So I think only zeros and NaNs are possible to optimize to memset anyway > (and some other very special cases, that is probably not worth considering > anyway). No, all values which in their representation have the same bytes repeated through the whole size, e.g. double 0x1.010101010101p-766, 32.502 and many others. Note, it doesn't have to be all floating point etc. if aliasing let's it through for whatever reason. I guess if we have write-after-write dependency, whether in the tree-loop-distribution or perhaps the vectorizer too, look if all those writes don't have constant sources that have representation of one repeated byte all over and whether both stores in the dependency write the same bytes, ignore the write-after-write dependency.