I have several 2D allocatable arrays of type complex(kind=kind(1.D0))
I want to do this:
do j=1,dim2 do i=1,dim1 a(i,j)=b(i,j) / c(i,j) end do end do
When adding a !dir$ vector always directive before the inner loop, the compiler issues the following remark -- "vectorization support: scalar type occupies entire vector". Is the problem that the type complex(kind=kind(1.d0)) is as wide as an xmm register (2xdouble = 128 bits on x64 machines)? Is this a real problem? Complex numbers are still just two doubles. At least +, or - operations seem straightforwardly vectorisable. But, these are not vectorised by the compiler either.