>Statements which are live but not relevant need marking to ensure they are
>vectorized.
>
>Live statements which are simple and all uses of them are invariant do not
>need
>to be vectorized.
>
>This patch adds a check to make sure those stmts which pass both the above
>checks are not vectorized and then discarded.
>
>Tested on x86 and aarch64.
>
>
>gcc/
>        *tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non
>live
>        relevant stmts which are simple and invariant.
>
>        testsuite/
>        * gcc.dg/vect/vect-live-slp-5.c: Remove dg check.


This version adds an addition relevance check in
vectorizable_live_operation.
It requires the "Remove duplicated GOMP SIMD LANE code” to work.

gcc/
        \* tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
        relevant stmts which are simple and invariant.
        \* tree-vect-loop.c (vectorizable_live_operation): Check relevance
        instead of simple and invariant

testsuite/
        \* gcc.dg/vect/vect-live-slp-5.c: Remove dg check.
    



Alan.

Attachment: 3of3relevant.patch
Description: Binary data

Reply via email to