[AArch64] Enable libm vectorized functions via SLEEF
This changeset is modeled after Intel's submission for SVML. 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. * In a separate changeset (for clang), 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 Patch by Stefan Teleman Differential Revision: https://reviews.llvm.org/D53927 llvm-svn: 347510
Showing
- llvm/include/llvm/Analysis/TargetLibraryInfo.h 3 additions, 1 deletionllvm/include/llvm/Analysis/TargetLibraryInfo.h
- llvm/include/llvm/IR/Intrinsics.td 20 additions, 0 deletionsllvm/include/llvm/IR/Intrinsics.td
- llvm/lib/Analysis/TargetLibraryInfo.cpp 154 additions, 4 deletionsllvm/lib/Analysis/TargetLibraryInfo.cpp
- llvm/test/Transforms/LoopVectorize/AArch64/sleef-calls-aarch64.ll 1077 additions, 0 deletions...t/Transforms/LoopVectorize/AArch64/sleef-calls-aarch64.ll
Loading
Please register or sign in to comment