Vectorizing HIRLAM 3: Can't vectorize DOUBLE COMPLEX loops ...
Dorit Naishlos
DORIT@il.ibm.com
Fri Oct 21 16:00:00 GMT 2005
Yes, we don't vectorize complex types yet.
dorit
> L.S.,
>
> The following code:
>
> SUBROUTINE S(N)
> DOUBLE COMPLEX A(N), B(N)
> READ*,B
> DO I = 1, N
> A(I) = B(I)
> ENDDO
> PRINT*,A
> END
>
> when compiled thusly:
>
> $ gfortran -g -S -O3 -ftree-vectorize -ftree-vectorizer-verbose=2 -
> msse2 vect3.f
>
> draws the following "not vectorized" message:
>
> vect3.f:4: note: not vectorized: no vectype for stmt: D.929_51 =
> (*b_8)[D.928_48] scalar_type: complex8
> vect3.f:4: note: vectorized 0 loops in function.
>
> Which begs the question: Why not vectorizing *after* complex computation
has
> been lowered to the equivalent floating point computation ?
>
> HIRLAM contains relatively few complex computation - however, a sizable
number
> of physics problems are more easily expressed using (DOUBLE) COMPLEX
> quantities. It seems they are on the short end of the rope as far as
> vectorization is concerned.
>
> Kind regards,
>
> --
> Toon Moene - e-mail: toon@moene.indiv.nluug.nl - phone: +31 346 214290
> Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
> A maintainer of GNU Fortran 95: http://gcc.gnu.org/fortran/
More information about the Gcc
mailing list