aarch64: Add support for unpacked SVE MLA and MAD
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 13 Jan 2021 13:00:12 +0000 (13:00 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 13 Jan 2021 13:00:12 +0000 (13:00 +0000)
commitcf7a335306153a5b01f3e1d081456ea4c32baefc
treedafeceb9f44947bf039500cb3e15897cc985ed57
parent3ddc18251a821fe69d6229abbf83d77284d2340a
aarch64: Add support for unpacked SVE MLA and MAD

This patch extends the MLA/MAD 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 (fma<mode>4): Extend from SVE_FULL_I
to SVE_I.
(@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
(*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.

gcc/testsuite/
* gcc.target/aarch64/sve/mla_2.c: New test.
* g++.target/aarch64/sve/cond_mla_1.C: Likewise.
* g++.target/aarch64/sve/cond_mla_2.C: Likewise.
* g++.target/aarch64/sve/cond_mla_3.C: Likewise.
* g++.target/aarch64/sve/cond_mla_4.C: Likewise.
* g++.target/aarch64/sve/cond_mla_5.C: Likewise.
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/g++.target/aarch64/sve/cond_mla_1.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/cond_mla_2.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/cond_mla_3.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/cond_mla_4.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/sve/cond_mla_5.C [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/mla_2.c [new file with mode: 0644]