http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59227
--- Comment #8 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> --- So the calculation inside __gfortran_erfc_scaled_r16 is correct, but the result is printed incorrectly. Can you try this: program test real(kind=16) :: x x = 10.9_16 ; print *, erfc_scaled(x) x = 11.9_16 ; print *, erfc_scaled(x) x = 12.0_16 ; print *, erfc_scaled(x) x = 12.1_16 ; print *, erfc_scaled(x) x = 13.1_16 ; print *, erfc_scaled(x) x = 14.1_16 ; print *, erfc_scaled(x) end program test Also, can you confirm that binary128 is not the same as long double on ia64? (I've sent a request to reopen my old account on the compile farm… If this drags out, I'll investigate on my own there. But for now, I don't have access to an ia64.)