Add support for more sparc VIS 3.0 instructions.
authorDavid S. Miller <davem@davemloft.net>
Wed, 5 Oct 2011 03:25:58 +0000 (03:25 +0000)
committerDavid S. Miller <davem@gcc.gnu.org>
Wed, 5 Oct 2011 03:25:58 +0000 (20:25 -0700)
commitfacb3fd7396177cc3848b478b9eb519a35880d17
treef56c0b3f86df653060f61867af4fe2356e877df6
parent9a83cdf714fd303af875ee549ad01f75ce32920d
Add support for more sparc VIS 3.0 instructions.

gcc/

* config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
UNSPEC_XMUL): New unspecs.
(muldi3_v8plus): Use output_v8plus_mult.
(*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
New VIS 3.0 combiner patterns.
(fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
builtins patterns.
* config/sparc/sparc.c (sparc_vis_init_builtins): Emit new
builtins.
(output_v8plus_mult): New function.
* config/sparc/sparc-protos.h: Declare it.
* config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
__vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
__vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
* doc/extend.texi: Document new builtins.

gcc/testsuite/

* gcc.target/sparc/fhalve.c: New test.
* gcc.target/sparc/fnegop.c: New test.
* gcc.target/sparc/xmul.c: New test.

From-SVN: r179535
gcc/ChangeLog
gcc/config/sparc/sparc-protos.h
gcc/config/sparc/sparc.c
gcc/config/sparc/sparc.md
gcc/config/sparc/visintrin.h
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sparc/fhalve.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sparc/fnegop.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sparc/xmul.c [new file with mode: 0644]