ストリップ・マイニングとクリーンアップ

このコンパイラは、自動的にループをストリップマイニングし、クリーンアップ・ループを生成します。つまり、ユーザはループをアンロールする必要がありません。 これにより、ほとんどの場合はベクトル化の度合いも高まります。

ベクトル化前

i=0;

while(i<n)

{

   // Original loop code

   a[i]=b[i]+c[i];

   ++i;

}

 
ベクトル化後

// The vectorizer generates the following two loops

i=0;

 

while(i<(n-n%4))

{

   // Vector strip-mined loop

   // Subscript [i:i+3] denotes SIMD execution

   a[i:i+3]=b[i:i+3]+c[i:i+3];

   i=i+4;

}

 

while(i<n)

{

   // Scalar clean-up loop

   a[i]=b[i]+c[i];

}