This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Support multiple types in SLP


Hi,

This patch adds a support of multiple types (in the same SLP instance)
in basic block vectorization.

Bootstrapped and tested on powerpc64-suse-linux.
Applied to trunk.

Ira

ChangeLog:

        * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
        vectorization.
        (vectorizable_type_promotion): Likewise.
        (vect_analyze_stmt): Call vectorizable_type_demotion and
        vectorizable_type_promotion for basic blocks.
        (supportable_widening_operation): Don't assume loop vectorization.
        * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
        basic blocks.  Update vectorization factor for basic block
        vectorization.
        (vect_analyze_slp_instance): Allow multiple types for basic block
        vectorization.  Recheck unrolling factor after construction of SLP
        instance.

testsuite/ChangeLog:

        * gcc.dg/vect/bb-slp-11.c: Expect to get vectorized with 64-bit
        vectors.
        * gcc.dg/vect/bb-slp-27.c: New.
        * gcc.dg/vect/bb-slp-28.c: New.

Attachment: slp-multi-types.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]