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

--- Comment #18 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>:

https://gcc.gnu.org/g:a32de58c9e6394e4e6aef0ac95b52d1c774ac8bc

commit r14-3257-ga32de58c9e6394e4e6aef0ac95b52d1c774ac8bc
Author: Andrew Pinski <apin...@marvell.com>
Date:   Fri Aug 11 18:19:01 2023 -0700

    Add support for vector conitional not

    Like the support conditional neg (r12-4470-g20dcda98ed376cb61c74b2c71),
    this just adds conditional not too.
    Also we should be able to turn `(a ? -1 : 0) ^ b` into a conditional
    not.

    OK? Bootstrapped and tested on x86_64-linux-gnu and aarch64-linux-gnu.

    gcc/ChangeLog:

            * internal-fn.def (COND_NOT): New internal function.
            * match.pd (UNCOND_UNARY, COND_UNARY): Add bit_not/not
            to the lists.
            (`vec (a ? -1 : 0) ^ b`): New pattern to convert
            into conditional not.
            * optabs.def (cond_one_cmpl): New optab.
            (cond_len_one_cmpl): Likewise.

    gcc/testsuite/ChangeLog:

            PR target/110986
            * gcc.target/aarch64/sve/cond_unary_9.c: New test.

Reply via email to