• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/share/doc/arm-arm-none-eabi/html/gcc/
1<html lang="en">
2<head>
3<title>Paired-Single Built-in Functions - Using the GNU Compiler Collection (GCC)</title>
4<meta http-equiv="Content-Type" content="text/html">
5<meta name="description" content="Using the GNU Compiler Collection (GCC)">
6<meta name="generator" content="makeinfo 4.13">
7<link title="Top" rel="start" href="index.html#Top">
8<link rel="up" href="MIPS-Loongson-Built_002din-Functions.html#MIPS-Loongson-Built_002din-Functions" title="MIPS Loongson Built-in Functions">
9<link rel="prev" href="Paired_002dSingle-Arithmetic.html#Paired_002dSingle-Arithmetic" title="Paired-Single Arithmetic">
10<link rel="next" href="MIPS_002d3D-Built_002din-Functions.html#MIPS_002d3D-Built_002din-Functions" title="MIPS-3D Built-in Functions">
11<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
12<!--
13Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
141998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
152010 Free Software Foundation, Inc.
16
17Permission is granted to copy, distribute and/or modify this document
18under the terms of the GNU Free Documentation License, Version 1.3 or
19any later version published by the Free Software Foundation; with the
20Invariant Sections being ``Funding Free Software'', the Front-Cover
21Texts being (a) (see below), and with the Back-Cover Texts being (b)
22(see below).  A copy of the license is included in the section entitled
23``GNU Free Documentation License''.
24
25(a) The FSF's Front-Cover Text is:
26
27     A GNU Manual
28
29(b) The FSF's Back-Cover Text is:
30
31     You have freedom to copy and modify this GNU Manual, like GNU
32     software.  Copies published by the Free Software Foundation raise
33     funds for GNU development.-->
34<meta http-equiv="Content-Style-Type" content="text/css">
35<style type="text/css"><!--
36  pre.display { font-family:inherit }
37  pre.format  { font-family:inherit }
38  pre.smalldisplay { font-family:inherit; font-size:smaller }
39  pre.smallformat  { font-family:inherit; font-size:smaller }
40  pre.smallexample { font-size:smaller }
41  pre.smalllisp    { font-size:smaller }
42  span.sc    { font-variant:small-caps }
43  span.roman { font-family:serif; font-weight:normal; } 
44  span.sansserif { font-family:sans-serif; font-weight:normal; } 
45--></style>
46<link rel="stylesheet" type="text/css" href="../cs.css">
47</head>
48<body>
49<div class="node">
50<a name="Paired-Single-Built-in-Functions"></a>
51<a name="Paired_002dSingle-Built_002din-Functions"></a>
52<p>
53Next:&nbsp;<a rel="next" accesskey="n" href="MIPS_002d3D-Built_002din-Functions.html#MIPS_002d3D-Built_002din-Functions">MIPS-3D Built-in Functions</a>,
54Previous:&nbsp;<a rel="previous" accesskey="p" href="Paired_002dSingle-Arithmetic.html#Paired_002dSingle-Arithmetic">Paired-Single Arithmetic</a>,
55Up:&nbsp;<a rel="up" accesskey="u" href="MIPS-Loongson-Built_002din-Functions.html#MIPS-Loongson-Built_002din-Functions">MIPS Loongson Built-in Functions</a>
56<hr>
57</div>
58
59<h5 class="subsubsection">6.54.9.2 Paired-Single Built-in Functions</h5>
60
61<p>The following paired-single functions map directly to a particular
62MIPS instruction.  Please refer to the architecture specification
63for details on what each instruction does.
64
65     <dl>
66<dt><code>v2sf __builtin_mips_pll_ps (v2sf, v2sf)</code><dd>Pair lower lower (<code>pll.ps</code>).
67
68     <br><dt><code>v2sf __builtin_mips_pul_ps (v2sf, v2sf)</code><dd>Pair upper lower (<code>pul.ps</code>).
69
70     <br><dt><code>v2sf __builtin_mips_plu_ps (v2sf, v2sf)</code><dd>Pair lower upper (<code>plu.ps</code>).
71
72     <br><dt><code>v2sf __builtin_mips_puu_ps (v2sf, v2sf)</code><dd>Pair upper upper (<code>puu.ps</code>).
73
74     <br><dt><code>v2sf __builtin_mips_cvt_ps_s (float, float)</code><dd>Convert pair to paired single (<code>cvt.ps.s</code>).
75
76     <br><dt><code>float __builtin_mips_cvt_s_pl (v2sf)</code><dd>Convert pair lower to single (<code>cvt.s.pl</code>).
77
78     <br><dt><code>float __builtin_mips_cvt_s_pu (v2sf)</code><dd>Convert pair upper to single (<code>cvt.s.pu</code>).
79
80     <br><dt><code>v2sf __builtin_mips_abs_ps (v2sf)</code><dd>Absolute value (<code>abs.ps</code>).
81
82     <br><dt><code>v2sf __builtin_mips_alnv_ps (v2sf, v2sf, int)</code><dd>Align variable (<code>alnv.ps</code>).
83
84     <p><em>Note:</em> The value of the third parameter must be 0 or 4
85modulo 8, otherwise the result will be unpredictable.  Please read the
86instruction description for details. 
87</dl>
88
89 <p>The following multi-instruction functions are also available. 
90In each case, <var>cond</var> can be any of the 16 floating-point conditions:
91<code>f</code>, <code>un</code>, <code>eq</code>, <code>ueq</code>, <code>olt</code>, <code>ult</code>,
92<code>ole</code>, <code>ule</code>, <code>sf</code>, <code>ngle</code>, <code>seq</code>, <code>ngl</code>,
93<code>lt</code>, <code>nge</code>, <code>le</code> or <code>ngt</code>.
94
95     <dl>
96<dt><code>v2sf __builtin_mips_movt_c_</code><var>cond</var><code>_ps (v2sf </code><var>a</var><code>, v2sf </code><var>b</var><code>, v2sf </code><var>c</var><code>, v2sf </code><var>d</var><code>)</code><dt><code>v2sf __builtin_mips_movf_c_</code><var>cond</var><code>_ps (v2sf </code><var>a</var><code>, v2sf </code><var>b</var><code>, v2sf </code><var>c</var><code>, v2sf </code><var>d</var><code>)</code><dd>Conditional move based on floating point comparison (<code>c.</code><var>cond</var><code>.ps</code>,
97<code>movt.ps</code>/<code>movf.ps</code>).
98
99     <p>The <code>movt</code> functions return the value <var>x</var> computed by:
100
101     <pre class="smallexample">          c.<var>cond</var>.ps <var>cc</var>,<var>a</var>,<var>b</var>
102          mov.ps <var>x</var>,<var>c</var>
103          movt.ps <var>x</var>,<var>d</var>,<var>cc</var>
104</pre>
105     <p>The <code>movf</code> functions are similar but use <code>movf.ps</code> instead
106of <code>movt.ps</code>.
107
108     <br><dt><code>int __builtin_mips_upper_c_</code><var>cond</var><code>_ps (v2sf </code><var>a</var><code>, v2sf </code><var>b</var><code>)</code><dt><code>int __builtin_mips_lower_c_</code><var>cond</var><code>_ps (v2sf </code><var>a</var><code>, v2sf </code><var>b</var><code>)</code><dd>Comparison of two paired-single values (<code>c.</code><var>cond</var><code>.ps</code>,
109<code>bc1t</code>/<code>bc1f</code>).
110
111     <p>These functions compare <var>a</var> and <var>b</var> using <code>c.</code><var>cond</var><code>.ps</code>
112and return either the upper or lower half of the result.  For example:
113
114     <pre class="smallexample">          v2sf a, b;
115          if (__builtin_mips_upper_c_eq_ps (a, b))
116            upper_halves_are_equal ();
117          else
118            upper_halves_are_unequal ();
119          
120          if (__builtin_mips_lower_c_eq_ps (a, b))
121            lower_halves_are_equal ();
122          else
123            lower_halves_are_unequal ();
124</pre>
125     </dl>
126
127 </body></html>
128
129