* tree-vect-stmts.c (vectorizable_load): For SLP without
authorirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 Oct 2011 10:47:12 +0000 (10:47 +0000)
committerirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 Oct 2011 10:47:12 +0000 (10:47 +0000)
commit24c271effea34f9832d5daafcd3e5178ba6ae678
treeafce7ab0f20cd96ce8cfc5d418a37f92b01ae576
parentf76f745315f24b3c0d1b49af323cdfca1bf35abf
    * tree-vect-stmts.c (vectorizable_load): For SLP without
        permutation treat the first load of the node as the first
        element in its interleaving chain.
        * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the
        operands if necessary and possible.
        (vect_build_slp_tree): Add new argument.  Allow load groups of
        any size in basic blocks.  Keep all the loads for further
        permutation check.  Use the new argument to determine if there
        is a permutation.  Update the recursive calls.
        (vect_supported_load_permutation_p): Allow subchains of
        interleaving chains in basic block vectorization.
        (vect_analyze_slp_instance): Update the call to
        vect_build_slp_tree.  Check load permutation based on the new
        parameter.
        (vect_schedule_slp_instance): Don't start from the first element
        in interleaving chain unless the loads are permuted.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180055 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/bb-slp-29.c [new file with mode: 0644]
gcc/tree-vect-slp.c
gcc/tree-vect-stmts.c