_mm_malloc および _mm_free 組み込み関数を使用して、 アライメントの合ったメモリーブロックの割り当てと解放を実行できます。これらの組み込み関数は、libirc.a 内にある malloc および free 関数に基づいています。malloc.h をインクルードする必要があります。これらの組み込み関数の構文は、次のとおりです。
void* _mm_malloc (int size, int align)
void _mm_free (void *p)
_mm_malloc ルーチンには、追加のパラメーターを 1 つ指定する必要があります。このパラメーターは、アライメントの制約条件する 2 の何乗かを示す値です。_mm_malloc で返すポインターは、指定した境界にアライメントが合っているのを保証します。
_mm_malloc を使用して割り当てられたメモリーは、_mm_free を使用して解放しなければなりません。_mm_malloc で割り当てられたメモリー上で free を呼び出したり、malloc で割り当てられたメモリー上で _mm_free を呼び出したりすると、予測できない動作が発生します。