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.
14 lines
321 B
Plaintext
14 lines
321 B
Plaintext
cl_khr_int64_extended_atomics/minmax_helpers.ll
|
|
math/fmax.cl
|
|
math/fmin.cl
|
|
math/ldexp.cl
|
|
mem_fence/fence.cl
|
|
synchronization/barrier.cl
|
|
workitem/get_global_offset.cl
|
|
workitem/get_group_id.cl
|
|
workitem/get_global_size.cl
|
|
workitem/get_local_id.cl
|
|
workitem/get_local_size.cl
|
|
workitem/get_num_groups.cl
|
|
workitem/get_work_dim.cl
|