/
redgpu
/
ispc
Обзор
Документация
Войти
/
redgpu
/
ispc
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tests/func-tests/ldexp-float16.ispc
18 строк
664 B
Aleksei Nurmukhametov
ldexp-float16 func-test: reduce input range to avoid float16 overflow
08 авг 2025, 23:27
08 авг 2025, 23:27
e77effb
Код
Авторство
О чём код?
#include "test_static.isph" task void f_f(uniform float RET[], uniform float aFOO[]) { // Use % 14 to limit input to 2^13 max, ensuring ldexp(a, 2) <= 32768 which // stays within float16's finite range (65504). Using % 28 would allow 2^14 // and 2^15 inputs, causing ldexp results to overflow. float16 a = 1ul << ((programIndex/4) % 14); if (programIndex & 1) a = -a; RET[programIndex] = ldexp(a, 2); } task void result(uniform float RET[]) { int pi = (programIndex/4) % 14; #pragma ignore warning(perf) RET[programIndex] = (1ul << (pi + 2)); if (programIndex & 1) RET[programIndex] = -RET[programIndex]; }