aarch64: Add support for unpacked SVE MLS and MSB
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 13 Jan 2021 13:00:13 +0000 (13:00 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 13 Jan 2021 13:00:13 +0000 (13:00 +0000)
commit264a1269b44ccd4e5c37307d49461dd4ff52457c
treedbc8c12ea6d6474c7bc7b8caf62a11b5ff658145
parentcf7a335306153a5b01f3e1d081456ea4c32baefc
aarch64: Add support for unpacked SVE MLS and MSB

This patch extends the MLS/MSB patterns to support unpacked
integer vectors.  The type suffix could be either the element
size or the container size, but using the element size should
be more efficient.

gcc/
* config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
to SVE_I.
(@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
(*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.

gcc/testsuite/
* gcc.target/aarch64/sve/mls_2.c: New test.
* g++.target/aarch64/sve/cond_mls_1.C: Likewise.
* g++.target/aarch64/sve/cond_mls_2.C: Likewise.
* g++.target/aarch64/sve/cond_mls_3.C: Likewise.
* g++.target/aarch64/sve/cond_mls_4.C: Likewise.
* g++.target/aarch64/sve/cond_mls_5.C: Likewise.
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/g++.target/aarch64/sve/cond_mls_1.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/cond_mls_2.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/cond_mls_3.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/cond_mls_4.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/cond_mls_5.C [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/mls_2.c [new file with mode: 0644]