diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp b/contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp index 20959cf6948f..bbb7c86d2185 100644 --- a/contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp +++ b/contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp @@ -1149,6 +1149,16 @@ bool TargetLibraryInfoImpl::getLibFunc(const Function &FDecl, return isValidProtoForLibFunc(*FDecl.getFunctionType(), F, *M); } +bool TargetLibraryInfoImpl::getLibFunc(unsigned int Opcode, Type *Ty, + LibFunc &F) const { + // Must be a frem instruction with float or double arguments. + if (Opcode != Instruction::FRem || (!Ty->isDoubleTy() && !Ty->isFloatTy())) + return false; + + F = Ty->isDoubleTy() ? LibFunc_fmod : LibFunc_fmodf; + return true; +} + void TargetLibraryInfoImpl::disableAllFunctions() { memset(AvailableArray, 0, sizeof(AvailableArray)); } |