]> gcc.gnu.org Git - gcc.git/commit
aarch64: Handle overlapping registers in movv8di [PR113550]
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 25 Jan 2024 12:03:18 +0000 (12:03 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 25 Jan 2024 12:03:18 +0000 (12:03 +0000)
commit8eead1148cd0ac086b39a7abccea404041c85cb5
tree580fde4f0f6ff136e42dab6cd98113958b37e674
parentf251bbfec9174169510b2dec14b9bf763e7b77af
aarch64: Handle overlapping registers in movv8di [PR113550]

The LS64 movv8di pattern didn't handle loads that overlapped with
the address register (unless the overlap happened to be in the
last subload).

gcc/
PR target/113550
* config/aarch64/aarch64-simd.md: In the movv8di splitter, check
whether each split instruction is a load that clobbers the source
address.  Emit that instruction last if so.

gcc/testsuite/
PR target/113550
* gcc.target/aarch64/pr113550.c: New test.
gcc/config/aarch64/aarch64-simd.md
gcc/testsuite/gcc.target/aarch64/pr113550.c [new file with mode: 0644]
This page took 0.056841 seconds and 5 git commands to generate.