7.13.24.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 __int128vsx_xl_sext(signed long long, signed char *) -
Встроенная функция:
vector signed __int128vsx_xl_sext(signed long long, signed short *) -
Встроенная функция:
vector signed __int128vsx_xl_sext(signed long long, signed int *) -
Встроенная функция:
vector signed __int128vsx_xl_sext(signed long long, signed long long *) -
Встроенная функция:
vector unsigned __int128vsx_xl_zext(signed long long, unsigned char *) -
Встроенная функция:
vector unsigned __int128vsx_xl_zext(signed long long, unsigned short *) -
Встроенная функция:
vector unsigned __int128vsx_xl_zext(signed long long, unsigned int *) -
Встроенная функция:
vector unsigned __int128vsx_xl_zext(signed long long, unsigned long long *) -
Загружает данные (с расширением знака) в вектор __int128, как если бы операция выполнялась инструкциями ISA 3.1
lxvrbx,lxvrhx,lxvrwxиlxvrdx.
-
Встроенная функция:
voidvec_xst_trunc(vector signed __int128, signed long long, signed char *) -
Встроенная функция:
voidvec_xst_trunc(vector signed __int128, signed long long, signed short *) -
Встроенная функция:
voidvec_xst_trunc(vector signed __int128, signed long long, signed int *) -
Встроенная функция:
voidvec_xst_trunc(vector signed __int128, signed long long, signed long long *) -
Встроенная функция:
voidvec_xst_trunc(vector unsigned __int128, signed long long, unsigned char *) -
Встроенная функция:
voidvec_xst_trunc(vector unsigned __int128, signed long long, unsigned short *) -
Встроенная функция:
voidvec_xst_trunc(vector unsigned __int128, signed long long, unsigned int *) -
Встроенная функция:
voidvec_xst_trunc(vector unsigned __int128, signed long long, unsigned long long *) -
Усекает и сохраняет крайний правый элемент вектора, как если бы операция выполнялась инструкциями ISA 3.1
stxvrbx,stxvrhx,stxvrwxиstxvrdx.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Basic-PowerPC-Built_002din-Functions-Available-on-ISA-3_002e1.html