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?