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

Alkis Evlogimenos alkis at cs.uiuc.edu
Sat Jun 12 14:25:16 PDT 2004


Changes in directory llvm/lib/VMCore:

Verifier.cpp updated: 1.108 -> 1.109
IntrinsicLowering.cpp updated: 1.16 -> 1.17
Function.cpp updated: 1.71 -> 1.72

---
Log message:

Add the isunordered intrinsic.


---
Diffs of the changes:  (+18 -1)

Index: llvm/lib/VMCore/Verifier.cpp
diff -u llvm/lib/VMCore/Verifier.cpp:1.108 llvm/lib/VMCore/Verifier.cpp:1.109
--- llvm/lib/VMCore/Verifier.cpp:1.108	Thu Jun 10 21:29:43 2004
+++ llvm/lib/VMCore/Verifier.cpp	Sat Jun 12 14:18:54 2004
@@ -688,7 +688,7 @@
     break;
   }
 
-  case Intrinsic::isnan: 
+  case Intrinsic::isnan:
     Assert1(FT->getNumParams() == 1 && FT->getParamType(0)->isFloatingPoint(),
             "Illegal prototype for llvm.isnan", IF);
     Assert1(FT->getReturnType() == Type::BoolTy,
@@ -696,6 +696,16 @@
     NumArgs = 1;
     break;
 
+  case Intrinsic::isunordered:
+    Assert1(FT->getNumParams() == 2 &&
+            FT->getParamType(0)->isFloatingPoint() &&
+            FT->getParamType(1)->isFloatingPoint(),
+            "Illegal prototype for llvm.isunordered", IF);
+    Assert1(FT->getReturnType() == Type::BoolTy,
+            "Illegal prototype for llvm.isunordered", IF);
+    NumArgs = 2;
+    break;
+
   case Intrinsic::setjmp:          NumArgs = 1; break;
   case Intrinsic::longjmp:         NumArgs = 2; break;
   case Intrinsic::sigsetjmp:       NumArgs = 2; break;


Index: llvm/lib/VMCore/IntrinsicLowering.cpp
diff -u llvm/lib/VMCore/IntrinsicLowering.cpp:1.16 llvm/lib/VMCore/IntrinsicLowering.cpp:1.17
--- llvm/lib/VMCore/IntrinsicLowering.cpp:1.16	Thu Jun 10 21:54:02 2004
+++ llvm/lib/VMCore/IntrinsicLowering.cpp	Sat Jun 12 14:18:54 2004
@@ -208,6 +208,12 @@
                     Type::BoolTy, isnanFCache);
     break;
   }
+  case Intrinsic::isunordered: {
+    static Function *isunorderedFCache = 0;
+    ReplaceCallWith("isunordered", CI, CI->op_begin()+1, CI->op_end(),
+                    Type::BoolTy, isunorderedFCache);
+    break;
+  }
   }
   
   assert(CI->use_empty() &&


Index: llvm/lib/VMCore/Function.cpp
diff -u llvm/lib/VMCore/Function.cpp:1.71 llvm/lib/VMCore/Function.cpp:1.72
--- llvm/lib/VMCore/Function.cpp:1.71	Thu Jun 10 21:29:43 2004
+++ llvm/lib/VMCore/Function.cpp	Sat Jun 12 14:18:54 2004
@@ -224,6 +224,7 @@
     break;
   case 'i':
     if (getName() == "llvm.isnan") return Intrinsic::isnan;
+    if (getName() == "llvm.isunordered") return Intrinsic::isunordered;
     break;
   case 'l':
     if (getName() == "llvm.longjmp")  return Intrinsic::longjmp;





More information about the llvm-commits mailing list