diff options
author | Jakub Jelinek <jakub@redhat.com> | 2021-03-31 10:46:01 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2021-03-31 10:46:01 +0200 |
commit | c001c194a2f73fb32461b597e91a35f9bbcf4414 (patch) | |
tree | 32ccb59a39fc05d63562af45cac84bf6a888ba4e /gcc/tree-data-ref.c | |
parent | a49a96f681bf13c6e77644d4507e867f00f93fe6 (diff) | |
download | gcc-c001c194a2f73fb32461b597e91a35f9bbcf4414.zip gcc-c001c194a2f73fb32461b597e91a35f9bbcf4414.tar.gz gcc-c001c194a2f73fb32461b597e91a35f9bbcf4414.tar.bz2 |
aarch64: Fix up *add<mode>3_poly_1 [PR99813]
As mentioned in the PR, Uai constraint stands for
aarch64_sve_scalar_inc_dec_immediate
while Uav for
aarch64_sve_addvl_addpl_immediate.
Both *add<mode>3_aarch64 and *add<mode>3_poly_1 patterns use
* return aarch64_output_sve_scalar_inc_dec (operands[2]);
* return aarch64_output_sve_addvl_addpl (operands[2]);
in that order, but the former with Uai,Uav order, while the
latter with Uav,Uai instead. This patch swaps the constraints
so that they match the output.
Co-authored-by: Richard Sandiford <richard.sandiford@arm.com>
2021-03-31 Jakub Jelinek <jakub@redhat.com>
Richard Sandiford <richard.sandiford@arm.com>
PR target/99813
* config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
constraints on operands[2] and similarly 0 and rk constraints
on operands[1] corresponding to that.
* g++.target/aarch64/sve/pr99813.C: New test.
Diffstat (limited to 'gcc/tree-data-ref.c')
0 files changed, 0 insertions, 0 deletions