Blame SOURCES/glibc-rh731833-libm-5.patch

147e83
From 987322bc0b170570a7bd539480252453fcc7a6f5 Mon Sep 17 00:00:00 2001
147e83
From: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
147e83
Date: Fri, 29 Mar 2013 18:15:28 -0500
147e83
Subject: [PATCH 23/42] PowerPC: remove branch prediction from rint
147e83
 implementation
147e83
147e83
The branch prediction hints is actually hurts performance in this case.
147e83
The assembly implementation make two assumptions: 1. 'fabs (x) < 2^52'
147e83
is unlikely and 2. 'x > 0.0' is unlike (if 1. is true). Since it a
147e83
general floating point function, expected input is not bounded and then
147e83
it is better to let the hardware handle the branches.
147e83
147e83
(backported from commit 60c414c346a1d5ef0510ffbdc0ab75f288ee4d3f)
147e83
147e83
This backport does not include the benchmark tests from the original
147e83
commit.
147e83
---
147e83
 sysdeps/powerpc/powerpc32/fpu/s_rint.S  | 6 +++---
147e83
 sysdeps/powerpc/powerpc32/fpu/s_rintf.S | 6 +++---
147e83
 sysdeps/powerpc/powerpc64/fpu/s_rint.S  | 6 +++---
147e83
 sysdeps/powerpc/powerpc64/fpu/s_rintf.S | 6 +++---
147e83
 4 files changed, 12 insertions(+), 12 deletions(-)
147e83
147e83
diff --git glibc-2.17-c758a686/sysdeps/powerpc/powerpc32/fpu/s_rint.S glibc-2.17-c758a686/sysdeps/powerpc/powerpc32/fpu/s_rint.S
147e83
index 0ab9e6c..c28e7f6 100644
147e83
--- glibc-2.17-c758a686/sysdeps/powerpc/powerpc32/fpu/s_rint.S
147e83
+++ glibc-2.17-c758a686/sysdeps/powerpc/powerpc32/fpu/s_rint.S
147e83
@@ -45,14 +45,14 @@ ENTRY (__rint)
147e83
 	fsub	fp12,fp13,fp13	/* generate 0.0  */
147e83
 	fcmpu	cr7,fp0,fp13	/* if (fabs(x) > TWO52)  */
147e83
 	fcmpu	cr6,fp1,fp12	/* if (x > 0.0)  */
147e83
-	bnllr-	cr7
147e83
-	bng-	cr6,.L4
147e83
+	bnllr	cr7
147e83
+	bng	cr6,.L4
147e83
 	fadd	fp1,fp1,fp13	/* x+= TWO52;  */
147e83
 	fsub	fp1,fp1,fp13	/* x-= TWO52;  */
147e83
 	fabs	fp1,fp1		/* if (x == 0.0)  */
147e83
 	blr			/* x = 0.0; */
147e83
 .L4:
147e83
-	bnllr-	cr6		/* if (x < 0.0)  */
147e83
+	bnllr	cr6		/* if (x < 0.0)  */
147e83
 	fsub	fp1,fp1,fp13	/* x-= TWO52;  */
147e83
 	fadd	fp1,fp1,fp13	/* x+= TWO52;  */
147e83
 	fnabs	fp1,fp1		/* if (x == 0.0)  */
147e83
diff --git glibc-2.17-c758a686/sysdeps/powerpc/powerpc32/fpu/s_rintf.S glibc-2.17-c758a686/sysdeps/powerpc/powerpc32/fpu/s_rintf.S
147e83
index ddb47db..69aed9c 100644
147e83
--- glibc-2.17-c758a686/sysdeps/powerpc/powerpc32/fpu/s_rintf.S
147e83
+++ glibc-2.17-c758a686/sysdeps/powerpc/powerpc32/fpu/s_rintf.S
147e83
@@ -41,14 +41,14 @@ ENTRY (__rintf)
147e83
 	fsubs	fp12,fp13,fp13	/* generate 0.0  */
147e83
 	fcmpu	cr7,fp0,fp13	/* if (fabs(x) > TWO23)  */
147e83
 	fcmpu	cr6,fp1,fp12	/* if (x > 0.0)  */
147e83
-	bnllr-	cr7
147e83
-	bng-	cr6,.L4
147e83
+	bnllr	cr7
147e83
+	bng	cr6,.L4
147e83
 	fadds	fp1,fp1,fp13	/* x+= TWO23;  */
147e83
 	fsubs	fp1,fp1,fp13	/* x-= TWO23;  */
147e83
 	fabs	fp1,fp1		/* if (x == 0.0)  */
147e83
 	blr			/* x = 0.0; */
147e83
 .L4:
147e83
-	bnllr-	cr6		/* if (x < 0.0)  */
147e83
+	bnllr	cr6		/* if (x < 0.0)  */
147e83
 	fsubs	fp1,fp1,fp13	/* x-= TWO23;  */
147e83
 	fadds	fp1,fp1,fp13	/* x+= TWO23;  */
147e83
 	fnabs	fp1,fp1		/* if (x == 0.0)  */
147e83
diff --git glibc-2.17-c758a686/sysdeps/powerpc/powerpc64/fpu/s_rint.S glibc-2.17-c758a686/sysdeps/powerpc/powerpc64/fpu/s_rint.S
147e83
index db62405..560905a 100644
147e83
--- glibc-2.17-c758a686/sysdeps/powerpc/powerpc64/fpu/s_rint.S
147e83
+++ glibc-2.17-c758a686/sysdeps/powerpc/powerpc64/fpu/s_rint.S
147e83
@@ -34,14 +34,14 @@ EALIGN (__rint, 4, 0)
147e83
 	fsub	fp12,fp13,fp13	/* generate 0.0  */
147e83
 	fcmpu	cr7,fp0,fp13	/* if (fabs(x) > TWO52)  */
147e83
 	fcmpu	cr6,fp1,fp12	/* if (x > 0.0)  */
147e83
-	bnllr-	cr7
147e83
-	bng-	cr6,.L4
147e83
+	bnllr	cr7
147e83
+	bng	cr6,.L4
147e83
 	fadd	fp1,fp1,fp13	/* x+= TWO52;  */
147e83
 	fsub	fp1,fp1,fp13	/* x-= TWO52;  */
147e83
 	fabs	fp1,fp1		/* if (x == 0.0)  */
147e83
 	blr			/* x = 0.0; */
147e83
 .L4:
147e83
-	bnllr-	cr6		/* if (x < 0.0)  */
147e83
+	bnllr	cr6		/* if (x < 0.0)  */
147e83
 	fsub	fp1,fp1,fp13	/* x-= TWO52;  */
147e83
 	fadd	fp1,fp1,fp13	/* x+= TWO52;  */
147e83
 	fnabs	fp1,fp1		/* if (x == 0.0)  */
147e83
diff --git glibc-2.17-c758a686/sysdeps/powerpc/powerpc64/fpu/s_rintf.S glibc-2.17-c758a686/sysdeps/powerpc/powerpc64/fpu/s_rintf.S
147e83
index 248649d..c120d91 100644
147e83
--- glibc-2.17-c758a686/sysdeps/powerpc/powerpc64/fpu/s_rintf.S
147e83
+++ glibc-2.17-c758a686/sysdeps/powerpc/powerpc64/fpu/s_rintf.S
147e83
@@ -30,14 +30,14 @@ EALIGN (__rintf, 4, 0)
147e83
 	fsubs	fp12,fp13,fp13	/* generate 0.0  */
147e83
 	fcmpu	cr7,fp0,fp13	/* if (fabs(x) > TWO23)  */
147e83
 	fcmpu	cr6,fp1,fp12	/* if (x > 0.0)  */
147e83
-	bnllr-	cr7
147e83
-	bng-	cr6,.L4
147e83
+	bnllr	cr7
147e83
+	bng	cr6,.L4
147e83
 	fadds	fp1,fp1,fp13	/* x+= TWO23;  */
147e83
 	fsubs	fp1,fp1,fp13	/* x-= TWO23;  */
147e83
 	fabs	fp1,fp1		/* if (x == 0.0)  */
147e83
 	blr			/* x = 0.0; */
147e83
 .L4:
147e83
-	bnllr-	cr6		/* if (x < 0.0)  */
147e83
+	bnllr	cr6		/* if (x < 0.0)  */
147e83
 	fsubs	fp1,fp1,fp13	/* x-= TWO23;  */
147e83
 	fadds	fp1,fp1,fp13	/* x+= TWO23;  */
147e83
 	fnabs	fp1,fp1		/* if (x == 0.0)  */
147e83
-- 
147e83
1.7.11.7
147e83