r220034 - complex long double support for PowerPC

Joerg Sonnenberger joerg at bec.de
Fri Oct 17 04:51:20 PDT 2014


Author: joerg
Date: Fri Oct 17 06:51:19 2014
New Revision: 220034

URL: http://llvm.org/viewvc/llvm-project?rev=220034&view=rev
Log:
complex long double support for PowerPC

Modified:
    cfe/trunk/lib/CodeGen/CGExprComplex.cpp
    cfe/trunk/test/CodeGen/complex-math.c

Modified: cfe/trunk/lib/CodeGen/CGExprComplex.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprComplex.cpp?rev=220034&r1=220033&r2=220034&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprComplex.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprComplex.cpp Fri Oct 17 06:51:19 2014
@@ -615,6 +615,8 @@ ComplexPairTy ComplexExprEmitter::EmitBi
         return EmitComplexBinOpLibCall("__mulsc3", Op);
       case llvm::Type::DoubleTyID:
         return EmitComplexBinOpLibCall("__muldc3", Op);
+      case llvm::Type::PPC_FP128TyID:
+        return EmitComplexBinOpLibCall("__multc3", Op);
       case llvm::Type::X86_FP80TyID:
         return EmitComplexBinOpLibCall("__mulxc3", Op);
       }
@@ -674,6 +676,8 @@ ComplexPairTy ComplexExprEmitter::EmitBi
         return EmitComplexBinOpLibCall("__divsc3", LibCallOp);
       case llvm::Type::DoubleTyID:
         return EmitComplexBinOpLibCall("__divdc3", LibCallOp);
+      case llvm::Type::PPC_FP128TyID:
+        return EmitComplexBinOpLibCall("__divtc3", LibCallOp);
       case llvm::Type::X86_FP80TyID:
         return EmitComplexBinOpLibCall("__divxc3", LibCallOp);
       }

Modified: cfe/trunk/test/CodeGen/complex-math.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/complex-math.c?rev=220034&r1=220033&r2=220034&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/complex-math.c (original)
+++ cfe/trunk/test/CodeGen/complex-math.c Fri Oct 17 06:51:19 2014
@@ -1,6 +1,7 @@
 // RUN: %clang_cc1 %s -O1 -emit-llvm -triple x86_64-unknown-unknown -o - | FileCheck %s --check-prefix=X86
 // RUN: %clang_cc1 %s -O1 -emit-llvm -triple x86_64-pc-win64 -o - | FileCheck %s --check-prefix=X86
 // RUN: %clang_cc1 %s -O1 -emit-llvm -triple i686-unknown-unknown -o - | FileCheck %s --check-prefix=X86
+// RUN: %clang_cc1 %s -O1 -emit-llvm -triple powerpc-unknown-unknown -o - | FileCheck %s --check-prefix=PPC
 
 float _Complex add_float_rr(float a, float b) {
   // X86-LABEL: @add_float_rr(
@@ -335,6 +336,10 @@ long double _Complex mul_long_double_cc(
   // X86-NOT: fmul
   // X86: call {{.*}} @__mulxc3(
   // X86: ret
+  // PPC-LABEL: @mul_long_double_cc(
+  // PPC-NOT: fmul
+  // PPC: call {{.*}} @__multc3(
+  // PPC: ret
   return a * b;
 }
 
@@ -358,6 +363,10 @@ long double _Complex div_long_double_rc(
   // X86-NOT: fdiv
   // X86: call {{.*}} @__divxc3(
   // X86: ret
+  // PPC-LABEL: @div_long_double_rc(
+  // PPC-NOT: fdiv
+  // PPC: call {{.*}} @__divtc3(
+  // PPC: ret
   return a / b;
 }
 long double _Complex div_long_double_cc(long double _Complex a, long double _Complex b) {
@@ -365,6 +374,10 @@ long double _Complex div_long_double_cc(
   // X86-NOT: fdiv
   // X86: call {{.*}} @__divxc3(
   // X86: ret
+  // PPC-LABEL: @div_long_double_cc(
+  // PPC-NOT: fdiv
+  // PPC: call {{.*}} @__divtc3(
+  // PPC: ret
   return a / b;
 }
 





More information about the cfe-commits mailing list