From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4281 invoked by alias); 25 Jan 2009 11:04:35 -0000 Received: (qmail 4240 invoked by alias); 25 Jan 2009 11:04:23 -0000 Date: Sun, 25 Jan 2009 11:04:00 -0000 Message-ID: <20090125110423.4239.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/37021] Fortran Complex reduction / multiplication not vectorized In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenther at suse dot de" 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: 2009-01/txt/msg02731.txt.bz2 ------- Comment #7 from rguenther at suse dot de 2009-01-25 11:04 ------- Subject: Re: Fortran Complex reduction / multiplication not vectorized On Sun, 25 Jan 2009, irar at il dot ibm dot com wrote: > > > ------- Comment #6 from irar at il dot ibm dot com 2009-01-25 09:12 ------- > (In reply to comment #5) > > So, > > 4) The vectorized version sucks because we have to use peeling for niters > > because we need to unroll the loop once and cannot apply SLP here. > > What do you mean by "unroll the loop once"? The vectorization factor is two, so we need two copies of the loop body (which means unrolling it once and creating an epilogue loop because niter may be odd) > > Q1: does SLP work with reductions at all? > > No. SLP currently originates from groups of strided stores. Ah, I see. In this loop we have two reductions, so to apply SLP we would need to see that we can use a group of reductions for SLP? > > Q2: does SLP do pattern recognition? > > Pattern recoginition is done before SLP, and SLP handles stmts that were marked > as a part of a pattern. There is no SLP specific pattern recoginition. Ok, but with a reduction it won't help me here. Can a loop be vectorized with just pattern recognition? Hm, if I remember correctly we detect scalar patterns and then vectorize them. We don't support detecting "vector patterns" from scalar code, correct? Thanks, Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37021