blob: 9a32abfdea621bf7cb9a26ccb72ba415482b188b [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O3 -mzarch -march=z10" } */
/* According to IEEE 754 2008 4.3 Conversion operations between
different radixes must use the rounding mode of the target radix.
On S/390 this means passing the right value in GPR0 to PFPO
instruction. */
#include <fenv.h>
double __attribute__((noclone,noinline))
convert (_Decimal64 in)
{
return (double)in;
}
int
main ()
{
fesetround (FE_UPWARD);
if (convert (1e-325DD) != __DBL_DENORM_MIN__)
__builtin_abort ();
fesetround (FE_DOWNWARD);
if (convert (-1e-325DD) != -__DBL_DENORM_MIN__)
__builtin_abort ();
}