[AArch64] Improve arm_neon.h vml<as>_lane handling.
commit5b44c42017772124259cfeefe88dcc7f1c72b620
authorjgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Sep 2013 09:53:11 +0000 (16 09:53 +0000)
committerjgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Sep 2013 09:53:11 +0000 (16 09:53 +0000)
tree8fa3db5b4d674a6afa031fe0d47a15cbe1e15109
parent5839dcd41ae3384fa4ae42c4f4f58443c645ce40
[AArch64] Improve arm_neon.h vml<as>_lane handling.

gcc/
* config/aarch64/aarch64-simd-builtins.def (fma): New.
* config/aarch64/aarch64-simd.md
(aarch64_mla_elt<mode>): New.
(aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
(aarch64_mls_elt<mode>): Likewise.
(aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
(aarch64_fma4_elt<mode>): Likewise.
(aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
(aarch64_fma4_elt_to_128v2df): Likewise.
(aarch64_fma4_elt_to_64df): Likewise.
(fnma<mode>4): Likewise.
(aarch64_fnma4_elt<mode>): Likewise.
(aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
(aarch64_fnma4_elt_to_128v2df): Likewise.
(aarch64_fnma4_elt_to_64df): Likewise.
* config/aarch64/iterators.md (VDQSF): New.
* config/aarch64/arm_neon.h
(vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
(vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.

gcc/testsuite/
* gcc.target/aarch64/fmla-intrinsic.c: New.
* gcc.target/aarch64/mla-intrinsic.c: Likewise.
* gcc.target/aarch64/fmls-intrinsic.c: Likewise.
* gcc.target/aarch64/mls-intrinsic.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202625 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h
gcc/config/aarch64/iterators.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/fmla_intrinsic_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/fmls_intrinsic_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/mla_intrinsic_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/mls_intrinsic_1.c [new file with mode: 0644]