From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id B8F0F3858D32; Tue, 11 Apr 2023 13:17:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B8F0F3858D32 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1681219072; bh=+FQ28R8l+UO0kpZXKQmAuRFC4T/WrZ/1pYBXoXUGm6E=; h=From:To:Subject:Date:In-Reply-To:References:From; b=FjrODlKzMbW3KCH2fXqlNoGvXnWOj6oTSY+XSp9CfDjSHGwQYeSuX7cA4UtgtNPzR z0HedvpoDGs4WmGCm2qI+Q1ZmCPqR3Guy8MKSBld9Mt6E9tkXyG2xJymJMIphVq2HR TrNwwJwr9fupE2bvjkwrwm+RMOOxpljz+rNDnqdg= From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/109441] missed optimization when all elements of vector are known Date: Tue, 11 Apr 2023 13:17:52 +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: 13.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: enhancement X-Bugzilla-Who: rguenth 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: cf_reconfirmed_on bug_status everconfirmed version cc 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=3D109441 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2023-04-11 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Version|unknown |13.0 CC| |rguenth at gcc dot gnu.org --- Comment #2 from Richard Biener --- Well, it doesn't need std::vector for this, a C testcase with a large enough array (> 16 elements, the unroll limit) suffers from the same "problem". But IMHO it's academic, right? GCC only transforms loopy code like you suggest by complete peeling of the loop, it doesn't attempt to "simulate" IL (and if, then it would only up to some complexity limit).=