Spec-Zone.ru › GCC 12

6.60.22.5 Основные встроенные функции PowerPC, доступные в ISA 3.0

Основные встроенные функции, описанные в этом разделе, доступны на процессорах семейства PowerPC, начиная с ISA 3.0 или более поздних версий. Если на командной строке не отключены какие-либо конкретные опции, указание опции -mcpu=power9 приводит к включению всех тех же опций, что и для -mcpu=power8, в дополнение к опции -misel.

Следующие встроенные функции доступны в 64-разрядных системах Linux, использующих набор инструкций ISA 3.0 (-mcpu=power9):

__float128 __builtin_addf128_round_to_odd (__float128, __float128)

Выполнение сложения 128-битного IEEE с плавающей точкой с использованием режима округления до нечётного числа.

__float128 __builtin_subf128_round_to_odd (__float128, __float128)

Выполнение вычитания 128-битного IEEE с плавающей точкой с использованием режима округления до нечётного числа.

__float128 __builtin_mulf128_round_to_odd (__float128, __float128)

Выполнение умножения 128-битного IEEE с плавающей точкой с использованием режима округления до нечётного числа.

__float128 __builtin_divf128_round_to_odd (__float128, __float128)

Выполнение деления 128-битного IEEE с плавающей точкой с использованием режима округления до нечётного числа.

__float128 __builtin_sqrtf128_round_to_odd (__float128)

Выполнение извлечения квадратного корня 128-битного IEEE с плавающей точкой с использованием режима округления до нечётного числа.

__float128 __builtin_fmaf128_round_to_odd (__float128, __float128, __float128)

Выполнение операции умножения-сложения 128-битного IEEE с плавающей точкой с использованием режима округления до нечётного числа.

double __builtin_truncf128_round_to_odd (__float128)

Преобразование значения 128-битного IEEE с плавающей точкой в double с использованием режима округления до нечётного числа.

Следующие дополнительные встроенные функции также доступны для процессоров семейства PowerPC, начиная с ISA 3.0 или более поздних версий:

long long __builtin_darn (void);
long long __builtin_darn_raw (void);
int __builtin_darn_32 (void);

Функции __builtin_darn и __builtin_darn_raw требуют 64-разрядной среды, поддерживающей ISA 3.0 или более позднюю версию. Функция __builtin_darn предоставляет условное случайное число в 64-битном формате. Функция __builtin_darn_raw предоставляет 64-битное случайное число в сыром формате. Функция __builtin_darn_32 предоставляет условное случайное число в 32-битном формате.

Следующие дополнительные встроенные функции также доступны для процессоров семейства PowerPC, начиная с ISA 3.0 или более поздних версий:

int __builtin_byte_in_set (unsigned char u, unsigned long long set);
int __builtin_byte_in_range (unsigned char u, unsigned int range);
int __builtin_byte_in_either_range (unsigned char u, unsigned int ranges);

int __builtin_dfp_dtstsfi_lt (unsigned int comparison, _Decimal64 value);
int __builtin_dfp_dtstsfi_lt (unsigned int comparison, _Decimal128 value);
int __builtin_dfp_dtstsfi_lt_dd (unsigned int comparison, _Decimal64 value);
int __builtin_dfp_dtstsfi_lt_td (unsigned int comparison, _Decimal128 value);

int __builtin_dfp_dtstsfi_gt (unsigned int comparison, _Decimal64 value);
int __builtin_dfp_dtstsfi_gt (unsigned int comparison, _Decimal128 value);
int __builtin_dfp_dtstsfi_gt_dd (unsigned int comparison, _Decimal64 value);
int __builtin_dfp_dtstsfi_gt_td (unsigned int comparison, _Decimal128 value);

int __builtin_dfp_dtstsfi_eq (unsigned int comparison, _Decimal64 value);
int __builtin_dfp_dtstsfi_eq (unsigned int comparison, _Decimal128 value);
int __builtin_dfp_dtstsfi_eq_dd (unsigned int comparison, _Decimal64 value);
int __builtin_dfp_dtstsfi_eq_td (unsigned int comparison, _Decimal128 value);

int __builtin_dfp_dtstsfi_ov (unsigned int comparison, _Decimal64 value);
int __builtin_dfp_dtstsfi_ov (unsigned int comparison, _Decimal128 value);
int __builtin_dfp_dtstsfi_ov_dd (unsigned int comparison, _Decimal64 value);
int __builtin_dfp_dtstsfi_ov_td (unsigned int comparison, _Decimal128 value);

double __builtin_mffsl(void);

Функция __builtin_byte_in_set требует 64-разрядной среды, поддерживающей ISA 3.0 или более позднюю версию. Эта функция возвращает ненулевое значение только в том случае, если ее аргумент u точно равен одному из восьми байтов, содержащихся в ее 64-битном аргументе set.

Функции __builtin_byte_in_range и __builtin_byte_in_either_range требуют среды, поддерживающей ISA 3.0 или более позднюю версию. Для этих двух функций аргумент range закодирован как 4 байта, организованные как hi_1:lo_1:hi_2:lo_2. Функция __builtin_byte_in_range возвращает ненулевое значение только в том случае, если ее аргумент u находится в диапазоне от lo_2 до hi_2 включительно. Функция __builtin_byte_in_either_range возвращает ненулевое значение только в том случае, если ее аргумент u находится в диапазоне от lo_1 до hi_1 включительно или в диапазоне от lo_2 до hi_2 включительно.

Функция __builtin_dfp_dtstsfi_lt возвращает ненулевое значение только в том случае, если количество значащих цифр ее аргумента value меньше, чем ее аргумент comparison. Функции __builtin_dfp_dtstsfi_lt_dd и __builtin_dfp_dtstsfi_lt_td ведут себя аналогично, но требуют, чтобы тип аргумента value был __Decimal64 и __Decimal128 соответственно.

Функция __builtin_dfp_dtstsfi_gt возвращает ненулевое значение только в том случае, если количество значащих цифр ее аргумента value больше, чем ее аргумент comparison. Функции __builtin_dfp_dtstsfi_gt_dd и __builtin_dfp_dtstsfi_gt_td ведут себя аналогично, но требуют, чтобы тип аргумента value был __Decimal64 и __Decimal128 соответственно.

Функция __builtin_dfp_dtstsfi_eq возвращает ненулевое значение только в том случае, если количество значащих цифр ее аргумента value равно ее аргументу comparison. Функции __builtin_dfp_dtstsfi_eq_dd и __builtin_dfp_dtstsfi_eq_td ведут себя аналогично, но требуют, чтобы тип аргумента value был __Decimal64 и __Decimal128 соответственно.

Функция __builtin_dfp_dtstsfi_ov возвращает ненулевое значение только в том случае, если ее аргумент value имеет неопределённое количество значащих цифр, например, когда value является кодированием NaN. Функции __builtin_dfp_dtstsfi_ov_dd и __builtin_dfp_dtstsfi_ov_td ведут себя аналогично, но требуют, чтобы тип аргумента value был __Decimal64 и __Decimal128 соответственно.

Функция __builtin_mffsl использует инструкцию ISA 3.0 mffsl для чтения FPSCR. Эта инструкция имеет меньшую задержку по сравнению с инструкцией mffs. Если инструкция mffsl недоступна, встроенная функция использует более старую инструкцию mffs для чтения FPSCR.

Далее: Основные встроенные функции PowerPC, доступные в ISA 3.1, Предыдущее: Основные встроенные функции PowerPC, доступные в ISA 2.07, Наверх: Основные встроенные функции 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_002e0.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API