6.60.22.6 Основные встроенные функции PowerPC, доступные в ISA 3.1
Основные встроенные функции, описанные в этом разделе, доступны на процессорах семейства PowerPC, начиная с ISA 3.1. Если не указано иное, явно отключив соответствующие параметры в командной строке, использование параметра -mcpu=power10 эквивалентно включению всех тех же параметров, что и для -mcpu=power9.
Следующие встроенные функции доступны в 64-битных системах Linux, использующих будущий набор инструкций архитектуры (-mcpu=power10):
unsigned long long
__builtin_cfuged (unsigned long long, unsigned long long)
Выполнить 64-битную операцию центрифугирования, как если бы она была реализована инструкцией cfuged.
unsigned long long
__builtin_cntlzdm (unsigned long long, unsigned long long)
Выполнить 64-битную операцию подсчета ведущих нулей с маской, как если бы она была реализована инструкцией cntlzdm.
unsigned long long
__builtin_cnttzdm (unsigned long long, unsigned long long)
Выполнить 64-битную операцию подсчета хвостовых нулей с маской, как если бы она была реализована инструкцией cnttzdm.
unsigned long long
__builtin_pdepd (unsigned long long, unsigned long long)
Выполнить 64-битную операцию параллельного размещения битов, как если бы она была реализована инструкцией pdepd.
unsigned long long
__builtin_pextd (unsigned long long, unsigned long long)
Выполнить 64-битную операцию параллельного извлечения битов, как если бы она была реализована инструкцией pextd.
vector signed __int128 vsx_xl_sext (signed long long, signed char *)
vector signed __int128 vsx_xl_sext (signed long long, signed short *)
vector signed __int128 vsx_xl_sext (signed long long, signed int *)
vector signed __int128 vsx_xl_sext (signed long long, signed long long *)
vector unsigned __int128 vsx_xl_zext (signed long long, unsigned char *)
vector unsigned __int128 vsx_xl_zext (signed long long, unsigned short *)
vector unsigned __int128 vsx_xl_zext (signed long long, unsigned int *)
vector unsigned __int128 vsx_xl_zext (signed long long, unsigned long long *)
Загрузить (и расширить знак) в вектор __int128, как если бы это было реализовано инструкциями ISA 3.1 lxvrbx, lxvrhx, lxvrwx, и lxvrdx.
void vec_xst_trunc (vector signed __int128, signed long long, signed char *)
void vec_xst_trunc (vector signed __int128, signed long long, signed short *)
void vec_xst_trunc (vector signed __int128, signed long long, signed int *)
void vec_xst_trunc (vector signed __int128, signed long long, signed long long *)
void vec_xst_trunc (vector unsigned __int128, signed long long, unsigned char *)
void vec_xst_trunc (vector unsigned __int128, signed long long, unsigned short *)
void vec_xst_trunc (vector unsigned __int128, signed long long, unsigned int *)
void vec_xst_trunc (vector unsigned __int128, signed long long, unsigned long long *)
Обрезать и сохранить правый элемент вектора, как если бы это было реализовано инструкциями ISA 3.1 stxvrbx, stxvrhx, stxvrwx, и stxvrdx.
Предыдущий: Основные встроенные функции PowerPC, доступные в ISA 3.0, Вверх: Основные встроенные функции PowerPC [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Basic-PowerPC-Built-in-Functions-Available-on-ISA-3_002e1.html