Fraser Cormack 95c683fc1b
[libclc] Move logb/ilogb to CLC library; optimize (#128028)
This commit moves the logb and ilogb builtins to the CLC library.

It simultaneously optimizes them both for vector types and for half
types. Vector types were being scalarized in some cases. Half types were
previously promoting to float, whereas this commit provides them a
native implementation.

Everything passes the OpenCL-CTS.

I had to intuit some magic numbers used by these implementations in
order to generate the half variants. I gave them clearer definitions
derived from what I believe are their actual component numbers, but
named them 'magic' to convey that they weren't derived from first
principles.
2025-05-13 11:47:35 +01:00

146 lines
3.0 KiB
Plaintext

common/clc_degrees.cl
common/clc_radians.cl
common/clc_sign.cl
common/clc_smoothstep.cl
geometric/clc_distance.cl
geometric/clc_dot.cl
geometric/clc_fast_distance.cl
geometric/clc_fast_length.cl
geometric/clc_length.cl
integer/clc_abs.cl
integer/clc_abs_diff.cl
integer/clc_add_sat.cl
integer/clc_clz.cl
integer/clc_ctz.cl
integer/clc_hadd.cl
integer/clc_mad24.cl
integer/clc_mad_sat.cl
integer/clc_mul24.cl
integer/clc_mul_hi.cl
integer/clc_popcount.cl
integer/clc_rhadd.cl
integer/clc_rotate.cl
integer/clc_sub_sat.cl
integer/clc_upsample.cl
math/clc_acos.cl
math/clc_acosh.cl
math/clc_acospi.cl
math/clc_asin.cl
math/clc_asinh.cl
math/clc_asinpi.cl
math/clc_atan.cl
math/clc_atan2.cl
math/clc_atan2pi.cl
math/clc_atanh.cl
math/clc_atanpi.cl
math/clc_cbrt.cl
math/clc_ceil.cl
math/clc_copysign.cl
math/clc_cos.cl
math/clc_cosh.cl
math/clc_cospi.cl
math/clc_ep_log.cl
math/clc_exp.cl
math/clc_exp10.cl
math/clc_exp2.cl
math/clc_expm1.cl
math/clc_exp_helper.cl
math/clc_fabs.cl
math/clc_fdim.cl
math/clc_fma.cl
math/clc_fmax.cl
math/clc_fmin.cl
math/clc_floor.cl
math/clc_fmod.cl
math/clc_fract.cl
math/clc_frexp.cl
math/clc_half_cos.cl
math/clc_half_divide.cl
math/clc_half_exp.cl
math/clc_half_exp10.cl
math/clc_half_exp2.cl
math/clc_half_log.cl
math/clc_half_log10.cl
math/clc_half_log2.cl
math/clc_half_powr.cl
math/clc_half_rsqrt.cl
math/clc_half_recip.cl
math/clc_half_sin.cl
math/clc_half_sqrt.cl
math/clc_half_tan.cl
math/clc_hypot.cl
math/clc_ilogb.cl
math/clc_ldexp.cl
math/clc_lgamma.cl
math/clc_lgamma_r.cl
math/clc_log.cl
math/clc_log10.cl
math/clc_log1p.cl
math/clc_log2.cl
math/clc_logb.cl
math/clc_mad.cl
math/clc_maxmag.cl
math/clc_minmag.cl
math/clc_modf.cl
math/clc_nan.cl
math/clc_native_cos.cl
math/clc_native_divide.cl
math/clc_native_exp.cl
math/clc_native_exp10.cl
math/clc_native_exp2.cl
math/clc_native_log.cl
math/clc_native_log10.cl
math/clc_native_log2.cl
math/clc_native_powr.cl
math/clc_native_rsqrt.cl
math/clc_native_recip.cl
math/clc_native_sin.cl
math/clc_native_sqrt.cl
math/clc_native_tan.cl
math/clc_nextafter.cl
math/clc_pow.cl
math/clc_pown.cl
math/clc_powr.cl
math/clc_remainder.cl
math/clc_remquo.cl
math/clc_rint.cl
math/clc_rootn.cl
math/clc_round.cl
math/clc_rsqrt.cl
math/clc_sin.cl
math/clc_sincos.cl
math/clc_sincos_helpers.cl
math/clc_sinh.cl
math/clc_sinpi.cl
math/clc_sqrt.cl
math/clc_sw_fma.cl
math/clc_tables.cl
math/clc_tan.cl
math/clc_tanh.cl
math/clc_tanpi.cl
math/clc_tgamma.cl
math/clc_trunc.cl
misc/clc_shuffle.cl
misc/clc_shuffle2.cl
relational/clc_all.cl
relational/clc_any.cl
relational/clc_bitselect.cl
relational/clc_isequal.cl
relational/clc_isfinite.cl
relational/clc_isgreater.cl
relational/clc_isgreaterequal.cl
relational/clc_isinf.cl
relational/clc_isless.cl
relational/clc_islessequal.cl
relational/clc_islessgreater.cl
relational/clc_isnan.cl
relational/clc_isnormal.cl
relational/clc_isnotequal.cl
relational/clc_isordered.cl
relational/clc_isunordered.cl
relational/clc_select.cl
relational/clc_signbit.cl
shared/clc_clamp.cl
shared/clc_max.cl
shared/clc_min.cl