[llvm-commits] CVS: llvm/lib/VMCore/Function.cpp Verifier.cpp

Chris Lattner lattner at cs.uiuc.edu
Wed Aug 6 15:09:01 PDT 2003


Changes in directory llvm/lib/VMCore:

Function.cpp updated: 1.40 -> 1.41
Verifier.cpp updated: 1.52 -> 1.53

---
Log message:

Add a bunch of new Alpha Intrinsics for Rahul Joshi


---
Diffs of the changes:

Index: llvm/lib/VMCore/Function.cpp
diff -u llvm/lib/VMCore/Function.cpp:1.40 llvm/lib/VMCore/Function.cpp:1.41
--- llvm/lib/VMCore/Function.cpp:1.40	Mon Jul 28 16:20:57 2003
+++ llvm/lib/VMCore/Function.cpp	Wed Aug  6 15:08:23 2003
@@ -163,12 +163,36 @@
       getName()[1] != 'l' || getName()[2] != 'v' || getName()[3] != 'm')
     return 0;  // All intrinsics start with 'llvm.'
   
+  // a table of all Alpha intrinsic functions
+  struct {
+   std::string name;  // The name of the intrinsic 
+   unsigned id;       // Its ID number
+  } alpha_intrinsics[] = {
+     { "llvm.alpha.ctlz",      LLVMIntrinsic::alpha_ctlz },
+     { "llvm.alpha.cttz",      LLVMIntrinsic::alpha_cttz },
+     { "llvm.alpha.ctpop",     LLVMIntrinsic::alpha_ctpop },
+     { "llvm.alpha.umulh",     LLVMIntrinsic::alpha_umulh },
+     { "llvm.alpha.vecop",     LLVMIntrinsic::alpha_vecop },
+     { "llvm.alpha.pup",       LLVMIntrinsic::alpha_pup },
+     { "llvm.alpha.bytezap",   LLVMIntrinsic::alpha_bytezap },
+     { "llvm.alpha.bytemanip", LLVMIntrinsic::alpha_bytemanip },
+     { "llvm.alpha.dfp_bop",   LLVMIntrinsic::alpha_dfpbop }, 
+     { "llvm.alpha.dfp_uop",   LLVMIntrinsic::alpha_dfpuop },
+     { "llvm.alpha.unordered", LLVMIntrinsic::alpha_unordered },
+     { "llvm.alpha.uqtodfp",   LLVMIntrinsic::alpha_uqtodfp },
+     { "llvm.alpha.uqtosfp",   LLVMIntrinsic::alpha_uqtosfp },
+     { "llvm.alpha.dfptosq",   LLVMIntrinsic::alpha_dfptosq },
+     { "llvm.alpha.sfptosq",   LLVMIntrinsic::alpha_sfptosq },
+  };
+  const unsigned num_alpha_intrinsics = 
+                 sizeof(alpha_intrinsics) / sizeof(*alpha_intrinsics);
+
   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;
+    for (unsigned i = 0; i < num_alpha_intrinsics; ++i) {
+       if (getName() == alpha_intrinsics[i].name)
+         return alpha_intrinsics[i].id;
+    }
     break;
   case 'l':
     if (getName() == "llvm.longjmp")  return LLVMIntrinsic::longjmp;


Index: llvm/lib/VMCore/Verifier.cpp
diff -u llvm/lib/VMCore/Verifier.cpp:1.52 llvm/lib/VMCore/Verifier.cpp:1.53
--- llvm/lib/VMCore/Verifier.cpp:1.52	Mon Jul 28 16:20:57 2003
+++ llvm/lib/VMCore/Verifier.cpp	Wed Aug  6 15:08:23 2003
@@ -522,10 +522,21 @@
   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::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::alpha_vecop:     NumArgs = 4; break;
+  case LLVMIntrinsic::alpha_pup:       NumArgs = 3; break;
+  case LLVMIntrinsic::alpha_bytezap:   NumArgs = 2; break;
+  case LLVMIntrinsic::alpha_bytemanip: NumArgs = 3; break;
+  case LLVMIntrinsic::alpha_dfpbop:    NumArgs = 3; break;
+  case LLVMIntrinsic::alpha_dfpuop:    NumArgs = 2; break;
+  case LLVMIntrinsic::alpha_unordered: NumArgs = 2; break;
+  case LLVMIntrinsic::alpha_uqtodfp:   NumArgs = 2; break;
+  case LLVMIntrinsic::alpha_uqtosfp:   NumArgs = 2; break;
+  case LLVMIntrinsic::alpha_dfptosq:   NumArgs = 2; break;
+  case LLVMIntrinsic::alpha_sfptosq:   NumArgs = 2; break;
 
   case LLVMIntrinsic::not_intrinsic: 
     assert(0 && "Invalid intrinsic!"); NumArgs = 0; break;





More information about the llvm-commits mailing list