summaryrefslogtreecommitdiff
path: root/devdocs/gcc~13/basic-powerpc-built-in-functions-available-on-isa-3_002e1.html
blob: 44aa22828e97ad95da977c45d7d65d22efc85fb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<div class="subsubsection-level-extent" id="Basic-PowerPC-Built-in-Functions-Available-on-ISA-3_002e1"> <div class="nav-panel"> <p> Previous: <a href="basic-powerpc-built-in-functions-available-on-isa-3_002e0" accesskey="p" rel="prev">Basic PowerPC Built-in Functions Available on ISA 3.0</a>, Up: <a href="basic-powerpc-built-in-functions" accesskey="u" rel="up">Basic PowerPC 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="Basic-PowerPC-Built-in-Functions-Available-on-ISA-3_002e1-1"><span>6.60.22.6 Basic PowerPC Built-in Functions Available on ISA 3.1<a class="copiable-link" href="#Basic-PowerPC-Built-in-Functions-Available-on-ISA-3_002e1-1"> ¶</a></span></h1> <p>The basic built-in functions described in this section are available on the PowerPC family of processors starting with ISA 3.1. Unless specific options are explicitly disabled on the command line, specifying option <samp class="option">-mcpu=power10</samp> has the effect of enabling all the same options as for <samp class="option">-mcpu=power9</samp>. </p> <p>The following built-in functions are available on Linux 64-bit systems that use a future architecture instruction set (<samp class="option">-mcpu=power10</samp>): </p> <dl class="first-deftypefn"> <dt class="deftypefn" id="index-_005f_005fbuiltin_005fcfuged">
<span class="category-def">Built-in Function: </span><span><code class="def-type">unsigned long long</code> <strong class="def-name">__builtin_cfuged</strong> <code class="def-code-arguments">(unsigned long long, unsigned long long)</code><a class="copiable-link" href="#index-_005f_005fbuiltin_005fcfuged"> ¶</a></span>
</dt> <dd><p>Perform a 64-bit centrifuge operation, as if implemented by the <code class="code">cfuged</code> instruction. </p></dd>
</dl> <dl class="first-deftypefn"> <dt class="deftypefn" id="index-_005f_005fbuiltin_005fcntlzdm">
<span class="category-def">Built-in Function: </span><span><code class="def-type">unsigned long long</code> <strong class="def-name">__builtin_cntlzdm</strong> <code class="def-code-arguments">(unsigned long long, unsigned long long)</code><a class="copiable-link" href="#index-_005f_005fbuiltin_005fcntlzdm"> ¶</a></span>
</dt> <dd><p>Perform a 64-bit count leading zeros operation under mask, as if implemented by the <code class="code">cntlzdm</code> instruction. </p></dd>
</dl> <dl class="first-deftypefn"> <dt class="deftypefn" id="index-_005f_005fbuiltin_005fcnttzdm">
<span class="category-def">Built-in Function: </span><span><code class="def-type">unsigned long long</code> <strong class="def-name">__builtin_cnttzdm</strong> <code class="def-code-arguments">(unsigned long long, unsigned long long)</code><a class="copiable-link" href="#index-_005f_005fbuiltin_005fcnttzdm"> ¶</a></span>
</dt> <dd><p>Perform a 64-bit count trailing zeros operation under mask, as if implemented by the <code class="code">cnttzdm</code> instruction. </p></dd>
</dl> <dl class="first-deftypefn"> <dt class="deftypefn" id="index-_005f_005fbuiltin_005fpdepd">
<span class="category-def">Built-in Function: </span><span><code class="def-type">unsigned long long</code> <strong class="def-name">__builtin_pdepd</strong> <code class="def-code-arguments">(unsigned long long, unsigned long long)</code><a class="copiable-link" href="#index-_005f_005fbuiltin_005fpdepd"> ¶</a></span>
</dt> <dd><p>Perform a 64-bit parallel bits deposit operation, as if implemented by the <code class="code">pdepd</code> instruction. </p></dd>
</dl> <dl class="first-deftypefn"> <dt class="deftypefn" id="index-_005f_005fbuiltin_005fpextd">
<span class="category-def">Built-in Function: </span><span><code class="def-type">unsigned long long</code> <strong class="def-name">__builtin_pextd</strong> <code class="def-code-arguments">(unsigned long long, unsigned long long)</code><a class="copiable-link" href="#index-_005f_005fbuiltin_005fpextd"> ¶</a></span>
</dt> <dd><p>Perform a 64-bit parallel bits extract operation, as if implemented by the <code class="code">pextd</code> instruction. </p></dd>
</dl> <dl class="first-deftypefn"> <dt class="deftypefn" id="index-vsx_005fxl_005fsext">
<span class="category-def">Built-in Function: </span><span><code class="def-type">vector signed __int128</code> <strong class="def-name">vsx_xl_sext</strong> <code class="def-code-arguments">(signed long long, signed char *)</code><a class="copiable-link" href="#index-vsx_005fxl_005fsext"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vsx_005fxl_005fsext-1">
<span class="category-def">Built-in Function: </span><span><code class="def-type">vector signed __int128</code> <strong class="def-name">vsx_xl_sext</strong> <code class="def-code-arguments">(signed long long, signed short *)</code><a class="copiable-link" href="#index-vsx_005fxl_005fsext-1"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vsx_005fxl_005fsext-2">
<span class="category-def">Built-in Function: </span><span><code class="def-type">vector signed __int128</code> <strong class="def-name">vsx_xl_sext</strong> <code class="def-code-arguments">(signed long long, signed int *)</code><a class="copiable-link" href="#index-vsx_005fxl_005fsext-2"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vsx_005fxl_005fsext-3">
<span class="category-def">Built-in Function: </span><span><code class="def-type">vector signed __int128</code> <strong class="def-name">vsx_xl_sext</strong> <code class="def-code-arguments">(signed long long, signed long long *)</code><a class="copiable-link" href="#index-vsx_005fxl_005fsext-3"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vsx_005fxl_005fzext">
<span class="category-def">Built-in Function: </span><span><code class="def-type">vector unsigned __int128</code> <strong class="def-name">vsx_xl_zext</strong> <code class="def-code-arguments">(signed long long, unsigned char *)</code><a class="copiable-link" href="#index-vsx_005fxl_005fzext"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vsx_005fxl_005fzext-1">
<span class="category-def">Built-in Function: </span><span><code class="def-type">vector unsigned __int128</code> <strong class="def-name">vsx_xl_zext</strong> <code class="def-code-arguments">(signed long long, unsigned short *)</code><a class="copiable-link" href="#index-vsx_005fxl_005fzext-1"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vsx_005fxl_005fzext-2">
<span class="category-def">Built-in Function: </span><span><code class="def-type">vector unsigned __int128</code> <strong class="def-name">vsx_xl_zext</strong> <code class="def-code-arguments">(signed long long, unsigned int *)</code><a class="copiable-link" href="#index-vsx_005fxl_005fzext-2"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vsx_005fxl_005fzext-3">
<span class="category-def">Built-in Function: </span><span><code class="def-type">vector unsigned __int128</code> <strong class="def-name">vsx_xl_zext</strong> <code class="def-code-arguments">(signed long long, unsigned long long *)</code><a class="copiable-link" href="#index-vsx_005fxl_005fzext-3"> ¶</a></span>
</dt> <dd> <p>Load (and sign extend) to an __int128 vector, as if implemented by the ISA 3.1 <code class="code">lxvrbx</code>, <code class="code">lxvrhx</code>, <code class="code">lxvrwx</code>, and <code class="code">lxvrdx</code> instructions. </p>
</dd>
</dl> <dl class="first-deftypefn"> <dt class="deftypefn" id="index-vec_005fxst_005ftrunc">
<span class="category-def">Built-in Function: </span><span><code class="def-type">void</code> <strong class="def-name">vec_xst_trunc</strong> <code class="def-code-arguments">(vector signed __int128, signed long long, signed char *)</code><a class="copiable-link" href="#index-vec_005fxst_005ftrunc"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vec_005fxst_005ftrunc-1">
<span class="category-def">Built-in Function: </span><span><code class="def-type">void</code> <strong class="def-name">vec_xst_trunc</strong> <code class="def-code-arguments">(vector signed __int128, signed long long, signed short *)</code><a class="copiable-link" href="#index-vec_005fxst_005ftrunc-1"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vec_005fxst_005ftrunc-2">
<span class="category-def">Built-in Function: </span><span><code class="def-type">void</code> <strong class="def-name">vec_xst_trunc</strong> <code class="def-code-arguments">(vector signed __int128, signed long long, signed int *)</code><a class="copiable-link" href="#index-vec_005fxst_005ftrunc-2"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vec_005fxst_005ftrunc-3">
<span class="category-def">Built-in Function: </span><span><code class="def-type">void</code> <strong class="def-name">vec_xst_trunc</strong> <code class="def-code-arguments">(vector signed __int128, signed long long, signed long long *)</code><a class="copiable-link" href="#index-vec_005fxst_005ftrunc-3"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vec_005fxst_005ftrunc-4">
<span class="category-def">Built-in Function: </span><span><code class="def-type">void</code> <strong class="def-name">vec_xst_trunc</strong> <code class="def-code-arguments">(vector unsigned __int128, signed long long, unsigned char *)</code><a class="copiable-link" href="#index-vec_005fxst_005ftrunc-4"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vec_005fxst_005ftrunc-5">
<span class="category-def">Built-in Function: </span><span><code class="def-type">void</code> <strong class="def-name">vec_xst_trunc</strong> <code class="def-code-arguments">(vector unsigned __int128, signed long long, unsigned short *)</code><a class="copiable-link" href="#index-vec_005fxst_005ftrunc-5"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vec_005fxst_005ftrunc-6">
<span class="category-def">Built-in Function: </span><span><code class="def-type">void</code> <strong class="def-name">vec_xst_trunc</strong> <code class="def-code-arguments">(vector unsigned __int128, signed long long, unsigned int *)</code><a class="copiable-link" href="#index-vec_005fxst_005ftrunc-6"> ¶</a></span>
</dt> <dt class="deftypefnx def-cmd-deftypefn" id="index-vec_005fxst_005ftrunc-7">
<span class="category-def">Built-in Function: </span><span><code class="def-type">void</code> <strong class="def-name">vec_xst_trunc</strong> <code class="def-code-arguments">(vector unsigned __int128, signed long long, unsigned long long *)</code><a class="copiable-link" href="#index-vec_005fxst_005ftrunc-7"> ¶</a></span>
</dt> <dd> <p>Truncate and store the rightmost element of a vector, as if implemented by the ISA 3.1 <code class="code">stxvrbx</code>, <code class="code">stxvrhx</code>, <code class="code">stxvrwx</code>, and <code class="code">stxvrdx</code> instructions. </p>
</dd>
</dl> </div>  <div class="nav-panel"> <p> Previous: <a href="basic-powerpc-built-in-functions-available-on-isa-3_002e0">Basic PowerPC Built-in Functions Available on ISA 3.0</a>, Up: <a href="basic-powerpc-built-in-functions">Basic PowerPC 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/Basic-PowerPC-Built-in-Functions-Available-on-ISA-3_002e1.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Basic-PowerPC-Built-in-Functions-Available-on-ISA-3_002e1.html</a>
  </p>
</div>