summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_ceill.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_floorl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_rintl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_roundl.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_truncl.c3
6 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2516304de3..1cf86d7419 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2016-05-27  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #20156]
+	* sysdeps/ieee754/ldbl-128ibm/s_ceill.c (__ceill): Add high part
+	to itself when zero or not finite.
+	* sysdeps/ieee754/ldbl-128ibm/s_floorl.c (__floorl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/s_rintl.c (__rintl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/s_roundl.c (__roundl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/s_truncl.c (__truncl): Likewise.
+
 2016-05-26  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #20153]
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_ceill.c b/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
index 635fddc633..71f56233f9 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
@@ -52,6 +52,9 @@ __ceill (long double x)
 	  ldbl_canonicalize_int (&xh, &xl);
 	}
     }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
 
   return ldbl_pack (xh, xl);
 }
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_floorl.c b/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
index a1469646b0..61ac568c60 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
@@ -52,6 +52,9 @@ __floorl (long double x)
 	  ldbl_canonicalize_int (&xh, &xl);
 	}
     }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
 
   return ldbl_pack (xh, xl);
 }
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_rintl.c b/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
index e4af01c9a0..f7ff673ceb 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
@@ -119,6 +119,9 @@ __rintl (long double x)
       fesetround (save_round);
 #endif
     }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
 
   return ldbl_pack (xh, xl);
 }
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_roundl.c b/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
index b01510fef3..2d75eb0ca8 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
@@ -77,6 +77,9 @@ __roundl (long double x)
 	  ldbl_canonicalize_int (&xh, &xl);
 	}
     }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
 
   return ldbl_pack (xh, xl);
 }
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_truncl.c b/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
index b7d4bb5956..a2c60a89f4 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
@@ -52,6 +52,9 @@ __truncl (long double x)
 	  ldbl_canonicalize_int (&xh, &xl);
 	}
     }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
 
   return ldbl_pack (xh, xl);
 }