summaryrefslogtreecommitdiff
path: root/lib/VMCore
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-07-28 21:20:57 +0000
committerChris Lattner <sabre@nondot.org>2003-07-28 21:20:57 +0000
commit2418b117babb081526784e12abfcbc8b6df0bd39 (patch)
tree29a805c390a9a3f71848a0f06e83b74020306970 /lib/VMCore
parentf4836c754a5b37064d49220e1be97d46a28b9d8b (diff)
downloadllvm-2418b117babb081526784e12abfcbc8b6df0bd39.tar.gz
llvm-2418b117babb081526784e12abfcbc8b6df0bd39.tar.bz2
llvm-2418b117babb081526784e12abfcbc8b6df0bd39.tar.xz
Add support for Alpha intrinsics, contributed by Rahul Joshi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7373 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore')
-rw-r--r--lib/VMCore/Function.cpp6
-rw-r--r--lib/VMCore/Verifier.cpp6
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp
index 89195a34a4..6d78711411 100644
--- a/lib/VMCore/Function.cpp
+++ b/lib/VMCore/Function.cpp
@@ -164,6 +164,12 @@ unsigned Function::getIntrinsicID() const {
return 0; // All intrinsics start with 'llvm.'
switch (getName()[5]) {
+ case 'a':
+ if (getName() == "llvm.alpha.ctlz") return LLVMIntrinsic::alpha_ctlz;
+ if (getName() == "llvm.alpha.cttz") return LLVMIntrinsic::alpha_cttz;
+ if (getName() == "llvm.alpha.ctpop") return LLVMIntrinsic::alpha_ctpop;
+ if (getName() == "llvm.alpha.umulh") return LLVMIntrinsic::alpha_umulh;
+ break;
case 'l':
if (getName() == "llvm.longjmp") return LLVMIntrinsic::longjmp;
break;
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index be839ab168..84556cddc1 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -521,6 +521,12 @@ void Verifier::visitIntrinsicFunctionCall(LLVMIntrinsic::ID ID, CallInst &CI) {
case LLVMIntrinsic::va_copy: NumArgs = 2; break;
case LLVMIntrinsic::setjmp: NumArgs = 1; break;
case LLVMIntrinsic::longjmp: NumArgs = 2; break;
+
+ case LLVMIntrinsic::alpha_ctlz: NumArgs = 1; break;
+ case LLVMIntrinsic::alpha_cttz: NumArgs = 1; break;
+ case LLVMIntrinsic::alpha_ctpop: NumArgs = 1; break;
+ case LLVMIntrinsic::alpha_umulh: NumArgs = 2; break;
+
case LLVMIntrinsic::not_intrinsic:
assert(0 && "Invalid intrinsic!"); NumArgs = 0; break;
}