summaryrefslogtreecommitdiff
path: root/devdocs/gcc~13/paired-single-built-in-functions.html
diff options
context:
space:
mode:
Diffstat (limited to 'devdocs/gcc~13/paired-single-built-in-functions.html')
-rw-r--r--devdocs/gcc~13/paired-single-built-in-functions.html31
1 files changed, 31 insertions, 0 deletions
diff --git a/devdocs/gcc~13/paired-single-built-in-functions.html b/devdocs/gcc~13/paired-single-built-in-functions.html
new file mode 100644
index 00000000..6de9bf6d
--- /dev/null
+++ b/devdocs/gcc~13/paired-single-built-in-functions.html
@@ -0,0 +1,31 @@
+<div class="subsubsection-level-extent" id="Paired-Single-Built-in-Functions"> <div class="nav-panel"> <p> Next: <a href="mips-3d-built-in-functions" accesskey="n" rel="next">MIPS-3D Built-in Functions</a>, Previous: <a href="paired-single-arithmetic" accesskey="p" rel="prev">Paired-Single Arithmetic</a>, Up: <a href="mips-loongson-built-in-functions" accesskey="u" rel="up">MIPS Loongson Built-in Functions</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div> <h1 class="subsubsection" id="Paired-Single-Built-in-Functions-1"><span>6.60.17.2 Paired-Single Built-in Functions<a class="copiable-link" href="#Paired-Single-Built-in-Functions-1"> ΒΆ</a></span></h1> <p>The following paired-single functions map directly to a particular MIPS instruction. Please refer to the architecture specification for details on what each instruction does. </p> <dl class="table"> <dt><code class="code">v2sf __builtin_mips_pll_ps (v2sf, v2sf)</code></dt> <dd>
+<p>Pair lower lower (<code class="code">pll.ps</code>). </p> </dd> <dt><code class="code">v2sf __builtin_mips_pul_ps (v2sf, v2sf)</code></dt> <dd>
+<p>Pair upper lower (<code class="code">pul.ps</code>). </p> </dd> <dt><code class="code">v2sf __builtin_mips_plu_ps (v2sf, v2sf)</code></dt> <dd>
+<p>Pair lower upper (<code class="code">plu.ps</code>). </p> </dd> <dt><code class="code">v2sf __builtin_mips_puu_ps (v2sf, v2sf)</code></dt> <dd>
+<p>Pair upper upper (<code class="code">puu.ps</code>). </p> </dd> <dt><code class="code">v2sf __builtin_mips_cvt_ps_s (float, float)</code></dt> <dd>
+<p>Convert pair to paired single (<code class="code">cvt.ps.s</code>). </p> </dd> <dt><code class="code">float __builtin_mips_cvt_s_pl (v2sf)</code></dt> <dd>
+<p>Convert pair lower to single (<code class="code">cvt.s.pl</code>). </p> </dd> <dt><code class="code">float __builtin_mips_cvt_s_pu (v2sf)</code></dt> <dd>
+<p>Convert pair upper to single (<code class="code">cvt.s.pu</code>). </p> </dd> <dt><code class="code">v2sf __builtin_mips_abs_ps (v2sf)</code></dt> <dd>
+<p>Absolute value (<code class="code">abs.ps</code>). </p> </dd> <dt><code class="code">v2sf __builtin_mips_alnv_ps (v2sf, v2sf, int)</code></dt> <dd>
+<p>Align variable (<code class="code">alnv.ps</code>). </p> <p><em class="emph">Note:</em> The value of the third parameter must be 0 or 4 modulo 8, otherwise the result is unpredictable. Please read the instruction description for details. </p>
+</dd> </dl> <p>The following multi-instruction functions are also available. In each case, <var class="var">cond</var> can be any of the 16 floating-point conditions: <code class="code">f</code>, <code class="code">un</code>, <code class="code">eq</code>, <code class="code">ueq</code>, <code class="code">olt</code>, <code class="code">ult</code>, <code class="code">ole</code>, <code class="code">ule</code>, <code class="code">sf</code>, <code class="code">ngle</code>, <code class="code">seq</code>, <code class="code">ngl</code>, <code class="code">lt</code>, <code class="code">nge</code>, <code class="code">le</code> or <code class="code">ngt</code>. </p> <dl class="table"> <dt><code class="code">v2sf __builtin_mips_movt_c_<var class="var">cond</var>_ps (v2sf <var class="var">a</var>, v2sf <var class="var">b</var>, v2sf <var class="var">c</var>, v2sf <var class="var">d</var>)</code></dt> <dt><code class="code">v2sf __builtin_mips_movf_c_<var class="var">cond</var>_ps (v2sf <var class="var">a</var>, v2sf <var class="var">b</var>, v2sf <var class="var">c</var>, v2sf <var class="var">d</var>)</code></dt> <dd>
+<p>Conditional move based on floating-point comparison (<code class="code">c.<var class="var">cond</var>.ps</code>, <code class="code">movt.ps</code>/<code class="code">movf.ps</code>). </p> <p>The <code class="code">movt</code> functions return the value <var class="var">x</var> computed by: </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">c.<var class="var">cond</var>.ps <var class="var">cc</var>,<var class="var">a</var>,<var class="var">b</var>
+mov.ps <var class="var">x</var>,<var class="var">c</var>
+movt.ps <var class="var">x</var>,<var class="var">d</var>,<var class="var">cc</var></pre>
+</div> <p>The <code class="code">movf</code> functions are similar but use <code class="code">movf.ps</code> instead of <code class="code">movt.ps</code>. </p> </dd> <dt><code class="code">int __builtin_mips_upper_c_<var class="var">cond</var>_ps (v2sf <var class="var">a</var>, v2sf <var class="var">b</var>)</code></dt> <dt><code class="code">int __builtin_mips_lower_c_<var class="var">cond</var>_ps (v2sf <var class="var">a</var>, v2sf <var class="var">b</var>)</code></dt> <dd>
+<p>Comparison of two paired-single values (<code class="code">c.<var class="var">cond</var>.ps</code>, <code class="code">bc1t</code>/<code class="code">bc1f</code>). </p> <p>These functions compare <var class="var">a</var> and <var class="var">b</var> using <code class="code">c.<var class="var">cond</var>.ps</code> and return either the upper or lower half of the result. For example: </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">v2sf a, b;
+if (__builtin_mips_upper_c_eq_ps (a, b))
+ upper_halves_are_equal ();
+else
+ upper_halves_are_unequal ();
+
+if (__builtin_mips_lower_c_eq_ps (a, b))
+ lower_halves_are_equal ();
+else
+ lower_halves_are_unequal ();</pre>
+</div> </dd> </dl> </div> <div class="nav-panel"> <p> Next: <a href="mips-3d-built-in-functions">MIPS-3D Built-in Functions</a>, Previous: <a href="paired-single-arithmetic">Paired-Single Arithmetic</a>, Up: <a href="mips-loongson-built-in-functions">MIPS Loongson Built-in Functions</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div><div class="_attribution">
+ <p class="_attribution-p">
+ &copy; Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br>
+ <a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Paired-Single-Built-in-Functions.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Paired-Single-Built-in-Functions.html</a>
+ </p>
+</div>