https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78102

--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Tue Oct 25 16:26:12 2016
New Revision: 241525

URL: https://gcc.gnu.org/viewcvs?rev=241525&root=gcc&view=rev
Log:
        PR target/78102
        * optabs.def (vcondeq_optab, vec_cmpeq_optab): New optabs.
        * optabs.c (expand_vec_cond_expr): For comparison codes
        EQ_EXPR and NE_EXPR, attempt vcondeq_optab as fallback.
        (expand_vec_cmp_expr): For comparison codes
        EQ_EXPR and NE_EXPR, attempt vec_cmpeq_optab as fallback.
        * optabs-tree.h (expand_vec_cmp_expr_p, expand_vec_cond_expr_p):
        Add enum tree_code argument.
        * optabs-query.h (get_vec_cmp_eq_icode, get_vcond_eq_icode): New
        inline functions.
        * optabs-tree.c (expand_vec_cmp_expr_p): Add CODE argument.  For
        CODE EQ_EXPR or NE_EXPR, attempt to use vec_cmpeq_optab as
        fallback.
        (expand_vec_cond_expr_p): Add CODE argument.  For CODE EQ_EXPR or
        NE_EXPR, attempt to use vcondeq_optab as fallback.
        * tree-vect-generic.c (expand_vector_comparison,
        expand_vector_divmod, expand_vector_condition): Adjust
        expand_vec_cmp_expr_p and expand_vec_cond_expr_p callers.
        * tree-vect-stmts.c (vectorizable_condition,
        vectorizable_comparison): Likewise.
        * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern,
        check_bool_pattern, search_type_for_mask_1): Likewise.
        * expr.c (do_store_flag): Likewise.
        * doc/md.texi (@code{vec_cmpeq@var{m}@var{n}},
        @code{vcondeq@var{m}@var{n}}): Document.
        * config/i386/sse.md (vec_cmpeqv2div2di, vcondeq<VI8F_128:mode>v2di):
        New expanders.
testsuite/
        * gcc.target/i386/pr78102.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr78102.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/sse.md
    trunk/gcc/doc/md.texi
    trunk/gcc/expr.c
    trunk/gcc/optabs-query.h
    trunk/gcc/optabs-tree.c
    trunk/gcc/optabs-tree.h
    trunk/gcc/optabs.c
    trunk/gcc/optabs.def
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vect-generic.c
    trunk/gcc/tree-vect-patterns.c
    trunk/gcc/tree-vect-stmts.c

Reply via email to