[aarch64] Fold ldr+dup to ld1rq for little endian targets.
commita3b99b84609af310c72b4d6221621f5b63a3c169
authorPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
Sat, 14 Jan 2023 17:51:55 +0000 (14 23:21 +0530)
committerPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
Sat, 14 Jan 2023 17:54:30 +0000 (14 23:24 +0530)
tree49bdd3dd9dcad1a6b8fff0b20cae0238196df0db
parent9afc914809ca90d03a9a8f53c439ebf4c62cf544
[aarch64] Fold ldr+dup to ld1rq for little endian targets.

gcc/ChangeLog:
* config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
Change to define_insn_and_split to fold ldr+dup to ld1rq.
* config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.

gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve/acle/general/pr96463-2.c: Adjust.
gcc/config/aarch64/aarch64-sve.md
gcc/config/aarch64/predicates.md
gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr96463-2.c