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

--- Comment #12 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>:

https://gcc.gnu.org/g:2ccdd0f22312a14ac64bf944fdc4f8e7532eb0eb

commit r15-1741-g2ccdd0f22312a14ac64bf944fdc4f8e7532eb0eb
Author: liuhongt <hongtao....@intel.com>
Date:   Thu Jun 20 12:41:13 2024 +0800

    Optimize a < 0 ? -1 : 0 to (signed)a >> 31.

    Try to optimize x < 0 ? -1 : 0 into (signed) x >> 31
    and x < 0 ? 1 : 0 into (unsigned) x >> 31.

    Add define_insn_and_split for the optimization did in
    ix86_expand_int_vcond.

    gcc/ChangeLog:

            PR target/115517
            * config/i386/sse.md ("*ashr<mode>3_1"): New
            define_insn_and_split.
            (*avx512_ashr<mode>3_1): Ditto.
            (*avx2_lshr<mode>3_1): Ditto.
            (*avx2_lshr<mode>3_2): Ditto and add 2 combine splitter after
            it.
            * config/i386/mmx.md (mmxscalarsize): New mode attribute.
            (*mmw_ashr<mode>3_1): New define_insn_and_split.
            ("mmx_<insn><mode>3): Add a combine spiltter after it.
            (*mmx_ashrv2hi3_1): New define_insn_and_plit, also add a
            combine splitter after it.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr111023-2.c: Adjust testcase.
            * gcc.target/i386/vect-div-1.c: Ditto.

Reply via email to