genopinit.c (vec_shl_optab, [...]): Initialize new optabs.
authorDorit Nuzman <dorit@il.ibm.com>
Tue, 21 Jun 2005 09:02:00 +0000 (09:02 +0000)
committerDorit Nuzman <dorit@gcc.gnu.org>
Tue, 21 Jun 2005 09:02:00 +0000 (09:02 +0000)
commita6b46ba2c84f81e70811e13581c99350cdc76400
tree9b2edf4d87ca9a2741f8f8a846bf5e277d74ab28
parenta3a2067ac5b2a5ce0b8439d42167df5694d2bb5b
genopinit.c (vec_shl_optab, [...]): Initialize new optabs.

        * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
        (reduc_plus_optab): Removed.  Replcaed with...
        (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
        * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
        reduc_uplus_optab instead of reduc_plus_optab.
        (expand_vec_shift_expr): New function.
        (init_optabs): Initialize new optabs. Remove initialization of
        reduc_plus_optab.
        (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
        for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
        * optabs.h (OTI_reduc_plus): Removed. Replaced with...
        (OTI_reduc_splus, OTI_reduc_uplus): New.
        (reduc_plus_optab): Removed.  Replcaed with...
        (reduc_splus_optab, reduc_uplus_optab): New optabs.
        (vec_shl_optab, vec_shr_optab): New optabs.
        (expand_vec_shift_expr): New function declaration.

        * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
        * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
        * expr.c (expand_expr_real_1): Handle new tree-codes.
        * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
        * tree-vect-generic.c (expand_vector_operations_1): Add assert.

        * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
        alternatives for generating reduction epilog code.
        (vectorizable_reduction): Don't fail of direct reduction support is
        not available.
        (vectorizable_target_reduction_pattern): Likewise.

        * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
        reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
        reduc_plus_v4si, reduc_plus_v4sf): Removed.
        (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
        reduc_splus_<mode>, reduc_uplus_v16qi): New.

From-SVN: r101231
25 files changed:
gcc/ChangeLog
gcc/config/rs6000/altivec.md
gcc/expr.c
gcc/genopinit.c
gcc/optabs.c
gcc/optabs.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-reduc-1.c
gcc/testsuite/gcc.dg/vect/vect-reduc-1char.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-reduc-1short.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-reduc-2.c
gcc/testsuite/gcc.dg/vect/vect-reduc-2char.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-reduc-2short.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-reduc-3.c
gcc/testsuite/gcc.dg/vect/vect-reduc-6.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect.exp
gcc/testsuite/lib/target-supports.exp
gcc/tree-inline.c
gcc/tree-pretty-print.c
gcc/tree-vect-generic.c
gcc/tree-vect-transform.c
gcc/tree.def