[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