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

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Robin Dapp <rd...@gcc.gnu.org>:

https://gcc.gnu.org/g:0c42741ad95af3a1e3ac07350da4c3a94865ed63

commit r14-5151-g0c42741ad95af3a1e3ac07350da4c3a94865ed63
Author: Robin Dapp <rd...@ventanamicro.com>
Date:   Wed Oct 25 22:19:43 2023 +0200

    internal-fn: Add VCOND_MASK_LEN.

    In order to prevent simplification of a COND_OP with degenerate mask
    (CONSTM1_RTX) into just an OP in the presence of length masking this
    patch introduces a length-masked analog to VEC_COND_EXPR:
    IFN_VCOND_MASK_LEN.

    It also adds new match patterns that allow the combination of
    unconditional unary, binary and ternay operations with the
    VCOND_MASK_LEN into a conditional operation if the target supports it.

    gcc/ChangeLog:

            PR tree-optimization/111760

            * config/riscv/autovec.md (vcond_mask_len_<mode><vm>): Add
            expander.
            * config/riscv/riscv-protos.h (enum insn_type): Add.
            * config/riscv/riscv-v.cc (needs_fp_rounding): Add !pred_mov.
            * doc/md.texi: Add vcond_mask_len.
            * gimple-match-exports.cc (maybe_resimplify_conditional_op):
            Create VCOND_MASK_LEN when length masking.
            * gimple-match.h (gimple_match_op::gimple_match_op): Always
            initialize len and bias.
            * internal-fn.cc (vec_cond_mask_len_direct): Add.
            (direct_vec_cond_mask_len_optab_supported_p): Add.
            (internal_fn_len_index): Add VCOND_MASK_LEN.
            (internal_fn_mask_index): Ditto.
            * internal-fn.def (VCOND_MASK_LEN): New internal function.
            * match.pd: Combine unconditional unary, binary and ternary
            operations into the respective COND_LEN operations.
            * optabs.def (OPTAB_D): Add vcond_mask_len optab.

    gcc/testsuite/ChangeLog:

            * gcc.dg/vect/vect-cond-arith-2.c: No vect cost model for
            riscv_v.
  • [Bug tree-optimization/111760] ... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to