diff options
author | David S. Miller <davem@davemloft.net> | 2011-09-30 07:54:07 +0000 |
---|---|---|
committer | David S. Miller <davem@gcc.gnu.org> | 2011-09-30 00:54:07 -0700 |
commit | c4728c6b20436826e469927a76fa12b89f7cf11e (patch) | |
tree | ef2752591fdb528a5b9df11ad312ebf11a2712dd /gcc/config/sparc/niagara.md | |
parent | 3aaedee02143cb24a313a147f787d4211844a042 (diff) | |
download | gcc-c4728c6b20436826e469927a76fa12b89f7cf11e.zip gcc-c4728c6b20436826e469927a76fa12b89f7cf11e.tar.gz gcc-c4728c6b20436826e469927a76fa12b89f7cf11e.tar.bz2 |
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.
From-SVN: r179376
Diffstat (limited to 'gcc/config/sparc/niagara.md')
-rw-r--r-- | gcc/config/sparc/niagara.md | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/sparc/niagara.md b/gcc/config/sparc/niagara.md index a75088b..c7a2245 100644 --- a/gcc/config/sparc/niagara.md +++ b/gcc/config/sparc/niagara.md @@ -114,5 +114,5 @@ */ (define_insn_reservation "niag_vis" 8 (and (eq_attr "cpu" "niagara") - (eq_attr "type" "fga,fgm_pack,fgm_mul,fgm_cmp,fgm_pdist,edge,gsr,array")) + (eq_attr "type" "fga,fgm_pack,fgm_mul,fgm_cmp,fgm_pdist,edge,edgen,gsr,array")) "niag_pipe*8") |