diff options
author | Chris Lattner <sabre@nondot.org> | 2005-04-30 03:44:07 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-04-30 03:44:07 +0000 |
commit | 1c636f11181d0c9cd35e29241dda0a78d5b1c896 (patch) | |
tree | 7a643f99ececf1c8837d4c9dd2efe98b54dd6bdd /llvm/lib | |
parent | 4c444fe007320d63ed25a710a0ecded15bdcd171 (diff) | |
download | bcm5719-llvm-1c636f11181d0c9cd35e29241dda0a78d5b1c896.tar.gz bcm5719-llvm-1c636f11181d0c9cd35e29241dda0a78d5b1c896.zip |
Add llvm.sqrt intrinsic, patch contributed by Morten Ofstad
llvm-svn: 21627
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Analysis/BasicAliasAnalysis.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/VMCore/Function.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/VMCore/Verifier.cpp | 10 |
3 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index 7d9e21cb94c..21c6543f754 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -702,7 +702,7 @@ namespace { static const char *DoesntAccessMemoryTable[] = { // LLVM intrinsics: "llvm.frameaddress", "llvm.returnaddress", "llvm.readport", - "llvm.isunordered", + "llvm.isunordered", "llvm.sqrt", "abs", "labs", "llabs", "imaxabs", "fabs", "fabsf", "fabsl", "trunc", "truncf", "truncl", "ldexp", diff --git a/llvm/lib/VMCore/Function.cpp b/llvm/lib/VMCore/Function.cpp index 2672e892c74..6740c6bbb0d 100644 --- a/llvm/lib/VMCore/Function.cpp +++ b/llvm/lib/VMCore/Function.cpp @@ -245,6 +245,7 @@ unsigned Function::getIntrinsicID() const { if (getName() == "llvm.setjmp") return Intrinsic::setjmp; if (getName() == "llvm.sigsetjmp") return Intrinsic::sigsetjmp; if (getName() == "llvm.siglongjmp") return Intrinsic::siglongjmp; + if (getName() == "llvm.sqrt") return Intrinsic::sqrt; break; case 'v': if (getName() == "llvm.va_copy") return Intrinsic::vacopy; diff --git a/llvm/lib/VMCore/Verifier.cpp b/llvm/lib/VMCore/Verifier.cpp index da14c00065e..d7b8f509621 100644 --- a/llvm/lib/VMCore/Verifier.cpp +++ b/llvm/lib/VMCore/Verifier.cpp @@ -723,6 +723,16 @@ void Verifier::visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI) { NumArgs = 2; break; + case Intrinsic::sqrt: + Assert1(FT->getNumParams() == 1, + "Illegal # arguments for intrinsic function!", IF); + Assert1(FT->getParamType(0)->isFloatingPoint(), + "Argument is not a floating point type!", IF); + Assert1(FT->getReturnType() == FT->getParamType(0), + "Return type is not the same as argument type!", IF); + NumArgs = 1; + break; + case Intrinsic::setjmp: NumArgs = 1; break; case Intrinsic::longjmp: NumArgs = 2; break; case Intrinsic::sigsetjmp: NumArgs = 2; break; |