This commit extends D134719 "[AArch64] Enable libm vectorized
functions via SLEEF" with the mappings for the scalable functions.
It also introduces all the necessary changes needed to support masked
interfaces.
Paths
| Differential D146839
[TLI][AArch64] Extend SLEEF vectorized functions mapping with VLA functions ClosedPublic Authored by pawosm01 on Mar 24 2023, 12:19 PM.
Details Summary This commit extends D134719 "[AArch64] Enable libm vectorized It also introduces all the necessary changes needed to support masked
Diff Detail
Event TimelineComment Actions Hi @pawosm01, the title of this patch peaked my interest so I had a look and left some comments. Thanks for working on this. nit: you'll probably want to remove the [PATCH] from the title :)
Comment Actions I'd add note to the documentation too when scalable vectors are used the sleef library is expect to be compiled with it.
pawosm01 retitled this revision from [PATCH] [TLI][AArch64] Extend SLEEF vectorized functions mapping with VLA functions to [TLI][AArch64] Extend SLEEF vectorized functions mapping with VLA functions.Mar 27 2023, 4:00 AM pawosm01 added inline comments.
pawosm01 marked an inline comment as done. Comment Actionsremoved extra spaces that suddenly appeared in two lines. Comment Actions LGTM, thanks for addressing all comments.
This revision is now accepted and ready to land.Mar 28 2023, 2:13 PM Comment Actions LGTM, thanks!
Closed by commit rG6b6f312ccedf: [TLI][AArch64] Extend SLEEF vectorized functions mapping with VLA functions (authored by pawosm01). · Explain WhyMar 29 2023, 5:07 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 508527 llvm/include/llvm/Analysis/TargetLibraryInfo.h
llvm/include/llvm/Analysis/VecFuncs.def
llvm/include/llvm/Analysis/VectorUtils.h
llvm/lib/Analysis/TargetLibraryInfo.cpp
llvm/lib/Analysis/VectorUtils.cpp
llvm/lib/CodeGen/ReplaceWithVeclib.cpp
llvm/lib/Transforms/Utils/InjectTLIMappings.cpp
llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
llvm/test/Transforms/LoopVectorize/AArch64/sleef-calls-aarch64.ll
|
I won't introduce a new argument here, since MASKED is just indicate this interface is scalable so far.
Can we make the declarations less verbose?
e.g.:
#define FIXED(NL) ElementCount::getFixed(NL), false
#define SCALABLE(NL) ElementCount::getScalable(NL), true