[llvm] AMDGPU: Perform libcall recognition to replace fast OpenCL pow (PR #182135)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 18 12:52:47 PST 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions h,cpp -- llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp llvm/lib/Target/AMDGPU/AMDGPULibFunc.h --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp b/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
index 68d617e34..dd555cc17 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
@@ -139,208 +139,212 @@ unsigned ManglingRule::getNumArgs() const {
// prev lead type, etc. see ParamIterator::getNextParam() for details.
static constexpr ManglingRule manglingRules[] = {
-{ "", {0}, {0} },
-{ "abs" , {1}, {E_ANY}},
-{ "abs_diff" , {1}, {E_ANY,E_COPY}},
-{ "acos" , {1}, {E_ANY}},
-{ "acosh" , {1}, {E_ANY}},
-{ "acospi" , {1}, {E_ANY}},
-{ "add_sat" , {1}, {E_ANY,E_COPY}},
-{ "all" , {1}, {E_ANY}},
-{ "any" , {1}, {E_ANY}},
-{ "asin" , {1}, {E_ANY}},
-{ "asinh" , {1}, {E_ANY}},
-{ "asinpi" , {1}, {E_ANY}},
-{ "async_work_group_copy" , {1}, {E_ANY,E_CONSTPTR_SWAPGL,EX_SIZET,EX_EVENT}},
-{ "async_work_group_strided_copy" , {1}, {E_ANY,E_CONSTPTR_SWAPGL,EX_SIZET,EX_SIZET,EX_EVENT}},
-{ "atan" , {1}, {E_ANY}},
-{ "atan2" , {1}, {E_ANY,E_COPY}},
-{ "atan2pi" , {1}, {E_ANY,E_COPY}},
-{ "atanh" , {1}, {E_ANY}},
-{ "atanpi" , {1}, {E_ANY}},
-{ "atomic_add" , {1}, {E_VLTLPTR_ANY,E_POINTEE}},
-{ "atomic_and" , {1}, {E_VLTLPTR_ANY,E_POINTEE}},
-{ "atomic_cmpxchg" , {1}, {E_VLTLPTR_ANY,E_POINTEE,E_POINTEE}},
-{ "atomic_dec" , {1}, {E_VLTLPTR_ANY}},
-{ "atomic_inc" , {1}, {E_VLTLPTR_ANY}},
-{ "atomic_max" , {1}, {E_VLTLPTR_ANY,E_POINTEE}},
-{ "atomic_min" , {1}, {E_VLTLPTR_ANY,E_POINTEE}},
-{ "atomic_or" , {1}, {E_VLTLPTR_ANY,E_POINTEE}},
-{ "atomic_sub" , {1}, {E_VLTLPTR_ANY,E_POINTEE}},
-{ "atomic_xchg" , {1}, {E_VLTLPTR_ANY,E_POINTEE}},
-{ "atomic_xor" , {1}, {E_VLTLPTR_ANY,E_POINTEE}},
-{ "bitselect" , {1}, {E_ANY,E_COPY,E_COPY}},
-{ "cbrt" , {1}, {E_ANY}},
-{ "ceil" , {1}, {E_ANY}},
-{ "clamp" , {1}, {E_ANY,E_COPY,E_COPY}},
-{ "clz" , {1}, {E_ANY}},
-{ "commit_read_pipe" , {1}, {E_ANY,EX_RESERVEDID}},
-{ "commit_write_pipe" , {1}, {E_ANY,EX_RESERVEDID}},
-{ "copysign" , {1}, {E_ANY,E_COPY}},
-{ "cos" , {1}, {E_ANY}},
-{ "cosh" , {1}, {E_ANY}},
-{ "cospi" , {1}, {E_ANY}},
-{ "cross" , {1}, {E_ANY,E_COPY}},
-{ "ctz" , {1}, {E_ANY}},
-{ "degrees" , {1}, {E_ANY}},
-{ "distance" , {1}, {E_ANY,E_COPY}},
-{ "divide" , {1}, {E_ANY,E_COPY}},
-{ "dot" , {1}, {E_ANY,E_COPY}},
-{ "erf" , {1}, {E_ANY}},
-{ "erfc" , {1}, {E_ANY}},
-{ "exp" , {1}, {E_ANY}},
-{ "exp10" , {1}, {E_ANY}},
-{ "exp2" , {1}, {E_ANY}},
-{ "expm1" , {1}, {E_ANY}},
-{ "fabs" , {1}, {E_ANY}},
-{ "fast_distance" , {1}, {E_ANY,E_COPY}},
-{ "fast_length" , {1}, {E_ANY}},
-{ "fast_normalize" , {1}, {E_ANY}},
-{ "fdim" , {1}, {E_ANY,E_COPY}},
-{ "floor" , {1}, {E_ANY}},
-{ "fma" , {1}, {E_ANY,E_COPY,E_COPY}},
-{ "fmax" , {1}, {E_ANY,E_COPY}},
-{ "fmin" , {1}, {E_ANY,E_COPY}},
-{ "fmod" , {1}, {E_ANY,E_COPY}},
-{ "fract" , {2}, {E_POINTEE,E_ANY}},
-{ "frexp" , {1,2}, {E_ANY,E_ANY}},
-{ "get_image_array_size" , {1}, {E_ANY}},
-{ "get_image_channel_data_type" , {1}, {E_ANY}},
-{ "get_image_channel_order" , {1}, {E_ANY}},
-{ "get_image_dim" , {1}, {E_ANY}},
-{ "get_image_height" , {1}, {E_ANY}},
-{ "get_image_width" , {1}, {E_ANY}},
-{ "get_pipe_max_packets" , {1}, {E_ANY}},
-{ "get_pipe_num_packets" , {1}, {E_ANY}},
-{ "hadd" , {1}, {E_ANY,E_COPY}},
-{ "hypot" , {1}, {E_ANY,E_COPY}},
-{ "ilogb" , {1}, {E_ANY}},
-{ "isequal" , {1}, {E_ANY,E_COPY}},
-{ "isfinite" , {1}, {E_ANY}},
-{ "isgreater" , {1}, {E_ANY,E_COPY}},
-{ "isgreaterequal" , {1}, {E_ANY,E_COPY}},
-{ "isinf" , {1}, {E_ANY}},
-{ "isless" , {1}, {E_ANY,E_COPY}},
-{ "islessequal" , {1}, {E_ANY,E_COPY}},
-{ "islessgreater" , {1}, {E_ANY,E_COPY}},
-{ "isnan" , {1}, {E_ANY}},
-{ "isnormal" , {1}, {E_ANY}},
-{ "isnotequal" , {1}, {E_ANY,E_COPY}},
-{ "isordered" , {1}, {E_ANY,E_COPY}},
-{ "isunordered" , {1}, {E_ANY,E_COPY}},
-{ "ldexp" , {1}, {E_ANY,E_SETBASE_I32}},
-{ "length" , {1}, {E_ANY}},
-{ "lgamma" , {1}, {E_ANY}},
-{ "lgamma_r" , {1,2}, {E_ANY,E_ANY}},
-{ "log" , {1}, {E_ANY}},
-{ "log10" , {1}, {E_ANY}},
-{ "log1p" , {1}, {E_ANY}},
-{ "log2" , {1}, {E_ANY}},
-{ "logb" , {1}, {E_ANY}},
-{ "mad" , {1}, {E_ANY,E_COPY,E_COPY}},
-{ "mad24" , {1}, {E_ANY,E_COPY,E_COPY}},
-{ "mad_hi" , {1}, {E_ANY,E_COPY,E_COPY}},
-{ "mad_sat" , {1}, {E_ANY,E_COPY,E_COPY}},
-{ "max" , {1}, {E_ANY,E_COPY}},
-{ "maxmag" , {1}, {E_ANY,E_COPY}},
-{ "min" , {1}, {E_ANY,E_COPY}},
-{ "minmag" , {1}, {E_ANY,E_COPY}},
-{ "mix" , {1}, {E_ANY,E_COPY,E_COPY}},
-{ "modf" , {2}, {E_POINTEE,E_ANY}},
-{ "mul24" , {1}, {E_ANY,E_COPY}},
-{ "mul_hi" , {1}, {E_ANY,E_COPY}},
-{ "nan" , {1}, {E_ANY}},
-{ "nextafter" , {1}, {E_ANY,E_COPY}},
-{ "normalize" , {1}, {E_ANY}},
-{ "popcount" , {1}, {E_ANY}},
-{ "pow" , {1}, {E_ANY,E_COPY}},
-{ "__pow_fast" , {1}, {E_ANY,E_COPY}},
-{ "pown" , {1}, {E_ANY,E_SETBASE_I32}},
-{ "__pown_fast" , {1}, {E_ANY,E_SETBASE_I32}},
-{ "powr" , {1}, {E_ANY,E_COPY}},
-{ "__powr_fast" , {1}, {E_ANY,E_COPY}},
-{ "prefetch" , {1}, {E_CONSTPTR_ANY,EX_SIZET}},
-{ "radians" , {1}, {E_ANY}},
-{ "recip" , {1}, {E_ANY}},
-{ "remainder" , {1}, {E_ANY,E_COPY}},
-{ "remquo" , {1,3}, {E_ANY,E_COPY,E_ANY}},
-{ "reserve_read_pipe" , {1}, {E_ANY,EX_UINT}},
-{ "reserve_write_pipe" , {1}, {E_ANY,EX_UINT}},
-{ "rhadd" , {1}, {E_ANY,E_COPY}},
-{ "rint" , {1}, {E_ANY}},
-{ "rootn" , {1}, {E_ANY,E_SETBASE_I32}},
-{ "__rootn_fast" , {1}, {E_ANY,E_SETBASE_I32}},
-{ "rotate" , {1}, {E_ANY,E_COPY}},
-{ "round" , {1}, {E_ANY}},
-{ "rsqrt" , {1}, {E_ANY}},
-{ "select" , {1,3}, {E_ANY,E_COPY,E_ANY}},
-{ "shuffle" , {1,2}, {E_ANY,E_ANY}},
-{ "shuffle2" , {1,3}, {E_ANY,E_COPY,E_ANY}},
-{ "sign" , {1}, {E_ANY}},
-{ "signbit" , {1}, {E_ANY}},
-{ "sin" , {1}, {E_ANY}},
-{ "sincos" , {2}, {E_POINTEE,E_ANY}},
-{ "sinh" , {1}, {E_ANY}},
-{ "sinpi" , {1}, {E_ANY}},
-{ "smoothstep" , {1}, {E_ANY,E_COPY,E_COPY}},
-{ "sqrt" , {1}, {E_ANY}},
-{ "step" , {1}, {E_ANY,E_COPY}},
-{ "sub_group_broadcast" , {1}, {E_ANY,EX_UINT}},
-{ "sub_group_commit_read_pipe" , {1}, {E_ANY,EX_RESERVEDID}},
-{ "sub_group_commit_write_pipe" , {1}, {E_ANY,EX_RESERVEDID}},
-{ "sub_group_reduce_add" , {1}, {E_ANY}},
-{ "sub_group_reduce_max" , {1}, {E_ANY}},
-{ "sub_group_reduce_min" , {1}, {E_ANY}},
-{ "sub_group_reserve_read_pipe" , {1}, {E_ANY,EX_UINT}},
-{ "sub_group_reserve_write_pipe" , {1}, {E_ANY,EX_UINT}},
-{ "sub_group_scan_exclusive_add" , {1}, {E_ANY}},
-{ "sub_group_scan_exclusive_max" , {1}, {E_ANY}},
-{ "sub_group_scan_exclusive_min" , {1}, {E_ANY}},
-{ "sub_group_scan_inclusive_add" , {1}, {E_ANY}},
-{ "sub_group_scan_inclusive_max" , {1}, {E_ANY}},
-{ "sub_group_scan_inclusive_min" , {1}, {E_ANY}},
-{ "sub_sat" , {1}, {E_ANY,E_COPY}},
-{ "tan" , {1}, {E_ANY}},
-{ "tanh" , {1}, {E_ANY}},
-{ "tanpi" , {1}, {E_ANY}},
-{ "tgamma" , {1}, {E_ANY}},
-{ "trunc" , {1}, {E_ANY}},
-{ "upsample" , {1}, {E_ANY,E_MAKEBASE_UNS}},
-{ "vec_step" , {1}, {E_ANY}},
-{ "vstore" , {3}, {E_POINTEE,EX_SIZET,E_ANY}},
-{ "vstore16" , {3}, {E_V16_OF_POINTEE,EX_SIZET,E_ANY}},
-{ "vstore2" , {3}, {E_V2_OF_POINTEE,EX_SIZET,E_ANY}},
-{ "vstore3" , {3}, {E_V3_OF_POINTEE,EX_SIZET,E_ANY}},
-{ "vstore4" , {3}, {E_V4_OF_POINTEE,EX_SIZET,E_ANY}},
-{ "vstore8" , {3}, {E_V8_OF_POINTEE,EX_SIZET,E_ANY}},
-{ "work_group_commit_read_pipe" , {1}, {E_ANY,EX_RESERVEDID}},
-{ "work_group_commit_write_pipe" , {1}, {E_ANY,EX_RESERVEDID}},
-{ "work_group_reduce_add" , {1}, {E_ANY}},
-{ "work_group_reduce_max" , {1}, {E_ANY}},
-{ "work_group_reduce_min" , {1}, {E_ANY}},
-{ "work_group_reserve_read_pipe" , {1}, {E_ANY,EX_UINT}},
-{ "work_group_reserve_write_pipe" , {1}, {E_ANY,EX_UINT}},
-{ "work_group_scan_exclusive_add" , {1}, {E_ANY}},
-{ "work_group_scan_exclusive_max" , {1}, {E_ANY}},
-{ "work_group_scan_exclusive_min" , {1}, {E_ANY}},
-{ "work_group_scan_inclusive_add" , {1}, {E_ANY}},
-{ "work_group_scan_inclusive_max" , {1}, {E_ANY}},
-{ "work_group_scan_inclusive_min" , {1}, {E_ANY}},
-{ "write_imagef" , {1}, {E_ANY,E_IMAGECOORDS,EX_FLOAT4}},
-{ "write_imagei" , {1}, {E_ANY,E_IMAGECOORDS,EX_INTV4}},
-{ "write_imageui" , {1}, {E_ANY,E_IMAGECOORDS,EX_UINTV4}},
-{ "ncos" , {1}, {E_ANY} },
-{ "nexp2" , {1}, {E_ANY} },
-{ "nfma" , {1}, {E_ANY, E_COPY, E_COPY} },
-{ "nlog2" , {1}, {E_ANY} },
-{ "nrcp" , {1}, {E_ANY} },
-{ "nrsqrt" , {1}, {E_ANY} },
-{ "nsin" , {1}, {E_ANY} },
-{ "nsqrt" , {1}, {E_ANY} },
-{ "ftz" , {1}, {E_ANY} },
-{ "fldexp" , {1}, {E_ANY, EX_UINT} },
-{ "class" , {1}, {E_ANY, EX_UINT} },
-{ "rcbrt" , {1}, {E_ANY} },
+ {"", {0}, {0}},
+ {"abs", {1}, {E_ANY}},
+ {"abs_diff", {1}, {E_ANY, E_COPY}},
+ {"acos", {1}, {E_ANY}},
+ {"acosh", {1}, {E_ANY}},
+ {"acospi", {1}, {E_ANY}},
+ {"add_sat", {1}, {E_ANY, E_COPY}},
+ {"all", {1}, {E_ANY}},
+ {"any", {1}, {E_ANY}},
+ {"asin", {1}, {E_ANY}},
+ {"asinh", {1}, {E_ANY}},
+ {"asinpi", {1}, {E_ANY}},
+ {"async_work_group_copy",
+ {1},
+ {E_ANY, E_CONSTPTR_SWAPGL, EX_SIZET, EX_EVENT}},
+ {"async_work_group_strided_copy",
+ {1},
+ {E_ANY, E_CONSTPTR_SWAPGL, EX_SIZET, EX_SIZET, EX_EVENT}},
+ {"atan", {1}, {E_ANY}},
+ {"atan2", {1}, {E_ANY, E_COPY}},
+ {"atan2pi", {1}, {E_ANY, E_COPY}},
+ {"atanh", {1}, {E_ANY}},
+ {"atanpi", {1}, {E_ANY}},
+ {"atomic_add", {1}, {E_VLTLPTR_ANY, E_POINTEE}},
+ {"atomic_and", {1}, {E_VLTLPTR_ANY, E_POINTEE}},
+ {"atomic_cmpxchg", {1}, {E_VLTLPTR_ANY, E_POINTEE, E_POINTEE}},
+ {"atomic_dec", {1}, {E_VLTLPTR_ANY}},
+ {"atomic_inc", {1}, {E_VLTLPTR_ANY}},
+ {"atomic_max", {1}, {E_VLTLPTR_ANY, E_POINTEE}},
+ {"atomic_min", {1}, {E_VLTLPTR_ANY, E_POINTEE}},
+ {"atomic_or", {1}, {E_VLTLPTR_ANY, E_POINTEE}},
+ {"atomic_sub", {1}, {E_VLTLPTR_ANY, E_POINTEE}},
+ {"atomic_xchg", {1}, {E_VLTLPTR_ANY, E_POINTEE}},
+ {"atomic_xor", {1}, {E_VLTLPTR_ANY, E_POINTEE}},
+ {"bitselect", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"cbrt", {1}, {E_ANY}},
+ {"ceil", {1}, {E_ANY}},
+ {"clamp", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"clz", {1}, {E_ANY}},
+ {"commit_read_pipe", {1}, {E_ANY, EX_RESERVEDID}},
+ {"commit_write_pipe", {1}, {E_ANY, EX_RESERVEDID}},
+ {"copysign", {1}, {E_ANY, E_COPY}},
+ {"cos", {1}, {E_ANY}},
+ {"cosh", {1}, {E_ANY}},
+ {"cospi", {1}, {E_ANY}},
+ {"cross", {1}, {E_ANY, E_COPY}},
+ {"ctz", {1}, {E_ANY}},
+ {"degrees", {1}, {E_ANY}},
+ {"distance", {1}, {E_ANY, E_COPY}},
+ {"divide", {1}, {E_ANY, E_COPY}},
+ {"dot", {1}, {E_ANY, E_COPY}},
+ {"erf", {1}, {E_ANY}},
+ {"erfc", {1}, {E_ANY}},
+ {"exp", {1}, {E_ANY}},
+ {"exp10", {1}, {E_ANY}},
+ {"exp2", {1}, {E_ANY}},
+ {"expm1", {1}, {E_ANY}},
+ {"fabs", {1}, {E_ANY}},
+ {"fast_distance", {1}, {E_ANY, E_COPY}},
+ {"fast_length", {1}, {E_ANY}},
+ {"fast_normalize", {1}, {E_ANY}},
+ {"fdim", {1}, {E_ANY, E_COPY}},
+ {"floor", {1}, {E_ANY}},
+ {"fma", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"fmax", {1}, {E_ANY, E_COPY}},
+ {"fmin", {1}, {E_ANY, E_COPY}},
+ {"fmod", {1}, {E_ANY, E_COPY}},
+ {"fract", {2}, {E_POINTEE, E_ANY}},
+ {"frexp", {1, 2}, {E_ANY, E_ANY}},
+ {"get_image_array_size", {1}, {E_ANY}},
+ {"get_image_channel_data_type", {1}, {E_ANY}},
+ {"get_image_channel_order", {1}, {E_ANY}},
+ {"get_image_dim", {1}, {E_ANY}},
+ {"get_image_height", {1}, {E_ANY}},
+ {"get_image_width", {1}, {E_ANY}},
+ {"get_pipe_max_packets", {1}, {E_ANY}},
+ {"get_pipe_num_packets", {1}, {E_ANY}},
+ {"hadd", {1}, {E_ANY, E_COPY}},
+ {"hypot", {1}, {E_ANY, E_COPY}},
+ {"ilogb", {1}, {E_ANY}},
+ {"isequal", {1}, {E_ANY, E_COPY}},
+ {"isfinite", {1}, {E_ANY}},
+ {"isgreater", {1}, {E_ANY, E_COPY}},
+ {"isgreaterequal", {1}, {E_ANY, E_COPY}},
+ {"isinf", {1}, {E_ANY}},
+ {"isless", {1}, {E_ANY, E_COPY}},
+ {"islessequal", {1}, {E_ANY, E_COPY}},
+ {"islessgreater", {1}, {E_ANY, E_COPY}},
+ {"isnan", {1}, {E_ANY}},
+ {"isnormal", {1}, {E_ANY}},
+ {"isnotequal", {1}, {E_ANY, E_COPY}},
+ {"isordered", {1}, {E_ANY, E_COPY}},
+ {"isunordered", {1}, {E_ANY, E_COPY}},
+ {"ldexp", {1}, {E_ANY, E_SETBASE_I32}},
+ {"length", {1}, {E_ANY}},
+ {"lgamma", {1}, {E_ANY}},
+ {"lgamma_r", {1, 2}, {E_ANY, E_ANY}},
+ {"log", {1}, {E_ANY}},
+ {"log10", {1}, {E_ANY}},
+ {"log1p", {1}, {E_ANY}},
+ {"log2", {1}, {E_ANY}},
+ {"logb", {1}, {E_ANY}},
+ {"mad", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"mad24", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"mad_hi", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"mad_sat", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"max", {1}, {E_ANY, E_COPY}},
+ {"maxmag", {1}, {E_ANY, E_COPY}},
+ {"min", {1}, {E_ANY, E_COPY}},
+ {"minmag", {1}, {E_ANY, E_COPY}},
+ {"mix", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"modf", {2}, {E_POINTEE, E_ANY}},
+ {"mul24", {1}, {E_ANY, E_COPY}},
+ {"mul_hi", {1}, {E_ANY, E_COPY}},
+ {"nan", {1}, {E_ANY}},
+ {"nextafter", {1}, {E_ANY, E_COPY}},
+ {"normalize", {1}, {E_ANY}},
+ {"popcount", {1}, {E_ANY}},
+ {"pow", {1}, {E_ANY, E_COPY}},
+ {"__pow_fast", {1}, {E_ANY, E_COPY}},
+ {"pown", {1}, {E_ANY, E_SETBASE_I32}},
+ {"__pown_fast", {1}, {E_ANY, E_SETBASE_I32}},
+ {"powr", {1}, {E_ANY, E_COPY}},
+ {"__powr_fast", {1}, {E_ANY, E_COPY}},
+ {"prefetch", {1}, {E_CONSTPTR_ANY, EX_SIZET}},
+ {"radians", {1}, {E_ANY}},
+ {"recip", {1}, {E_ANY}},
+ {"remainder", {1}, {E_ANY, E_COPY}},
+ {"remquo", {1, 3}, {E_ANY, E_COPY, E_ANY}},
+ {"reserve_read_pipe", {1}, {E_ANY, EX_UINT}},
+ {"reserve_write_pipe", {1}, {E_ANY, EX_UINT}},
+ {"rhadd", {1}, {E_ANY, E_COPY}},
+ {"rint", {1}, {E_ANY}},
+ {"rootn", {1}, {E_ANY, E_SETBASE_I32}},
+ {"__rootn_fast", {1}, {E_ANY, E_SETBASE_I32}},
+ {"rotate", {1}, {E_ANY, E_COPY}},
+ {"round", {1}, {E_ANY}},
+ {"rsqrt", {1}, {E_ANY}},
+ {"select", {1, 3}, {E_ANY, E_COPY, E_ANY}},
+ {"shuffle", {1, 2}, {E_ANY, E_ANY}},
+ {"shuffle2", {1, 3}, {E_ANY, E_COPY, E_ANY}},
+ {"sign", {1}, {E_ANY}},
+ {"signbit", {1}, {E_ANY}},
+ {"sin", {1}, {E_ANY}},
+ {"sincos", {2}, {E_POINTEE, E_ANY}},
+ {"sinh", {1}, {E_ANY}},
+ {"sinpi", {1}, {E_ANY}},
+ {"smoothstep", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"sqrt", {1}, {E_ANY}},
+ {"step", {1}, {E_ANY, E_COPY}},
+ {"sub_group_broadcast", {1}, {E_ANY, EX_UINT}},
+ {"sub_group_commit_read_pipe", {1}, {E_ANY, EX_RESERVEDID}},
+ {"sub_group_commit_write_pipe", {1}, {E_ANY, EX_RESERVEDID}},
+ {"sub_group_reduce_add", {1}, {E_ANY}},
+ {"sub_group_reduce_max", {1}, {E_ANY}},
+ {"sub_group_reduce_min", {1}, {E_ANY}},
+ {"sub_group_reserve_read_pipe", {1}, {E_ANY, EX_UINT}},
+ {"sub_group_reserve_write_pipe", {1}, {E_ANY, EX_UINT}},
+ {"sub_group_scan_exclusive_add", {1}, {E_ANY}},
+ {"sub_group_scan_exclusive_max", {1}, {E_ANY}},
+ {"sub_group_scan_exclusive_min", {1}, {E_ANY}},
+ {"sub_group_scan_inclusive_add", {1}, {E_ANY}},
+ {"sub_group_scan_inclusive_max", {1}, {E_ANY}},
+ {"sub_group_scan_inclusive_min", {1}, {E_ANY}},
+ {"sub_sat", {1}, {E_ANY, E_COPY}},
+ {"tan", {1}, {E_ANY}},
+ {"tanh", {1}, {E_ANY}},
+ {"tanpi", {1}, {E_ANY}},
+ {"tgamma", {1}, {E_ANY}},
+ {"trunc", {1}, {E_ANY}},
+ {"upsample", {1}, {E_ANY, E_MAKEBASE_UNS}},
+ {"vec_step", {1}, {E_ANY}},
+ {"vstore", {3}, {E_POINTEE, EX_SIZET, E_ANY}},
+ {"vstore16", {3}, {E_V16_OF_POINTEE, EX_SIZET, E_ANY}},
+ {"vstore2", {3}, {E_V2_OF_POINTEE, EX_SIZET, E_ANY}},
+ {"vstore3", {3}, {E_V3_OF_POINTEE, EX_SIZET, E_ANY}},
+ {"vstore4", {3}, {E_V4_OF_POINTEE, EX_SIZET, E_ANY}},
+ {"vstore8", {3}, {E_V8_OF_POINTEE, EX_SIZET, E_ANY}},
+ {"work_group_commit_read_pipe", {1}, {E_ANY, EX_RESERVEDID}},
+ {"work_group_commit_write_pipe", {1}, {E_ANY, EX_RESERVEDID}},
+ {"work_group_reduce_add", {1}, {E_ANY}},
+ {"work_group_reduce_max", {1}, {E_ANY}},
+ {"work_group_reduce_min", {1}, {E_ANY}},
+ {"work_group_reserve_read_pipe", {1}, {E_ANY, EX_UINT}},
+ {"work_group_reserve_write_pipe", {1}, {E_ANY, EX_UINT}},
+ {"work_group_scan_exclusive_add", {1}, {E_ANY}},
+ {"work_group_scan_exclusive_max", {1}, {E_ANY}},
+ {"work_group_scan_exclusive_min", {1}, {E_ANY}},
+ {"work_group_scan_inclusive_add", {1}, {E_ANY}},
+ {"work_group_scan_inclusive_max", {1}, {E_ANY}},
+ {"work_group_scan_inclusive_min", {1}, {E_ANY}},
+ {"write_imagef", {1}, {E_ANY, E_IMAGECOORDS, EX_FLOAT4}},
+ {"write_imagei", {1}, {E_ANY, E_IMAGECOORDS, EX_INTV4}},
+ {"write_imageui", {1}, {E_ANY, E_IMAGECOORDS, EX_UINTV4}},
+ {"ncos", {1}, {E_ANY}},
+ {"nexp2", {1}, {E_ANY}},
+ {"nfma", {1}, {E_ANY, E_COPY, E_COPY}},
+ {"nlog2", {1}, {E_ANY}},
+ {"nrcp", {1}, {E_ANY}},
+ {"nrsqrt", {1}, {E_ANY}},
+ {"nsin", {1}, {E_ANY}},
+ {"nsqrt", {1}, {E_ANY}},
+ {"ftz", {1}, {E_ANY}},
+ {"fldexp", {1}, {E_ANY, EX_UINT}},
+ {"class", {1}, {E_ANY, EX_UINT}},
+ {"rcbrt", {1}, {E_ANY}},
};
// Library functions with unmangled name.
``````````
</details>
https://github.com/llvm/llvm-project/pull/182135
More information about the llvm-commits
mailing list