This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: A prototype loop reverser for the scalarizer
- From: Dorit Nuzman <DORIT at il dot ibm dot com>
- To: Victor Kaplansky <VICTORK at il dot ibm dot com>
- Cc: "Daniel Berlin" <dberlin at dberlin dot org>, fortran at gcc dot gnu dot org, "Paul Thomas" <paulthomas2 at wanadoo dot fr>, "Sebastian Pop" <sebastian dot pop at cri dot ensmp dot fr>, "Steven Bosscher" <stevenb dot gcc at gmail dot com>, "Toon Moene" <toon at moene dot indiv dot nluug dot nl>
- Date: Wed, 18 Oct 2006 14:30:50 +0200
- Subject: Re: A prototype loop reverser for the scalarizer
Victor Kaplansky/Haifa/IBM wrote on 16/10/2006 11:45:29:
>
> > > My pet peeve (front end doesn't give necessary info to middle end):
> > >
> > > DIMENSION A(100)
> > > READ, A
> > > PRINT*, SUM(A)
> > > END
> > >
> > > This won't get vectorized, because, by the time the vectorizer sees
this
> > > code, it already has been scalarized into a loop with a definite
order
> > > of summation, contrary to the coder's intent ;-)
> >
> > Not even on the autovect branch? Or are reductions on the trunk
> already, too?
> >
> Reductions will be put into mainline as soon as 4.3 is open.
Reductions are already in mainline, and this example will get vectorized if
-funsafe-math-optimizations is used (to allow changing the order of
computation). Victor was probably referring to the vectorization of
reduction idioms (like dot product, widening summation) which is indeed
scheduled to be incorporated to mainline in 4.3, but is already in
autovect-branch.
dorit
> -- Victor