]> granicus.if.org Git - clang/commitdiff
Implement __builtin_ia32_mulps.
authorAnders Carlsson <andersca@mac.com>
Sun, 9 Dec 2007 21:51:19 +0000 (21:51 +0000)
committerAnders Carlsson <andersca@mac.com>
Sun, 9 Dec 2007 21:51:19 +0000 (21:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44745 91177308-0d34-0410-b5e6-96231b3b80d8

CodeGen/CGBuiltin.cpp

index 14e13e6ffce8d2edc05230e27de4bde32575777b..7f3bd0ad319907719a5cdc2b567ecd1a6bb6386f 100644 (file)
@@ -80,6 +80,15 @@ RValue CodeGenFunction::EmitBuiltinExpr(unsigned BuiltinID, const CallExpr *E) {
       return RValue::get(V);
     }
     
+    if (strcmp(TargetPrefix, "x86") == 0) {
+      if (strcmp(BuiltinName, "__builtin_ia32_mulps") == 0) {
+        llvm::Value *V = Builder.CreateMul(EmitScalarExpr(E->getArg(0)),
+                                           EmitScalarExpr(E->getArg(1)),
+                                           "result");
+        return RValue::get(V);
+      }
+    }
+      
     WarnUnsupported(E, "builtin function");
 
     // Unknown builtin, for now just dump it out and return undef.
@@ -179,6 +188,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(unsigned BuiltinID, const CallExpr *E) {
     llvm::Value *V = llvm::ConstantFP::get(llvm::Type::DoubleTy, f);
     return RValue::get(V);
   }
+    
   }
   
   return RValue::get(0);