On this page
6.60.22.6 Basic PowerPC Built-in Functions Available on ISA 3.1 ¶
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 -mcpu=power10 has the effect of enabling all the same options as for -mcpu=power9.
The following built-in functions are available on Linux 64-bit systems that use a future architecture instruction set (-mcpu=power10):
- Built-in Function:
unsigned long long__builtin_cfuged(unsigned long long, unsigned long long)¶ -
Perform a 64-bit centrifuge operation, as if implemented by the
cfugedinstruction.
- Built-in Function:
unsigned long long__builtin_cntlzdm(unsigned long long, unsigned long long)¶ -
Perform a 64-bit count leading zeros operation under mask, as if implemented by the
cntlzdminstruction.
- Built-in Function:
unsigned long long__builtin_cnttzdm(unsigned long long, unsigned long long)¶ -
Perform a 64-bit count trailing zeros operation under mask, as if implemented by the
cnttzdminstruction.
- Built-in Function:
unsigned long long__builtin_pdepd(unsigned long long, unsigned long long)¶ -
Perform a 64-bit parallel bits deposit operation, as if implemented by the
pdepdinstruction.
- Built-in Function:
unsigned long long__builtin_pextd(unsigned long long, unsigned long long)¶ -
Perform a 64-bit parallel bits extract operation, as if implemented by the
pextdinstruction.
- Built-in Function:
vector signed __int128vsx_xl_sext(signed long long, signed char *)¶ - Built-in Function:
vector signed __int128vsx_xl_sext(signed long long, signed short *)¶ - Built-in Function:
vector signed __int128vsx_xl_sext(signed long long, signed int *)¶ - Built-in Function:
vector signed __int128vsx_xl_sext(signed long long, signed long long *)¶ - Built-in Function:
vector unsigned __int128vsx_xl_zext(signed long long, unsigned char *)¶ - Built-in Function:
vector unsigned __int128vsx_xl_zext(signed long long, unsigned short *)¶ - Built-in Function:
vector unsigned __int128vsx_xl_zext(signed long long, unsigned int *)¶ - Built-in Function:
vector unsigned __int128vsx_xl_zext(signed long long, unsigned long long *)¶ -
Load (and sign extend) to an __int128 vector, as if implemented by the ISA 3.1
lxvrbx,lxvrhx,lxvrwx, andlxvrdxinstructions.
- Built-in Function:
voidvec_xst_trunc(vector signed __int128, signed long long, signed char *)¶ - Built-in Function:
voidvec_xst_trunc(vector signed __int128, signed long long, signed short *)¶ - Built-in Function:
voidvec_xst_trunc(vector signed __int128, signed long long, signed int *)¶ - Built-in Function:
voidvec_xst_trunc(vector signed __int128, signed long long, signed long long *)¶ - Built-in Function:
voidvec_xst_trunc(vector unsigned __int128, signed long long, unsigned char *)¶ - Built-in Function:
voidvec_xst_trunc(vector unsigned __int128, signed long long, unsigned short *)¶ - Built-in Function:
voidvec_xst_trunc(vector unsigned __int128, signed long long, unsigned int *)¶ - Built-in Function:
voidvec_xst_trunc(vector unsigned __int128, signed long long, unsigned long long *)¶ -
Truncate and store the rightmost element of a vector, as if implemented by the ISA 3.1
stxvrbx,stxvrhx,stxvrwx, andstxvrdxinstructions.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Basic-PowerPC-Built-in-Functions-Available-on-ISA-3_002e1.html