]> git.ipfire.org Git - thirdparty/gcc.git/commit
aarch64: Fix up aarch64_simd_stp<mode> [PR109977]
authorJakub Jelinek <jakub@redhat.com>
Sat, 25 Nov 2023 09:30:39 +0000 (10:30 +0100)
committerJakub Jelinek <jakub@redhat.com>
Sat, 25 Nov 2023 09:30:39 +0000 (10:30 +0100)
commita6a43a3b763816fec7c4eec6ae7be5b263dff340
tree723d8175512f9228fa3d78071ce705f51a2f6bdc
parent1f70291b93a07178bb645273cdd80c404d77ba2f
aarch64: Fix up aarch64_simd_stp<mode> [PR109977]

The aarch64_simd_stp<mode> pattern uses w constraint in one alternative and
r in another, but for the latter incorrectly uses <vw> iterator in %<vw>1 which
expands to %d1 for V2DF and %s1 for V2SF and V4SF (this one not relevant to
the pattern) and %w1 for others, so it ICEs if the alternative is selected
during final.  Compared to this, <vwcore> macro has the same values for all
modes but uses w for V2DF and V2SF.

2023-11-24  Andrew Pinski  <pinskia@gmail.com>
    Jakub Jelinek  <jakub@redhat.com>

PR target/109977
* config/aarch64/aarch64-simd.md (aarch64_simd_stp<mode>): Use <vwcore>
rather than %<vw> for alternative with r constraint on input operand.

* gcc.dg/pr109977.c: New test.
gcc/config/aarch64/aarch64-simd.md
gcc/testsuite/gcc.dg/pr109977.c [new file with mode: 0644]