_mm_malloc および _mm_free 組込み関数を使用して、アライメントの合ったメモリブロックの割り当てと解放を実行できます。これらの組込み関数は、libirc.a 内にある malloc および free 関数に基づいています。これらの組込み関数の構文は、次のとおりです。
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 を呼び出したりすると、予測できない動作が発生します。