- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
See if putting the variables in a COMMON with alignment specified helps.
Steve

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page