From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 69F213861843; Wed, 6 Jan 2021 08:26:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 69F213861843 From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/98513] [10/11 Regression] Wrong code with -O3 since r10-2804-gbf05a3bbb58b3558 Date: Wed, 06 Jan 2021 08:26:53 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org X-Bugzilla-Target-Milestone: 10.3 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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Jan 2021 08:26:54 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D98513 --- Comment #11 from Richard Biener --- So the issue is we cannot decide between [ (] ) and [ ( ) ] and the check for [ (] ) elides the "redundant" check for the upper bound relation. But the check isn't redundant in case the compare cannot be decided. So the simplest fix to the legacy code is to instantiate those not redundant checks which then results in the "expected" Intersecting int [-INF, minus_1_3(D) + 2] EQUIVALENCES: { x_6(D) } (1 elements) and int ~[-2147483647, -2147483646] EQUIVALENCES: { x_6(D) } (1 elements) to int [-INF, minus_1_3(D) + 2] EQUIVALENCES: { x_6(D) } (1 elements) (if we can't do anything fancy, intersection simply chooses the first range as result)=