r179376 - in /trunk/gcc: ChangeLog config/sparc...

davem@gcc.gnu.org davem@gcc.gnu.org
Fri Sep 30 07:54:00 GMT 2011


Author: davem
Date: Fri Sep 30 07:54:07 2011
New Revision: 179376

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=179376
Log:
Add sparc VIS 2.0 builtins, intrinsics, and option to control them.

gcc/

	* config/sparc/sparc.opt (VIS2): New option.
	* doc/invoke.texi: Document it.
	* config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
	UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
	UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
	(define_attr type): New insn type 'edgen'.
	(bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
	edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
	edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
	patterns.
	* niagara.md: Handle edgen.
	* niagara2.md: Likewise.
	* ultra1_2.md: Likewise.
	* ultra3.md: Likewise.
	* config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
	to 0x200 when TARGET_VIS2.
	* config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
	default when targetting capable cpus.  TARGET_VIS2 implies
	TARGET_VIS, clear and it when TARGET_FPU is disabled.
	(sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
	(sparc_expand_builtin): Fix predicate indexing when builtin returns
	void.
	(sparc_fold_builtin): Do not eliminate bmask when result is ignored.
	* config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
	__vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
	__vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
	__vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
	* doc/extend.texi: Document new VIS 2.0 builtins.

gcc/testsuite/

	* gcc.target/sparc/bmaskbshuf.c: New test.
	* gcc.target/sparc/edgen.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/sparc/bmaskbshuf.c
    trunk/gcc/testsuite/gcc.target/sparc/edgen.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sparc/niagara.md
    trunk/gcc/config/sparc/niagara2.md
    trunk/gcc/config/sparc/sparc-c.c
    trunk/gcc/config/sparc/sparc.c
    trunk/gcc/config/sparc/sparc.md
    trunk/gcc/config/sparc/sparc.opt
    trunk/gcc/config/sparc/ultra1_2.md
    trunk/gcc/config/sparc/ultra3.md
    trunk/gcc/config/sparc/visintrin.h
    trunk/gcc/doc/extend.texi
    trunk/gcc/doc/invoke.texi
    trunk/gcc/testsuite/ChangeLog



More information about the Gcc-cvs mailing list