]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/tree-vect-slp.c
tree-vect-stmts.c (vectorizable_load): For SLP without permutation treat the first...
authorIra Rosen <ira.rosen@linaro.org>
Sun, 16 Oct 2011 10:47:12 +0000 (10:47 +0000)
committerIra Rosen <irar@gcc.gnu.org>
Sun, 16 Oct 2011 10:47:12 +0000 (10:47 +0000)
commit6aa904c4c64f9cb0673323d4eb5bbc70bd47bfb4
treeafce7ab0f20cd96ce8cfc5d418a37f92b01ae576
parent1bb7e8f8fe35140b62b0d203f04c3d9f1c5ee909
tree-vect-stmts.c (vectorizable_load): For SLP without permutation treat the first load of the node as the first...

        * 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.

From-SVN: r180055
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