https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121404

--- Comment #1 from Cassio Neri <cassio.neri at gmail dot com> ---
Actually, printf has the same issue. For instance, when x1 and x2 are defined
as below.

    using u128 = unsigned __int128;

    long double const p61 = 1.0l / (u128(1) << 61);
    long double const x1  = 1.0l + (1.0l                  ) * p61;
    long double const x2  = 1.0l + (1.0l + __DBL_EPSILON__) * p61;

Again, VERIFY (x1 != x2) passes but the output produced by printf for both
numbers is 0x1.0000000000000008p+0.

Reply via email to