[PATCH] D134719: [AArch64] Enable libm vectorized functions via SLEEF

Daniel Kiss via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 27 01:44:10 PDT 2022


danielkiss created this revision.
danielkiss added reviewers: renatoriolino, hfinkel, ABataev, rnk, chandlerc, rsmith, joel_k_jones, steleman, fpetrogalli, t.p.northover.
Herald added subscribers: ormris, hiraditya, kristof.beyls.
Herald added a project: All.
danielkiss requested review of this revision.
Herald added subscribers: llvm-commits, pcwang-thead, MaskRay.
Herald added a project: LLVM.

It enables trigonometry functions vectorization via SLEEF: http://sleef.org/.

- A new vectorization library enum is added to TargetLibraryInfo.h: SLEEF.
- A new option is added to TargetLibraryInfoImpl - ClVectorLibrary: SLEEF.
- A comprehensive test case is included in this changeset.
- A new vectorization library argument is added to -fveclib: -fveclib=SLEEF.

Trigonometry functions that are vectorized by sleef:
acos
asin
atan
atanh
cos
cosh
exp
exp2
exp10
lgamma
log10
log2
log
sin
sinh
sqrt
tan
tanh
tgamma

Co-authored-by: Stefan Teleman


https://reviews.llvm.org/D134719

Files:
  clang/include/clang/Basic/CodeGenOptions.h
  clang/include/clang/Driver/Options.td
  clang/lib/CodeGen/BackendUtil.cpp
  clang/lib/Driver/ToolChains/Clang.cpp
  clang/test/Driver/autocomplete.c
  llvm/include/llvm/Analysis/TargetLibraryInfo.h
  llvm/include/llvm/Analysis/VecFuncs.def
  llvm/lib/Analysis/TargetLibraryInfo.cpp
  llvm/test/Transforms/LoopVectorize/AArch64/sleef-calls-aarch64.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D134719.463149.patch
Type: text/x-patch
Size: 45512 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220927/fc87a39f/attachment.bin>


More information about the llvm-commits mailing list