Ok, I've now pushed the previously-approved first half of this, and am now looking at replacing VEC_RSHIFT_EXPR with a VEC_PERM_EXPR. However: does it seem reasonable to push this patch 11 (removing VEC_LSHIFT_EXPR and vec_shl_optab) out-of-sequence? The patch applies almost-cleanly, there is just a one-line conflict with a change to a comment from the previous patch (which I'm skipping)...

Cheers, Alan

Richard Biener wrote:
On Thu, Sep 18, 2014 at 2:35 PM, Alan Lawrence <alan.lawre...@arm.com> wrote:
The VEC_LSHIFT_EXPR tree code, and the corresponding vec_shl_optab, seem to
have been added for completeness, providing a counterpart to VEC_RSHIFT_EXPR
and vec_shr_optab. However, whereas VEC_RSHIFT_EXPRs are generated (only) by
the vectorizer, VEC_LSHIFT_EXPR expressions are not generated at all, so
there seems little point in maintaining it.

Bootstrapped on x86_64-unknown-linux-gnu.
aarch64.exp+vect.exp on aarch64-none-elf and aarch64_be-none-elf.

Ah, there it is ;)

Ok.

Thanks,
Richard.

gcc/ChangeLog:

        * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
        * fold-const.c (const_binop): Likewise.
        * cfgexpand.c (expand_debug_expr): Likewise.
        * tree-inline.c (estimate_operator_cost, dump_generic_node,
        op_code_prio, op_symbol_code): Likewise.
        * tree-vect-generic.c (expand_vector_operations_1): Likewise.
        * optabs.c (optab_for_tree_code): Likewise.
        (expand_vec_shift_expr): Likewise, update comment.
        * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
        * optabs.h (expand_vec_shift_expr): Remove comment re.
VEC_LSHIFT_EXPR.
        * optabs.def: Remove vec_shl_optab.
        * doc/md.texi: Remove references to vec_shr_m.



Reply via email to