about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc64/power8
diff options
context:
space:
mode:
authorRajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>2017-06-23 10:43:31 +0530
committerRajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>2017-06-23 10:43:31 +0530
commit001b09a6a2176b22bd7524a8329950c1ef98f06f (patch)
tree7db5befcb336b2036b8c6bfba54554b172c01e6b /sysdeps/powerpc/powerpc64/power8
parentc271ff9469dd55896c5110194bb3668e4ddb2708 (diff)
downloadglibc-001b09a6a2176b22bd7524a8329950c1ef98f06f.tar.gz
glibc-001b09a6a2176b22bd7524a8329950c1ef98f06f.tar.xz
glibc-001b09a6a2176b22bd7524a8329950c1ef98f06f.zip
powerpc: Add optimized version of [l]lroundf
This patch makes use of optimized double version of llround for single
precision as both the versions return [long] long type.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/power8')
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S7
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_llroundf.S1
2 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S
index 8bdc162752..1dc5142f6e 100644
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S
+++ b/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S
@@ -35,6 +35,13 @@ END (__llround)
 strong_alias (__llround, __lround)
 weak_alias (__llround, llround)
 weak_alias (__lround, lround)
+/* The double version also works for single-precision as both float and
+   double parameters are passed in 64bit FPRs and both versions are expected
+   to return [long] long type.  */
+strong_alias (__llround, __llroundf)
+weak_alias (__llround, llroundf)
+strong_alias (__lround, __lroundf)
+weak_alias (__lround, lroundf)
 
 #ifdef NO_LONG_DOUBLE
 weak_alias (__llround, llroundl)
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_llroundf.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_llroundf.S
new file mode 100644
index 0000000000..9ea6bd105b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/power8/fpu/s_llroundf.S
@@ -0,0 +1 @@
+/* __lroundf is in s_llround.S.  */