From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25333 invoked by alias); 5 Jul 2012 10:10:58 -0000 Received: (qmail 25321 invoked by uid 22791); 5 Jul 2012 10:10:57 -0000 X-SWARE-Spam-Status: No, hits=-4.3 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,KHOP_THREADED X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 05 Jul 2012 10:10:44 +0000 From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/47298] -O3 destroys beautifully vectorized code obtained at -O2 Date: Thu, 05 Jul 2012 10:10:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-07/txt/msg00517.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47298 --- Comment #9 from Richard Guenther 2012-07-05 10:10:28 UTC --- I have a few patches that try to estimate CSE opportunities exposed by complete unrolling. In this case the CSE opportunity is the reduction into C(i,j) (possibly also detected by store motion later). Adding a patch to enable disabling of cunrolli (and cunroll - which you also cannot disable) would be fine, but we should keep "unrolling" once rolling loops early at least. Note that we should still try to fix "(and are not good at seeing we run at most once there)" so we avoid messing up things here. In theory the vectorizer should be fully capable of vectorizing even the unrolled loop (in this particular case) via SLP or basic-block vectorization.