[Bug target/101989] Fail to optimize (a & b) | (c & ~b) to vpternlog instruction.

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Nov 4 08:10:13 GMT 2021


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

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

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

commit r12-4882-gbc9c8e5f8af08c513a4a4c329c50ba6559ff6d5c
Author: liuhongt <hongtao.liu@intel.com>
Date:   Wed Nov 3 16:32:22 2021 +0800

    Extend vternlog define_insn_and_split to memory_operand to enable more
optimziation.

    gcc/ChangeLog:

            PR target/101989
            * config/i386/predicates.md (reg_or_notreg_operand): Rename to ..
            (regmem_or_bitnot_regmem_operand): .. and extend to handle
            memory_operand.
            * config/i386/sse.md (*<avx512>_vpternlog<mode>_1): Force_reg
            the operands which are required to be register_operand.
            (*<avx512>_vpternlog<mode>_2): Ditto.
            (*<avx512>_vpternlog<mode>_3): Ditto.
            (*<avx512>_vternlog<mode>_all): Disallow embeded broadcast for
            vector HFmodes since it's not a real AVX512FP16 instruction.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr101989-3.c: New test.


More information about the Gcc-bugs mailing list