Fraser Cormack 7441e87fe0
[libclc] Move several integer functions to CLC library (#116786)
This commit moves over the OpenCL clz, hadd, mad24, mad_hi, mul24,
mul_hi, popcount, rhadd, and upsample builtins to the CLC library.

This commit also optimizes the vector forms of the mul_hi and upsample
builtins to consistently remain in vector types, instead of recursively
splitting vectors down to the scalar form.

The OpenCL mad_hi builtin wasn't previously publicly available from the
CLC libraries, as it was hash-defined to mul_hi in the header files.
That issue has been fixed, and mad_hi is now exposed.

The custom AMD implementation/workaround for popcount has been removed
as it was only required for clang < 7.

There are still two integer functions which haven't been moved over. The
OpenCL mad_sat builtin uses many of the other integer builtins, and
would benefit from optimization for vector types. That can take place in
a follow-up commit. The rotate builtin could similarly use some more
dedicated focus, potentially using clang builtins.
2025-01-29 13:45:33 +00:00

25 lines
763 B
Plaintext

../generic/common/clc_degrees.cl
../generic/common/clc_radians.cl
../generic/common/clc_smoothstep.cl
../generic/geometric/clc_dot.cl
../generic/integer/clc_add_sat.cl
../generic/integer/clc_clz.cl
../generic/integer/clc_hadd.cl
../generic/integer/clc_mad24.cl
../generic/integer/clc_mul24.cl
../generic/integer/clc_mul_hi.cl
../generic/integer/clc_popcount.cl
../generic/integer/clc_rhadd.cl
../generic/integer/clc_sub_sat.cl
../generic/integer/clc_upsample.cl
../generic/math/clc_ceil.cl
../generic/math/clc_copysign.cl
../generic/math/clc_fabs.cl
../generic/math/clc_floor.cl
../generic/math/clc_mad.cl
../generic/math/clc_nextafter.cl
../generic/math/clc_rint.cl
../generic/math/clc_trunc.cl
../generic/relational/clc_select.cl
../generic/shared/clc_clamp.cl