From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3748 invoked by alias); 21 Sep 2008 07:56:01 -0000 Received: (qmail 3580 invoked by uid 48); 21 Sep 2008 07:54:40 -0000 Date: Sun, 21 Sep 2008 07:56:00 -0000 Message-ID: <20080921075440.3579.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/37573] [4.4 Regression] gcc-4.4 regression: incorrect code generation with -O1 -ftree-vectorize In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "irar at il dot ibm dot com" 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: 2008-09/txt/msg02401.txt.bz2 ------- Comment #6 from irar at il dot ibm dot com 2008-09-21 07:54 ------- (In reply to comment #5) > The data dependence on the previous loop is clearly not considered, the loop is > vectorized as if c on the rhs and c on the lhs were different non-overlapping > arrays. > The data dependence analysis returns chrec_known for that ddr (probably getting confused by *&s.c[0] and *&s.c[1] base objects), so the vectorizer thinks they are independent and vectorizes the loop. *D.1659_13 base_address: &s.c[0] offset from base address: 0 constant offset from base address: 0 step: 4 aligned to: 128 base_object: *&s.c[0] symbol tag: SMT.62 *D.1655_9 base_address: &s.c[1] offset from base address: 0 constant offset from base address: 0 step: 4 aligned to: 128 base_object: *&s.c[1] symbol tag: SMT.62 (compute_affine_dependence (stmt_a = D.1660_14 = *D.1659_13; ) (stmt_b = *D.1655_9 = D.1664_23; ) ) -- irar at il dot ibm dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rakdver at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37573