[Bug middle-end/29756] SSE intrinsics hard to use without redundant temporaries appearing

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri May 20 09:18:00 GMT 2016


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

--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Fri May 20 09:17:16 2016
New Revision: 236501

URL: https://gcc.gnu.org/viewcvs?rev=236501&root=gcc&view=rev
Log:
2016-05-20  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/29756
        * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
        * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
        * fold-const.c (operand_equal_p): Likewise.
        (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
        * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
        * tree-inline.c (estimate_operator_cost): Likewise.
        * tree-pretty-print.c (dump_generic_node): Likewise.
        * tree-ssa-operands.c (get_expr_operands): Likewise.
        * cfgexpand.c (expand_debug_expr): Likewise.
        * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
        * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
        * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.

        * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
        vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
        (execute_update_addresses_taken): Do it.

        * gcc.dg/tree-ssa/vector-6.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.dg/tree-ssa/vector-6.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cfgexpand.c
    trunk/gcc/expr.c
    trunk/gcc/fold-const.c
    trunk/gcc/gimple-pretty-print.c
    trunk/gcc/gimple.c
    trunk/gcc/gimplify.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-cfg.c
    trunk/gcc/tree-inline.c
    trunk/gcc/tree-pretty-print.c
    trunk/gcc/tree-ssa-operands.c
    trunk/gcc/tree-ssa.c
    trunk/gcc/tree.def


More information about the Gcc-bugs mailing list