1 /* { dg-do run } */ 2 /* { dg-options "-O3 -mzarch -march=z10" } */ 3 4 /* According to IEEE 754 2008 4.3 Conversion operations between 5 different radixes must use the rounding mode of the target radix. 6 On S/390 this means passing the right value in GPR0 to PFPO 7 instruction. */ 8 9 #include <fenv.h> 10 11 double __attribute__((noclone,noinline)) convert(_Decimal64 in)12convert (_Decimal64 in) 13 { 14 return (double)in; 15 } 16 17 int main()18main () 19 { 20 fesetround (FE_UPWARD); 21 22 if (convert (1e-325DD) != __DBL_DENORM_MIN__) 23 __builtin_abort (); 24 25 fesetround (FE_DOWNWARD); 26 27 if (convert (-1e-325DD) != -__DBL_DENORM_MIN__) 28 __builtin_abort (); 29 } 30