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
..
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2014-06-23 14:15:39 +00:00
2025-01-28 14:17:23 +00:00
2024-12-13 08:47:13 +00:00
2025-01-28 14:17:23 +00:00
2025-01-29 13:45:33 +00:00
2025-01-29 13:45:33 +00:00
2025-01-28 14:17:23 +00:00
2025-01-29 11:12:40 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-29 13:45:33 +00:00
2025-01-29 13:45:33 +00:00
2025-01-28 14:17:23 +00:00
2024-11-04 16:35:14 +00:00
2024-11-04 22:00:01 +00:00
2024-11-04 22:00:01 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 09:18:34 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2018-04-17 18:08:08 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2024-12-13 08:47:13 +00:00
2025-01-28 14:17:23 +00:00
2024-07-18 12:00:41 +01:00
2024-12-13 08:47:13 +00:00
2025-01-28 14:17:23 +00:00
2024-11-04 22:00:01 +00:00
2018-05-17 22:55:30 +00:00
2024-11-04 22:00:01 +00:00
2018-04-06 17:43:08 +00:00
2018-03-06 17:48:35 +00:00
2018-05-17 22:55:30 +00:00
2024-11-04 22:00:01 +00:00
2024-11-04 22:00:01 +00:00
2024-11-04 22:00:01 +00:00
2018-01-18 21:12:06 +00:00
2018-01-18 21:11:45 +00:00
2018-01-18 21:11:43 +00:00
2018-01-18 21:11:56 +00:00
2018-01-18 21:11:50 +00:00
2018-01-18 21:12:01 +00:00
2024-11-04 22:00:01 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2018-05-17 22:55:30 +00:00
2025-01-28 14:17:23 +00:00
2024-07-18 12:00:41 +01:00
2025-01-22 09:32:20 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2024-11-04 22:00:01 +00:00
2025-01-28 14:17:23 +00:00
2025-01-20 16:27:51 +00:00
2024-11-04 22:00:01 +00:00
2024-11-04 22:00:01 +00:00
2025-01-28 14:17:23 +00:00
2018-05-17 22:55:30 +00:00
2024-11-04 22:00:01 +00:00
2017-11-10 22:16:33 +00:00
2017-11-13 18:28:56 +00:00
2017-11-13 18:28:56 +00:00
2017-11-10 22:16:31 +00:00
2017-11-10 22:16:41 +00:00
2017-11-13 18:28:45 +00:00
2017-11-10 22:16:28 +00:00
2017-11-10 22:16:15 +00:00
2017-11-10 22:16:22 +00:00
2017-11-10 22:16:20 +00:00
2017-11-10 22:16:36 +00:00
2017-11-10 22:16:39 +00:00
2017-11-13 18:28:48 +00:00
2017-11-13 18:28:48 +00:00
2024-11-04 22:00:01 +00:00
2025-01-23 12:24:16 +00:00
2024-07-18 12:00:41 +01:00
2024-07-18 12:00:41 +01:00
2024-12-13 08:47:13 +00:00
2018-01-17 21:22:14 +00:00
2024-07-18 12:00:41 +01:00
2024-12-13 08:47:13 +00:00
2024-11-04 22:00:01 +00:00
2025-01-28 14:17:23 +00:00
2025-01-29 13:45:33 +00:00
2025-01-28 14:17:23 +00:00
2024-07-18 12:00:41 +01:00
2025-01-20 16:27:51 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2024-12-13 08:47:13 +00:00
2025-01-28 14:17:23 +00:00
2018-01-19 18:57:19 +00:00
2025-01-28 14:17:23 +00:00
2025-01-28 14:17:23 +00:00
2024-12-13 08:47:13 +00:00