summaryrefslogtreecommitdiff
path: root/sysdeps/libm-ieee754/s_llrintl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/libm-ieee754/s_llrintl.c')
-rw-r--r--sysdeps/libm-ieee754/s_llrintl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/libm-ieee754/s_llrintl.c b/sysdeps/libm-ieee754/s_llrintl.c
index d3b9b12d76..2aeaa1e102 100644
--- a/sysdeps/libm-ieee754/s_llrintl.c
+++ b/sysdeps/libm-ieee754/s_llrintl.c
@@ -45,12 +45,12 @@ __llrintl (long double x)
sx = (se >> 15) & 1;
j0 = (se & 0x7fff) - 0x3fff;
- if (j0 < (int32_t) (8 * sizeof (long long int)))
+ if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
{
if (j0 < -1)
return 0;
else if (j0 >= 63)
- result = ((long long int) i0 << (j0 - 31)) | (i1 << (j0 - 63));
+ result = (((long long int) i0 << 32) | i1) << (j0 - 63);
else
{
w = two63[sx] + x;