From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 68DCF3858414; Fri, 17 May 2024 07:47:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 68DCF3858414 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1715932050; bh=VPcMPS7OyM3VriUHby0EFuQUb5uaj1ensN0EOL27tqc=; h=From:To:Subject:Date:In-Reply-To:References:From; b=cuu0LY4aOs2Of3tlSmk277ohpwWzvGcnGfDRuNXKa2B6q+qXwUuQl8kPPEOJx0z1v y3XWtZ5aqG8pP4pnV0uyiGttVsuy2jT1DKLkrh+ATP8Y6rBquu/YDHVw9pIt5SMPqM FTvnJVq0AOiVRIJsx89hI+a6W9lLiYn32QQSEbdM= From: "tnfchris at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/115120] Bad interaction between ivcanon and early break vectorization Date: Fri, 17 May 2024 07:47:30 +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: 14.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: tnfchris at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: 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=3D115120 --- Comment #3 from Tamar Christina --- That makes sense, though I also wonder how it works for scalar multi exit loops, IVops has various checks on single exits. I guess one problem is that the code in IVops that does this uses the exit = to determine niters. But in the case of the multiple exits vector code the vectorizer could have picked a different exit. So I guess the question is how do we even tell which one is used or could t= he transformation be driven from the PHI nodes themselves instead of an exit.=