https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114435

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to jchrist from comment #5)
> I tried your patch and it leaves an awful amount of dead stores to the
> accumulator within the loop.  I also still see the stores inside the loop in
> gimple.  Is this really desired?  Or is this an artifact of our unrolling
> setting on s390x?  But even in the gimple I see the store inside the loop.

The main issue is that we cannot do store-motion in the loop during
invariant motion.  I have not checked why.

So the (vector) accumulator update stays in the loop and if you unroll
this say during RTL then you'll see the duplicates.  Note that then
appearantly RTL DSE also cannot remove them (likely due to the same reason,
all memory accesses use alias-set 1).

Reply via email to