int main()
{
const int STRIDE=2,SIZE=8192;
int i=0;
double u[SIZE][STRIDE];
#pragma vector aligned
for(i=0;i<SIZE;i++)
{
u[i][STRIDE-1]= i;
}
printf("%lf\n",u[7][STRIDE-1]);
return 0;
}
编译器在这里使用 xmm 寄存器。有步幅 2 访问,我想让编译器忽略这一点并定期加载内存,然后屏蔽备用位,这样我将使用 50% 的 SIMD 寄存器。我需要可用于加载然后按位屏蔽寄存器的内在函数,然后再存储回内存
PS:我以前从未做过汇编编码