diff options
| author | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
| commit | 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch) | |
| tree | f1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/gcc~13/powerpc-altivec-built-in-functions-available-on-isa-2_002e07.html | |
new repository
Diffstat (limited to 'devdocs/gcc~13/powerpc-altivec-built-in-functions-available-on-isa-2_002e07.html')
| -rw-r--r-- | devdocs/gcc~13/powerpc-altivec-built-in-functions-available-on-isa-2_002e07.html | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/devdocs/gcc~13/powerpc-altivec-built-in-functions-available-on-isa-2_002e07.html b/devdocs/gcc~13/powerpc-altivec-built-in-functions-available-on-isa-2_002e07.html new file mode 100644 index 00000000..9d05c366 --- /dev/null +++ b/devdocs/gcc~13/powerpc-altivec-built-in-functions-available-on-isa-2_002e07.html @@ -0,0 +1,167 @@ +<div class="subsubsection-level-extent" id="PowerPC-AltiVec-Built-in-Functions-Available-on-ISA-2_002e07"> <div class="nav-panel"> <p> Next: <a href="powerpc-altivec-built-in-functions-available-on-isa-3_002e0" accesskey="n" rel="next">PowerPC AltiVec Built-in Functions Available on ISA 3.0</a>, Previous: <a href="powerpc-altivec-built-in-functions-available-on-isa-2_002e06" accesskey="p" rel="prev">PowerPC AltiVec Built-in Functions Available on ISA 2.06</a>, Up: <a href="powerpc-altivec_002fvsx-built-in-functions" accesskey="u" rel="up">PowerPC AltiVec/VSX 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="PowerPC-AltiVec-Built-in-Functions-Available-on-ISA-2_002e07-1"><span>6.60.23.3 PowerPC AltiVec Built-in Functions Available on ISA 2.07<a class="copiable-link" href="#PowerPC-AltiVec-Built-in-Functions-Available-on-ISA-2_002e07-1"> ΒΆ</a></span></h1> <p>If the ISA 2.07 additions to the vector/scalar (power8-vector) instruction set are available, the following additional functions are available for both 32-bit and 64-bit targets. For 64-bit targets, you can use <var class="var">vector long</var> instead of <var class="var">vector long long</var>, <var class="var">vector bool long</var> instead of <var class="var">vector bool long long</var>, and <var class="var">vector unsigned long</var> instead of <var class="var">vector unsigned long long</var>. </p> <p>Only functions excluded from the PVIPR are listed here. </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">vector long long vec_vaddudm (vector long long, vector long long); +vector long long vec_vaddudm (vector bool long long, vector long long); +vector long long vec_vaddudm (vector long long, vector bool long long); +vector unsigned long long vec_vaddudm (vector unsigned long long, + vector unsigned long long); +vector unsigned long long vec_vaddudm (vector bool unsigned long long, + vector unsigned long long); +vector unsigned long long vec_vaddudm (vector unsigned long long, + vector bool unsigned long long); + +vector long long vec_vclz (vector long long); +vector unsigned long long vec_vclz (vector unsigned long long); +vector int vec_vclz (vector int); +vector unsigned int vec_vclz (vector int); +vector short vec_vclz (vector short); +vector unsigned short vec_vclz (vector unsigned short); +vector signed char vec_vclz (vector signed char); +vector unsigned char vec_vclz (vector unsigned char); + +vector signed char vec_vclzb (vector signed char); +vector unsigned char vec_vclzb (vector unsigned char); + +vector long long vec_vclzd (vector long long); +vector unsigned long long vec_vclzd (vector unsigned long long); + +vector short vec_vclzh (vector short); +vector unsigned short vec_vclzh (vector unsigned short); + +vector int vec_vclzw (vector int); +vector unsigned int vec_vclzw (vector int); + +vector signed char vec_vgbbd (vector signed char); +vector unsigned char vec_vgbbd (vector unsigned char); + +vector long long vec_vmaxsd (vector long long, vector long long); + +vector unsigned long long vec_vmaxud (vector unsigned long long, + unsigned vector long long); + +vector long long vec_vminsd (vector long long, vector long long); + +vector unsigned long long vec_vminud (vector long long, vector long long); + +vector int vec_vpksdss (vector long long, vector long long); +vector unsigned int vec_vpksdss (vector long long, vector long long); + +vector unsigned int vec_vpkudus (vector unsigned long long, + vector unsigned long long); + +vector int vec_vpkudum (vector long long, vector long long); +vector unsigned int vec_vpkudum (vector unsigned long long, + vector unsigned long long); +vector bool int vec_vpkudum (vector bool long long, vector bool long long); + +vector long long vec_vpopcnt (vector long long); +vector unsigned long long vec_vpopcnt (vector unsigned long long); +vector int vec_vpopcnt (vector int); +vector unsigned int vec_vpopcnt (vector int); +vector short vec_vpopcnt (vector short); +vector unsigned short vec_vpopcnt (vector unsigned short); +vector signed char vec_vpopcnt (vector signed char); +vector unsigned char vec_vpopcnt (vector unsigned char); + +vector signed char vec_vpopcntb (vector signed char); +vector unsigned char vec_vpopcntb (vector unsigned char); + +vector long long vec_vpopcntd (vector long long); +vector unsigned long long vec_vpopcntd (vector unsigned long long); + +vector short vec_vpopcnth (vector short); +vector unsigned short vec_vpopcnth (vector unsigned short); + +vector int vec_vpopcntw (vector int); +vector unsigned int vec_vpopcntw (vector int); + +vector long long vec_vrld (vector long long, vector unsigned long long); +vector unsigned long long vec_vrld (vector unsigned long long, + vector unsigned long long); + +vector long long vec_vsld (vector long long, vector unsigned long long); +vector long long vec_vsld (vector unsigned long long, + vector unsigned long long); + +vector long long vec_vsrad (vector long long, vector unsigned long long); +vector unsigned long long vec_vsrad (vector unsigned long long, + vector unsigned long long); + +vector long long vec_vsrd (vector long long, vector unsigned long long); +vector unsigned long long char vec_vsrd (vector unsigned long long, + vector unsigned long long); + +vector long long vec_vsubudm (vector long long, vector long long); +vector long long vec_vsubudm (vector bool long long, vector long long); +vector long long vec_vsubudm (vector long long, vector bool long long); +vector unsigned long long vec_vsubudm (vector unsigned long long, + vector unsigned long long); +vector unsigned long long vec_vsubudm (vector bool long long, + vector unsigned long long); +vector unsigned long long vec_vsubudm (vector unsigned long long, + vector bool long long); + +vector long long vec_vupkhsw (vector int); +vector unsigned long long vec_vupkhsw (vector unsigned int); + +vector long long vec_vupklsw (vector int); +vector unsigned long long vec_vupklsw (vector int);</pre> +</div> <p>If the ISA 2.07 additions to the vector/scalar (power8-vector) instruction set are available, the following additional functions are available for 64-bit targets. New vector types (<var class="var">vector __int128</var> and <var class="var">vector __uint128</var>) are available to hold the <var class="var">__int128</var> and <var class="var">__uint128</var> types to use these builtins. </p> <p>The normal vector extract, and set operations work on <var class="var">vector __int128</var> and <var class="var">vector __uint128</var> types, but the index value must be 0. </p> <p>Only functions excluded from the PVIPR are listed here. </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">vector __int128 vec_vaddcuq (vector __int128, vector __int128); +vector __uint128 vec_vaddcuq (vector __uint128, vector __uint128); + +vector __int128 vec_vadduqm (vector __int128, vector __int128); +vector __uint128 vec_vadduqm (vector __uint128, vector __uint128); + +vector __int128 vec_vaddecuq (vector __int128, vector __int128, + vector __int128); +vector __uint128 vec_vaddecuq (vector __uint128, vector __uint128, + vector __uint128); + +vector __int128 vec_vaddeuqm (vector __int128, vector __int128, + vector __int128); +vector __uint128 vec_vaddeuqm (vector __uint128, vector __uint128, + vector __uint128); + +vector __int128 vec_vsubecuq (vector __int128, vector __int128, + vector __int128); +vector __uint128 vec_vsubecuq (vector __uint128, vector __uint128, + vector __uint128); + +vector __int128 vec_vsubeuqm (vector __int128, vector __int128, + vector __int128); +vector __uint128 vec_vsubeuqm (vector __uint128, vector __uint128, + vector __uint128); + +vector __int128 vec_vsubcuq (vector __int128, vector __int128); +vector __uint128 vec_vsubcuq (vector __uint128, vector __uint128); + +__int128 vec_vsubuqm (__int128, __int128); +__uint128 vec_vsubuqm (__uint128, __uint128); + +vector __int128 __builtin_bcdadd (vector __int128, vector __int128, const int); +vector unsigned char __builtin_bcdadd (vector unsigned char, vector unsigned char, + const int); +int __builtin_bcdadd_lt (vector __int128, vector __int128, const int); +int __builtin_bcdadd_lt (vector unsigned char, vector unsigned char, const int); +int __builtin_bcdadd_eq (vector __int128, vector __int128, const int); +int __builtin_bcdadd_eq (vector unsigned char, vector unsigned char, const int); +int __builtin_bcdadd_gt (vector __int128, vector __int128, const int); +int __builtin_bcdadd_gt (vector unsigned char, vector unsigned char, const int); +int __builtin_bcdadd_ov (vector __int128, vector __int128, const int); +int __builtin_bcdadd_ov (vector unsigned char, vector unsigned char, const int); + +vector __int128 __builtin_bcdsub (vector __int128, vector __int128, const int); +vector unsigned char __builtin_bcdsub (vector unsigned char, vector unsigned char, + const int); +int __builtin_bcdsub_lt (vector __int128, vector __int128, const int); +int __builtin_bcdsub_lt (vector unsigned char, vector unsigned char, const int); +int __builtin_bcdsub_eq (vector __int128, vector __int128, const int); +int __builtin_bcdsub_eq (vector unsigned char, vector unsigned char, const int); +int __builtin_bcdsub_gt (vector __int128, vector __int128, const int); +int __builtin_bcdsub_gt (vector unsigned char, vector unsigned char, const int); +int __builtin_bcdsub_ov (vector __int128, vector __int128, const int); +int __builtin_bcdsub_ov (vector unsigned char, vector unsigned char, const int);</pre> +</div> </div> <div class="nav-panel"> <p> Next: <a href="powerpc-altivec-built-in-functions-available-on-isa-3_002e0">PowerPC AltiVec Built-in Functions Available on ISA 3.0</a>, Previous: <a href="powerpc-altivec-built-in-functions-available-on-isa-2_002e06">PowerPC AltiVec Built-in Functions Available on ISA 2.06</a>, Up: <a href="powerpc-altivec_002fvsx-built-in-functions">PowerPC AltiVec/VSX 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"> + © 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/PowerPC-AltiVec-Built-in-Functions-Available-on-ISA-2_002e07.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/PowerPC-AltiVec-Built-in-Functions-Available-on-ISA-2_002e07.html</a> + </p> +</div> |
