This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[glibc] powerpc: fma using builtins


https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3a16dd780eeba60266d75e4a562536cc0785bc4e

commit 3a16dd780eeba60266d75e4a562536cc0785bc4e
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Mar 20 04:14:28 2019 +0000

    powerpc: fma using builtins
    
    This patch just refactor the assembly implementation to use compiler
    builtins instead.
    
    Checked on powerpc-linux-gnu (built without --with-cpu, with
    --with-cpu=power4 and with --with-cpu=power5+ and --disable-multi-arch),
    powerpc64-linux-gnu (built without --with-cp and with --with-cpu=power5+
    and --disable-multi-arch).
    
    	* sysdeps/powerpc/fpu/s_fma.S: Remove file.
    	* sysdeps/powerpc/fpu/s_fmaf.S: Likewise.
    	* sysdeps/powerpc/fpu/s_fma.c: New file.
    	* sysdeps/powerpc/fpu/s_fmaf.c: Likewise.

Diff:
---
 ChangeLog                                  |  5 +++++
 sysdeps/powerpc/fpu/{s_fma.S => s_fma.c}   | 12 +++++-------
 sysdeps/powerpc/fpu/{s_fmaf.S => s_fmaf.c} | 12 +++++-------
 3 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a4eb322..8a852d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2019-04-17  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+	* sysdeps/powerpc/fpu/s_fma.S: Remove file.
+	* sysdeps/powerpc/fpu/s_fmaf.S: Likewise.
+	* sysdeps/powerpc/fpu/s_fma.c: New file.
+	* sysdeps/powerpc/fpu/s_fmaf.c: Likewise.
+
 	* sysdeps/powerpc/fpu/s_fabs.S: Remove file.
 	* sysdeps/powerpc/fpu/s_fabsf.S: Likewise.
 
diff --git a/sysdeps/powerpc/fpu/s_fma.S b/sysdeps/powerpc/fpu/s_fma.c
similarity index 82%
rename from sysdeps/powerpc/fpu/s_fma.S
rename to sysdeps/powerpc/fpu/s_fma.c
index 92e08eb..688f9ba 100644
--- a/sysdeps/powerpc/fpu/s_fma.S
+++ b/sysdeps/powerpc/fpu/s_fma.c
@@ -1,5 +1,5 @@
 /* Compute x * y + z as ternary operation.  PowerPC version.
-   Copyright (C) 2010-2019 Free Software Foundation, Inc.
+   Copyright (C) 2019 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -19,10 +19,8 @@
 #include <sysdep.h>
 #include <libm-alias-double.h>
 
-ENTRY_TOCLESS(__fma)
-/* double [f1] fma (double [f1] x, double [f2] y, double [f3] z); */
-	fmadd	fp1,fp1,fp2,fp3
-	blr
-END(__fma)
-
+double __fma (double x, double y, double z)
+{
+  return __builtin_fma (x, y, z);
+}
 libm_alias_double (__fma, fma)
diff --git a/sysdeps/powerpc/fpu/s_fmaf.S b/sysdeps/powerpc/fpu/s_fmaf.c
similarity index 82%
rename from sysdeps/powerpc/fpu/s_fmaf.S
rename to sysdeps/powerpc/fpu/s_fmaf.c
index 9579e94..38b59e1 100644
--- a/sysdeps/powerpc/fpu/s_fmaf.S
+++ b/sysdeps/powerpc/fpu/s_fmaf.c
@@ -1,5 +1,5 @@
 /* Compute x * y + z as ternary operation.  PowerPC version.
-   Copyright (C) 2010-2019 Free Software Foundation, Inc.
+   Copyright (C) 2019 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -19,10 +19,8 @@
 #include <sysdep.h>
 #include <libm-alias-float.h>
 
-ENTRY_TOCLESS(__fmaf)
-/* float [f1] fmaf (float [f1] x, float [f2] y, float [f3] z); */
-	fmadds	fp1,fp1,fp2,fp3
-	blr
-END(__fmaf)
-
+float __fmaf (float x, float y, float z)
+{
+  return __builtin_fmaf (x, y, z);
+}
 libm_alias_float (__fma, fma)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]