[PATCH] D134719: [AArch64] Enable libm vectorized functions via SLEEF
Daniel Kiss via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 30 02:32:53 PST 2022
danielkiss added inline comments.
================
Comment at: clang/lib/CodeGen/BackendUtil.cpp:296
+ case llvm::Triple::aarch64_be:
+ TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::SLEEFGNUABI);
+ break;
----------------
paulwalker-arm wrote:
> What does `GNUABI` signify? My understanding is the SLEEF functions use the Vector ABI (which is somewhat target neutral?) to construct their name.
>
> Just a thought but to be a bit more target neutral what about splitting `TargetLibraryInfoImpl::SLEEF` based on vector length. So here we'll have
> ```
> TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::SLEEF_VF2_...)
> TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::SLEEF_VF4_...)
> ```
> This way there will be one version of TargetLibraryInfo for SLEEF and different targets can pick and choose based on vectorisation factors.
> What does `GNUABI` signify? My understanding is the SLEEF functions use the Vector ABI (which is somewhat target neutral?) to construct their name.
`GNUABI` comes from the [[ https://sleef.org/additional.xhtml#gnuabi | libsleefgnuabi.so ]]. it is compatible with `libmvec` but has more functions. Normal sleef ABI is different.
I added triplet to `addVectorizableFunctionsFromVecLib` so vectorisation factors per target then can be handled there without bloating the enum.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D134719/new/
https://reviews.llvm.org/D134719
More information about the llvm-commits
mailing list