]> granicus.if.org Git - llvm/commitdiff
Fix typo [NFC]
authorXin Tong <trent.xin.tong@gmail.com>
Sun, 1 Oct 2017 00:07:24 +0000 (00:07 +0000)
committerXin Tong <trent.xin.tong@gmail.com>
Sun, 1 Oct 2017 00:07:24 +0000 (00:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314613 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/ConstantFolding.cpp
test/CodeGen/X86/block-placement.ll

index e88b8f14d54ed4f895a19b95636e915587b30343..ea673da648632a8125c036ae8300ead92358e7cb 100644 (file)
@@ -1435,7 +1435,7 @@ bool llvm::canConstantFoldCallTo(ImmutableCallSite CS, const Function *F) {
     return Name == "fabs" || Name == "floor" || Name == "fmod" ||
            Name == "fabsf" || Name == "floorf" || Name == "fmodf";
   case 'l':
-    return Name == "log" || Name == "log10" || Name == "logf" ||
+    return Name == "log" || Name == "log10" || Name == "logf" || Name == "loll" ||
            Name == "log10f";
   case 'p':
     return Name == "pow" || Name == "powf";
@@ -1492,7 +1492,9 @@ Constant *GetConstantFoldFPValue(double V, Type *Ty) {
     return ConstantFP::get(Ty->getContext(), APFloat((float)V));
   if (Ty->isDoubleTy())
     return ConstantFP::get(Ty->getContext(), APFloat(V));
-  llvm_unreachable("Can only constant fold half/float/double");
+  if (Ty->isX86_FP80Ty())
+    return ConstantFP::get(Ty->getContext(), APFloat(APFloat::x87DoubleExtended(), (long double)V));
+  llvm_unreachable("Can only constant fold half/float/double/long double");
 }
 
 /// Clear the floating-point exception state.
@@ -1602,7 +1604,7 @@ Constant *ConstantFoldScalarCall(StringRef Name, unsigned IntrinsicID, Type *Ty,
         return ConstantInt::get(Ty->getContext(), Val.bitcastToAPInt());
       }
 
-      if (!Ty->isHalfTy() && !Ty->isFloatTy() && !Ty->isDoubleTy())
+      if (!Ty->isHalfTy() && !Ty->isFloatTy() && !Ty->isDoubleTy() && !Ty->isX86_FP80Ty())
         return nullptr;
 
       if (IntrinsicID == Intrinsic::round) {
@@ -1736,6 +1738,7 @@ Constant *ConstantFoldScalarCall(StringRef Name, unsigned IntrinsicID, Type *Ty,
       case 'l':
         if ((Name == "log" && V > 0 && TLI->has(LibFunc_log)) ||
             (Name == "logf" && V > 0 && TLI->has(LibFunc_logf)) ||
+            (Name == "logl" && V > 0 && TLI->has(LibFunc_logl)) ||
             (Name == "__log_finite" && V > 0 &&
               TLI->has(LibFunc_log_finite)) ||
             (Name == "__logf_finite" && V > 0 &&
index b3f6534d14b3bfcd9c05de16c22e9442b83a2a3d..d4948892a31da24554369bc6d1258dcb548fc55b 100644 (file)
@@ -943,7 +943,7 @@ define void @benchmark_heapsort(i32 %n, double* nocapture %ra) {
 ; 2) The exiting edge from the loop which is rotated to be laid out at the
 ;    bottom of the loop needs to be exiting into the nearest enclosing loop (to
 ;    which there is an exit). Otherwise, we force that enclosing loop into
-;    strange layouts that are siginificantly less efficient, often times maing
+;    strange layouts that are siginificantly less efficient, often times making
 ;    it discontiguous.
 ;
 ; CHECK-LABEL: @benchmark_heapsort