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-12.2.0/gcc/Paired-Single-Built-in-Functions.html