Quantcast
Channel: Intel® Fortran Compiler
Viewing all articles
Browse latest Browse all 3270

Vectorization of derived type assignments

$
0
0

Hi,

I'm using following derived type for an extended number representation:

    type :: XNT_TYPE_XNUM
        !(S)ignificant
        real(XNT_SK) :: s
        !(E)xponent
        integer(XNT_EK) :: e
    end type XNT_TYPE_XNUM

Somewhere I've declared the two variables:

    type(XNT_TYPE_XNUM), target :: ps(2,nl,nm)
    ...
    type(XNT_TYPE_XNUM) :: pt(2,nl,3)

When I do the assignment:

    pt(:,:,2)=ps(:,:,j)

the vectorization report says:

vector dependence: assumed ANTI dependence between PT line xxxx and  line xxxx

When writing instead:

    pt(:,:,2)%s=ps(:,:,j)%s
    pt(:,:,2)%e=ps(:,:,j)%e

then vectorization is possible but inefficient.

Can anybody tell me the reason why the compiler finds a dependence???

Thanks in advance!!


Viewing all articles
Browse latest Browse all 3270

Trending Articles