http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39612
--- Comment #22 from Richard Biener <rguenth at gcc dot gnu.org> --- The fix uses the store-data-race avoiding path which keeps a flag per moved mem-ref whether it was stored to. With that I can avoid loading from the ref before the loop if there are no loads in the loop itself. But it reveals that we possibly use too many flags (we don't try combining them - some simple analysis should be able to improve that).