Developer Guide and Reference

Contents

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.