https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70117
--- Comment #6 from Alan Modra <amodra at gmail dot com> --- > Well, what I don't quite understand is that the gnulib value, which is > > 0x1.fffffffffffff7ffffffffffffcp+1023 Sorry, I didn't look properly at the bug before commenting last night. For some reason I thought the gnulib value didn't have the needed zero bit in the mantissa.. > likewise should round to the same double value, shouldn't it? Yes, it should, but gcc's LDBL_MAX is the largest 106 bit precision IBM extended double. The gnulib value has 107 bits of precision, 53 bits from each of the component doubles plus an implicit zero bit. As Joseph says, the problem is that gcc evaluates IBM extended double expressions to 106 bit precision. Widening to 107 bits of precision would almost certainly cause other problems.