Initial vectorization support for svml calls (short vector math library).
Differential Revision: https://reviews.llvm.org/D19544 llvm-svn: 277167
This commit is contained in:
parent
a6669a1e05
commit
6731dead22
|
@ -228,7 +228,7 @@ CODEGENOPT(EmitCodeView, 1, 0)
|
|||
ENUM_CODEGENOPT(Inlining, InliningMethod, 2, NoInlining)
|
||||
|
||||
// Vector functions library to use.
|
||||
ENUM_CODEGENOPT(VecLib, VectorLibrary, 1, NoLibrary)
|
||||
ENUM_CODEGENOPT(VecLib, VectorLibrary, 2, NoLibrary)
|
||||
|
||||
/// The default TLS model to use.
|
||||
ENUM_CODEGENOPT(DefaultTLSModel, TLSModel, 2, GeneralDynamicTLSModel)
|
||||
|
|
|
@ -51,8 +51,9 @@ public:
|
|||
};
|
||||
|
||||
enum VectorLibrary {
|
||||
NoLibrary, // Don't use any vector library.
|
||||
Accelerate // Use the Accelerate framework.
|
||||
NoLibrary, // Don't use any vector library.
|
||||
Accelerate, // Use the Accelerate framework.
|
||||
SVML // Intel short vector math library.
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -263,6 +263,9 @@ static TargetLibraryInfoImpl *createTLII(llvm::Triple &TargetTriple,
|
|||
case CodeGenOptions::Accelerate:
|
||||
TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::Accelerate);
|
||||
break;
|
||||
case CodeGenOptions::SVML:
|
||||
TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::SVML);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -459,6 +459,8 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
|
|||
StringRef Name = A->getValue();
|
||||
if (Name == "Accelerate")
|
||||
Opts.setVecLib(CodeGenOptions::Accelerate);
|
||||
else if (Name == "SVML")
|
||||
Opts.setVecLib(CodeGenOptions::SVML);
|
||||
else if (Name == "none")
|
||||
Opts.setVecLib(CodeGenOptions::NoLibrary);
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue