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

--- Comment #12 from avieira at gcc dot gnu.org ---
Right and did you happen to see a perf increase on these benchmarks with any of
the patches I mentioned the hash of in the previous comment?

Just to explain a bit further what I think is going on. Before my initial
patches the epilogue loop analysis would start at the mode_i + 1 of the first
loop, in other others, the next mode in the list of modes.

After the patch (1) we started this from mode_i = 1, so the first mode after
VOIDmode, this caused some ICEs if the target didn't add any, not sure about
your targets, but that was fixed in (2).

In patch (3) Kewen added a fix to my check for potential use of partial
vectors, to check the param_vect_partial_vector_usage since that can disable
partial vector even if the target supports them.

So I suspect that either of these 3 patches inadvertently changed the
vectorization strategy for the epilogue of some loop(s) in these benchmarks. So
when I commited patch (4) f4ca0a53be18dfc7162fd5dcc1e73c4203805e14, the
vectorization strategy went back to what it was previously. If this is indeed
what happened then the regression you are seeing is just an indication that the
original vectorization strategy was sub-optimal. This is something that should
be looked at in separate and looked at as an optimization, probably by
improving the cost modelling of the vectorizer for your target.
















Patch 1)
commit d3ff7420e941931d32ce2e332e7968fe67ba20af
Author: Andre Vieira <andre.simoesdiasvie...@arm.com>
Date:   Thu Dec 2 14:34:15 2021 +0000

    [vect] Re-analyze all modes for epilogues

Patch 2)
commit 016bd7523131b645bca5b5530c81ab5149922743
Author: Andre Vieira <andre.simoesdiasvie...@arm.com>
Date:   Tue Jan 11 15:52:59 2022 +0000

    [vect] PR103971, PR103977: Fix epilogue mode selection for autodetect only

Patch 3)
commit 6d51a9c6447bace21f860e70aed13c6cd90971bd
Author: Kewen Lin <li...@linux.ibm.com>
Date:   Fri Jan 14 07:02:10 2022 -0600

    vect: Check partial vector param for supports_partial_vectors [PR104015]

Patch 4)
commit f4ca0a53be18dfc7162fd5dcc1e73c4203805e14
Author: Andre Vieira <andre.simoesdiasvie...@arm.com>
Date:   Wed Jan 19 14:11:32 2022 +0000

    vect: Fix epilogue mode skipping

Reply via email to