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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Uros Bizjak <u...@gcc.gnu.org>:

https://gcc.gnu.org/g:678e6c328c77db383431751bcfcf867b02369bd6

commit r14-4928-g678e6c328c77db383431751bcfcf867b02369bd6
Author: Uros Bizjak <ubiz...@gmail.com>
Date:   Wed Oct 25 16:26:57 2023 +0200

    i386: Narrow test instructions with immediate operands [PR111698]

    Narrow test instructions with immediate operand that test memory location
    for zero.  E.g. testl $0x00aa0000, mem can be converted to testb $0xaa,
mem+2.
    Reject targets where reading (possibly unaligned) part of memory location
    after a large write to the same address causes store-to-load forwarding
stall.

            PR target/111698

    gcc/ChangeLog:

            * config/i386/x86-tune.def (X86_TUNE_PARTIAL_MEMORY_READ_STALL):
            New tune.
            * config/i386/i386.h (TARGET_PARTIAL_MEMORY_READ_STALL): New macro.
            * config/i386/i386.md: New peephole pattern to narrow test
            instructions with immediate operands that test memory locations
            for zero.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr111698.c: New test.

Reply via email to