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

--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Richard Sandiford
<rsand...@gcc.gnu.org>:

https://gcc.gnu.org/g:4bb1ae3c13ce4fb72129229de66f5ffbcd45fe4c

commit r13-7827-g4bb1ae3c13ce4fb72129229de66f5ffbcd45fe4c
Author: Richard Sandiford <richard.sandif...@arm.com>
Date:   Wed Sep 20 11:07:50 2023 +0100

    aarch64: Fix loose ldpstp check [PR111411]

    aarch64_operands_ok_for_ldpstp contained the code:

      /* One of the memory accesses must be a mempair operand.
         If it is not the first one, they need to be swapped by the
         peephole.  */
      if (!aarch64_mem_pair_operand (mem_1, GET_MODE (mem_1))
           && !aarch64_mem_pair_operand (mem_2, GET_MODE (mem_2)))
        return false;

    But the requirement isn't just that one of the accesses must be a
    valid mempair operand.  It's that the lower access must be, since
    that's the access that will be used for the instruction operand.

    gcc/
            PR target/111411
            * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
Require
            the lower memory access to a mem-pair operand.

    gcc/testsuite/
            PR target/111411
            * gcc.dg/rtl/aarch64/pr111411.c: New test.

    (cherry picked from commit 2d38f45bcca62ca0c7afef4b579f82c5c2a01610)

Reply via email to