From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id EC13B3857724; Thu, 21 Sep 2023 13:42:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EC13B3857724 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1695303728; bh=avhJgtNrpL8L26vVEvCm1cSzbp+/GwlRYzVZBwqFI7c=; h=From:To:Subject:Date:In-Reply-To:References:From; b=J+tXUSVWkwwatMdSKqOV2KUCYjPoMc4zMlOPRl/ZFqOhAsL+aVvpmWKVpu8F+ZaRM VCUAC7lpEynKZyDuq5/9fSGUwS25YYW3Fm9S0ZA53zwtY+e2tZp4Ih/CUoik6UHPz+ PaREW08Qef2CRFfSuA5/QZauKXRNAbIu70CCGSkM= From: "malat at debian dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/110622] x87: Miscompilation at O2 level (O1 is working) Date: Thu, 21 Sep 2023 13:42:08 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 13.1.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: malat at debian dot org X-Bugzilla-Status: RESOLVED X-Bugzilla-Resolution: DUPLICATE X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D110622 --- Comment #14 from Mathieu Malaterre --- (In reply to Andrew Pinski from comment #13) > (In reply to Mathieu Malaterre from comment #12) > > I am seeing a difference in result (log1p computation) in the range: > >=20 > > 4318952042648305665 - 0x1.0000000000001p-64 > > 4368493837572636672 - 0x1.002p-53 > >=20 > > the other values seems to match expectation of log1p computation. >=20 > But you used excess-precision=3Dfast >=20 > *** This bug has been marked as a duplicate of bug 323 *** AFAIK bug #323 does not mention my trick: asm volatile("" : "+r"(y.raw[0]) : : "memory"); That simple line totally changed the optimizer code generation.=