Constant fold sqrtf
authorChris Lattner <sabre@nondot.org>
Sat, 17 Jun 2006 18:17:52 +0000 (18:17 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 17 Jun 2006 18:17:52 +0000 (18:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28853 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/ConstantFolding.cpp

index 3321115c53e21bb9562156880c45ba42f2e9b6b8..7e802ba7dd600835c6ea88c5010dd3a15aacbe47 100644 (file)
@@ -76,7 +76,8 @@ llvm::canConstantFoldCallTo(Function *F) {
     case 'p':
       return Name == "pow";
     case 's':
-      return Name == "sin" || Name == "sinh" || Name == "sqrt";
+      return Name == "sin" || Name == "sinh" || 
+             Name == "sqrt" || Name == "sqrtf";
     case 't':
       return Name == "tan" || Name == "tanh";
     default:
@@ -150,6 +151,8 @@ llvm::ConstantFoldCall(Function *F, const std::vector<Constant*> &Operands) {
             return ConstantFP::get(Ty, sinh(V));
           else if (Name == "sqrt" && V >= 0)
             return ConstantFP::get(Ty, sqrt(V));
+          else if (Name == "sqrtf" && V >= 0)
+            return ConstantFP::get(Ty, sqrt((float)V));
           break;
         case 't':
           if (Name == "tan")