]> gcc.gnu.org Git - gcc.git/commit
aarch64: Fix loose ldpstp check [PR111411]
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 20 Sep 2023 10:13:20 +0000 (11:13 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 20 Sep 2023 10:13:20 +0000 (11:13 +0100)
commit74f99f1adc696f446115f36974a3f94f66294a53
tree4af2bb3504c993e6c0543b0bd74e4c77feb7afb4
parent38d0605ac8bc90324170041676fc05e7e595769e
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)
gcc/config/aarch64/aarch64.cc
gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c [new file with mode: 0644]
This page took 0.069441 seconds and 6 git commands to generate.