[AArch64] Use SVE MOV /M of scalars
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 14 Aug 2019 09:22:23 +0000 (09:22 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 14 Aug 2019 09:22:23 +0000 (09:22 +0000)
commit88a37c4d72899c5a3f5a7b2bca0ae0096f3270a3
tree3ad3a1bc49ce7519cdbd9915c37e5abc003a3bc4
parentd29f7dd50de9e8e46f7e247c53f3b0405a3dadd9
[AArch64] Use SVE MOV /M of scalars

This patch uses MOV /M to optimise selects between a duplicated
scalar variable and a vector.

2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
    Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>

gcc/
* config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.

gcc/testsuite/
* g++.target/aarch64/sve/dup_sel_1.C: New test.
* g++.target/aarch64/sve/dup_sel_2.C: Likewise.
* g++.target/aarch64/sve/dup_sel_3.C: Likewise.
* g++.target/aarch64/sve/dup_sel_4.C: Likewise.
* g++.target/aarch64/sve/dup_sel_5.C: Likewise.
* g++.target/aarch64/sve/dup_sel_6.C: Likewise.

Co-Authored-By: Kugan Vivekanandarajah <kuganv@linaro.org>
From-SVN: r274442
gcc/ChangeLog
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/ChangeLog
gcc/testsuite/g++.target/aarch64/sve/dup_sel_1.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/dup_sel_2.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/dup_sel_3.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/dup_sel_4.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/dup_sel_5.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/dup_sel_6.C [new file with mode: 0644]