LLVM 20.0.0git
|
Provides info so a possible vectorization of a function can be computed. More...
#include "llvm/Analysis/TargetLibraryInfo.h"
Public Member Functions | |
VecDesc ()=delete | |
VecDesc (StringRef ScalarFnName, StringRef VectorFnName, ElementCount VectorizationFactor, bool Masked, StringRef VABIPrefix) | |
StringRef | getScalarFnName () const |
StringRef | getVectorFnName () const |
ElementCount | getVectorizationFactor () const |
bool | isMasked () const |
StringRef | getVABIPrefix () const |
std::string | getVectorFunctionABIVariantString () const |
Returns a vector function ABI variant string on the form: ZGV<isa><mask><vlen><vparams><scalarname>(<vectorname>) | |
Provides info so a possible vectorization of a function can be computed.
Function 'VectorFnName' is equivalent to 'ScalarFnName' vectorized by a factor 'VectorizationFactor'. The VABIPrefix string holds information about isa, mask, vlen, and vparams so a scalar-to-vector mapping of the form: ZGV<isa><mask><vlen><vparams><scalarname>(<vectorname>) can be constructed where:
<isa> = "_LLVM_" <mask> = "M" if masked, "N" if no mask. <vlen> = Number of concurrent lanes, stored in the VectorizationFactor
field of the VecDesc
struct. If the number of lanes is scalable then 'x' is printed instead. <vparams> = "v", as many as are the numArgs. <scalarname> = the name of the scalar function. <vectorname> = the name of the vector function.
Definition at line 40 of file TargetLibraryInfo.h.
|
delete |
|
inline |
Definition at line 49 of file TargetLibraryInfo.h.
References llvm::Masked.
|
inline |
Definition at line 55 of file TargetLibraryInfo.h.
|
inline |
Definition at line 59 of file TargetLibraryInfo.h.
|
inline |
Definition at line 56 of file TargetLibraryInfo.h.
Referenced by addMappingsFromTLI(), addVariantDeclaration(), llvm::TargetLibraryInfoImpl::getVectorizedFunction(), and replaceWithCallToVeclib().
std::string VecDesc::getVectorFunctionABIVariantString | ( | ) | const |
Returns a vector function ABI variant string on the form: ZGV<isa><mask><vlen><vparams><scalarname>(<vectorname>)
Definition at line 51 of file TargetLibraryInfo.cpp.
References assert(), llvm::StringRef::empty(), and llvm::raw_svector_ostream::str().
Referenced by addMappingsFromTLI(), addVariantDeclaration(), and replaceWithCallToVeclib().
|
inline |
Definition at line 57 of file TargetLibraryInfo.h.
|
inline |
Definition at line 58 of file TargetLibraryInfo.h.
References llvm::Masked.