Visible to Intel only — GUID: GUID-D0927A8E-A220-4F50-8697-C89BBE6EFC95
Visible to Intel only — GUID: GUID-D0927A8E-A220-4F50-8697-C89BBE6EFC95
Allocating and Freeing Aligned Memory Blocks
To allocate and free aligned blocks of memory use the _mm_malloc and _mm_free intrinsics. These intrinsics are based on malloc and free, which are in the libirc.a library. You need to include malloc.h. The syntax for these intrinsics is as follows:
void* _mm_malloc (size_t size, size_t align )
void _mm_free (void *p)
The _mm_malloc routine takes an extra parameter, which is the alignment constraint. This constraint must be a power of two. The pointer that is returned from _mm_malloc is guaranteed to be aligned on the specified boundary.
Memory that is allocated using _mm_malloc must be freed using _mm_free . Calling free on memory allocated with _mm_malloc or calling _mm_free on memory allocated with malloc will cause unpredictable behavior.