]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/tree-vect-stmts.c
Move vector highpart emulation to the optabs layer
authorRichard Henderson <rth@redhat.com>
Tue, 10 Jul 2012 08:25:20 +0000 (01:25 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 10 Jul 2012 08:25:20 +0000 (01:25 -0700)
commit00f07b86e7d7c80695fb655738b89d893b54fc9a
tree92ca34cfac26d6253011a1acbd60501bca8cdf7a
parent9283726f7623410f58bf23da7d7589c7b261b449
Move vector highpart emulation to the optabs layer

        * expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart.
        (expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab.
        * optabs.c (can_mult_highpart_p): New.
        (expand_mult_highpart): New.
        * expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it.
        * tree-vect-generic.c (expand_vector_operations_1): Don't expand
        by pieces if can_mult_highpart_p.
        (expand_vector_divmod): Use can_mult_highpart_p and always
        generate MULT_HIGHPART_EXPR.
        * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
        * tree-vect-stmts.c (vectorizable_operation): Likewise.

From-SVN: r189407
gcc/ChangeLog
gcc/expmed.c
gcc/expr.c
gcc/optabs.c
gcc/optabs.h
gcc/tree-vect-generic.c
gcc/tree-vect-patterns.c
gcc/tree-vect-stmts.c