Spec-Zone.ru › GCC 10

Далее: Встроенные функции MIPS-3D, Предыдущее: Арифметика парных чисел с одинарной точностью, Вверх: Встроенные функции MIPS Loongson [Оглавление][Индекс]

6.60.16.2 Встроенные функции парных чисел с одинарной точностью ¶

Следующие функции для парных чисел с одинарной точностью напрямую отображаются на конкретной инструкции MIPS. Обратитесь к спецификации архитектуры для получения подробной информации о том, что делает каждая инструкция.

v2sf __builtin_mips_pll_ps (v2sf, v2sf)

Соединение нижних битов (pll.ps).

v2sf __builtin_mips_pul_ps (v2sf, v2sf)

Соединение верхних и нижних битов (pul.ps).

v2sf __builtin_mips_plu_ps (v2sf, v2sf)

Соединение нижних и верхних битов (plu.ps).

v2sf __builtin_mips_puu_ps (v2sf, v2sf)

Соединение верхних битов (puu.ps).

v2sf __builtin_mips_cvt_ps_s (float, float)

Преобразование пары в пару чисел с одинарной точностью (cvt.ps.s).

float __builtin_mips_cvt_s_pl (v2sf)

Преобразование нижней части пары в число с одинарной точностью (cvt.s.pl).

float __builtin_mips_cvt_s_pu (v2sf)

Преобразование верхней части пары в число с одинарной точностью (cvt.s.pu).

v2sf __builtin_mips_abs_ps (v2sf)

Модуль (abs.ps).

v2sf __builtin_mips_alnv_ps (v2sf, v2sf, int)

Выравнивание переменной (alnv.ps).

Примечание: значение третьего параметра должно быть равно 0 или 4 по модулю 8, в противном случае результат будет непредсказуемым. Обратитесь к описанию инструкции для получения подробной информации.

Также доступны следующие функции, состоящие из нескольких инструкций. В каждом случае cond может принимать любое из 16 условий с плавающей запятой: f, un, eq, ueq, olt, ult, ole, ule, sf, ngle, seq, ngl, lt, nge, le или ngt.

v2sf __builtin_mips_movt_c_cond_ps (v2sf a, v2sf b, v2sf c, v2sf d)
v2sf __builtin_mips_movf_c_cond_ps (v2sf a, v2sf b, v2sf c, v2sf d)

Условное перемещение на основе сравнения с плавающей запятой (c.cond.ps, movt.ps/movf.ps).

Функции movt возвращают значение x, вычисляемое следующим образом:

c.cond.ps cc,a,b
mov.ps x,c
movt.ps x,d,cc

Функции movf аналогичны, но используют movf.ps вместо movt.ps.

int __builtin_mips_upper_c_cond_ps (v2sf a, v2sf b)
int __builtin_mips_lower_c_cond_ps (v2sf a, v2sf b)

Сравнение двух парных чисел с одинарной точностью (c.cond.ps, bc1t/bc1f).

Эти функции сравнивают a и b с использованием c.cond.ps и возвращают верхнюю или нижнюю часть результата. Например:

v2sf a, b;
if (__builtin_mips_upper_c_eq_ps (a, b))
  upper_halves_are_equal ();
else
  upper_halves_are_unequal ();

if (__builtin_mips_lower_c_eq_ps (a, b))
  lower_halves_are_equal ();
else
  lower_halves_are_unequal ();

Далее: Встроенные функции MIPS-3D, Предыдущее: Арифметика парных чисел с одинарной точностью, Вверх: Встроенные функции MIPS Loongson [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/Paired-Single-Built-in-Functions.html

Spec-Zone.ru

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