[AArch64] Support vrecp<esx> neon intrinsics in RTL.
commit0050faf8aa1be242fbeda7512c9908638c29f383
authorJames Greenhalgh <james.greenhalgh@arm.com>
Mon, 22 Apr 2013 12:36:52 +0000 (22 12:36 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Mon, 22 Apr 2013 12:36:52 +0000 (22 12:36 +0000)
treed46a3f85bedcd34f88deb9c27706d36a3f386ae0
parentee40cdc0f9f75125839fe7267c1fe7da2b665c42
[AArch64] Support vrecp<esx> neon intrinsics in RTL.

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_simd_builtin_type_mode): Handle SF types.
(sf_UP): Define.
(BUILTIN_GPF): Define.
(aarch64_init_simd_builtins): Handle SF types.
* config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
(frecps): Likewise.
(frecpx): Likewise.
* config/aarch64/aarch64-simd.md
(simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
(aarch64_frecpe<mode>): New.
(aarch64_frecps<mode>): Likewise.
* config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
(v8type): Add frecp<esx>.
(aarch64_frecp<FRECP:frecp_suffix><mode>): New.
(aarch64_frecps<mode>): Likewise.
* config/aarch64/iterators.md (FRECP): New.
(frecp_suffix): Likewise.
* config/aarch64/arm_neon.h
(vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.

gcc/testsuite/
* gcc.target/aarch64/vrecps.c: New.
* gcc.target/aarch64/vrecpx.c: Likewise.

From-SVN: r198136
gcc/ChangeLog
gcc/config/aarch64/aarch64-builtins.c
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.md
gcc/config/aarch64/arm_neon.h
gcc/config/aarch64/iterators.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/vrecps.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/vrecpx.c [new file with mode: 0644]