[vect] Re-analyze all modes for epilogues
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Thu, 2 Dec 2021 14:34:15 +0000 (14:34 +0000)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Mon, 10 Jan 2022 17:54:33 +0000 (17:54 +0000)
commitd3ff7420e941931d32ce2e332e7968fe67ba20af
tree14dc5d0f7401326cf19569ccfa92dc0841a4ac0c
parent828474fafd2ed33430172fe227f9da7d6fb98723
[vect] Re-analyze all modes for epilogues

gcc/ChangeLog:

* tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
epilogue costing.
* tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
epilogues, unless we are guaranteed that we can't have partial vectors.
* genopinit.c: (partial_vectors_supported): Generate new function.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/masked_epilogue.c: New test.
gcc/genopinit.c
gcc/testsuite/gcc.target/aarch64/masked_epilogue.c [new file with mode: 0644]
gcc/tree-vect-loop.c
gcc/tree-vectorizer.c