Auto-vectorization of SUM intrinsic in gfortran

Wilfredo Sifuentes wsifuent@gmail.com
Fri Jan 28 17:19:00 GMT 2011


Thank you Tim
As you said with  -ffast-math option it works but others lines that
seems to be parallelizable doesn´t e.g.
Look at the two contiguous lines:

        INGTAR(HI,1:NETP)= ZERO  !Compiller says : not vectorized:
complicated access pattern.
        VAEMB(1:NEMB,HI,1:NETP)= ZERO ! Compiler says: note: LOOP VECTORIZED.

The code I am working is quit old (and big) and I am only researching
the (easy) ways to do it faster in actual computers
Regards
Wilfredo

2011/1/28 Tim Prince <n8tm@aol.com>:
> On 1/28/2011 11:03 AM, Wilfredo Sifuentes wrote:
>>
>> Dear all,
>> In spite that some information on the WWW says that the SUM intrinsic
>> function of Fortran 90 can be parallelizable, I found that gfortran
>> 4.5 do not parallelize the following line (even if I fix or change
>> “AHID” variable to “1” ):
>>
>>   temporal= SUM(PERLIN(1:NLIN,AHID,1:NETP,1:NBLO))
>>
>> Where PERLIN is defined as:  REAL*8  PERLIN(MAXLIN,0:1,MAXETP,MAXBLO).
>> The compiler report: “note: not vectorized: unsupported use in stmt.”
>> Am I missing something?
>>
>> Regards
>> Wilfredo
>
> I don't remember the diagnostic, but SUM vectorization would never occur
> without options implying -fassociative-math (unfortunately, specifying that
> one by itself doesn't help; -ffast-math does, but is too big a hammer).
> Even beyond that, more information from you may be useful.
>
> --
> Tim Prince
>
>



More information about the Gcc-help mailing list