Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

data alignment and equivalence

Intel_C_Intel
Employee
557 Views
i have a problem with data alignment for the ifc compiler. my application does number crunching on some ~GB sized arrays. for most of the code, single precision is ok, but the final result is double precision. since single and double are never used at the same time, i use the same memory area for both via the equivalence statement.

this worked just fine for me until i rewrote the core routines to use SSE. now i have the problem, that the compiler does not align REAL(8) arrays to 16 byte boundaries automatically. and when i enforce the alignment with the
!DEC$ ATTRIBUTES ALIGN:16
directive, it will not allow the variables to be placed in an equivalence statement anymore.

any hints on what i could do?

thanks alot,

chris
0 Kudos
1 Reply
Steven_L_Intel1
Employee
557 Views
I heard about this problem recently - there may be changes coming in a future version.

See if putting the variables in a COMMON with alignment specified helps.

Steve
0 Kudos
Reply