Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

AutoVectorizing Problem

David_DiLaura1
New Contributor I
403 Views

I'm (slowly) changing code to take explicit advantage of SSEs. Most of the vectorizable statements I have in a program I'm working on are not be vectorized. The compiler is issue this message (along with hundreds of others like it) in it's optimization report:

1>C:\\NewRT\\Rendering3\\RenderingWithBeamCasting 2Dblocking.f90(5707): (col. 10) remark: loop was not vectorized: nonstandard loop is not a vectorization candidate.

The pertinent code is:

! DEC$ ATTRIBUTES ALIGN: 128:: VprojectedPerpEdge

! DEC$ ATTRIBUTES ALIGN: 128:: SqMagPerpEdge

.
.
.
real(4):: VprojectedPerpEdge(4,4), &
SqMagPerpEdge(4), &
.
.
.

5705 SqMagPerpEdge = VprojectedPerpEdge(:,1)*VprojectedPerpEdge(:,1) + & VprojectedPerpEdge(:,2)*VprojectedPerpEdge(:,2)
.
.
.
I reserve the right to be making a silly mistake, but can anyone suggest what's wrong? This happens even if I put compiler directives to explicitly vectorize this code. Strangely, this identical process works in another (much smaller) program that I've already vectorized.
David

0 Kudos
1 Reply
Lorri_M_Intel
Employee
403 Views

It looks like you showed us line number 5705, while the optimization report is referencing line 5707.

What does the code after theline you showed look like?

thanks -

- Lorri

0 Kudos
Reply