だから私は次のような配列操作をしようとしていました
for (int i=0;i++i<32)
{
output[offset+i] += input[i];
}
ここでoutput
、およびinput
はfloat
配列です(これは、のおかげで16バイトに整列されますmalloc
)。しかし、私はそれを保証することはできませんoffset%4=0
。これらの位置合わせの問題をどのように修正できるのか疑問に思いました。
私は
while (offset+c %4 != 0)
{
c++;
output[offset+c] += input[c];
}
整列されたループが続きます-に整列されていないアクセスが必要なため、これは明らかに機能しませんinput
。
元のループをベクトル化する方法はありますか?