Skip to content

Commit

Permalink
* math/test-misc.c (main): Add tests for rounding long double
Browse files Browse the repository at this point in the history
values close to smallest double denormalized value to double.
	* soft-fp/op-common.h (FP_TRUNC): Correct off-by-one error in
	condition for truncating to 0.  Set sticky bit for such
	truncation.
2007-05-03  Jakub Jelinek  <jakub@redhat.com>

	* math/test-misc.c (main): Add tests for rounding long double
	values close to smallest double denormalized value to double.

2007-04-30  Joseph Myers  <joseph@codesourcery.com>

	* soft-fp/op-common.h (FP_TRUNC): Correct off-by-one error in
	condition for truncating to 0.  Set sticky bit for such
	truncation.
  • Loading branch information
Jakub Jelinek committed May 3, 2007
1 parent 57433ed commit 002f0b0
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
11 changes: 11 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
2007-05-03 Jakub Jelinek <jakub@redhat.com>

* math/test-misc.c (main): Add tests for rounding long double
values close to smallest double denormalized value to double.

2007-04-30 Joseph Myers <joseph@codesourcery.com>

* soft-fp/op-common.h (FP_TRUNC): Correct off-by-one error in
condition for truncating to 0. Set sticky bit for such
truncation.

2007-05-02 Jakub Jelinek <jakub@redhat.com>

* stdio-common/vfprintf.c (process_string_arg): Use a VLA rather than
Expand Down
17 changes: 17 additions & 0 deletions math/test-misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1235,5 +1235,22 @@ main (void)
}
#endif

#if !defined NO_LONG_DOUBLE && LDBL_MANT_DIG >= DBL_MANT_DIG + 4
volatile long double ld5 = nextafter (0.0, 1.0) / 16.0L;
volatile double d5;
(void) &ld5;
int i;
for (i = 0; i <= 32; i++)
{
d5 = ld5 * i;
(void) &d5;
if (d5 != (i <= 8 ? 0 : i < 24 ? 1 : 2) * nextafter (0.0, 1.0))
{
printf ("%La incorrectly rounded to %a\n", ld5 * i, d5);
result = 1;
}
}
#endif

return result;
}
7 changes: 5 additions & 2 deletions soft-fp/op-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -1211,8 +1211,11 @@ do { \
{ \
if (D##_e <= 0) \
{ \
if (D##_e <= 1 - _FP_FRACBITS_##dfs) \
_FP_FRAC_SET_##swc(S, _FP_ZEROFRAC_##swc); \
if (D##_e < 1 - _FP_FRACBITS_##dfs) \
{ \
_FP_FRAC_SET_##swc(S, _FP_ZEROFRAC_##swc); \
_FP_FRAC_LOW_##swc(S) |= 1; \
} \
else \
{ \
_FP_FRAC_HIGH_##sfs(S) |= _FP_IMPLBIT_SH_##sfs; \
Expand Down

0 comments on commit 002f0b0

Please sign in to comment.