data alignment and equivalence

data alignment and equivalence

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

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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

Steve - Intel Developer Support

Login to leave a comment.