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寄存器我需要内部函数,它可以用来加载,然后在存储回内存之前按位屏蔽寄存器
P.S:我以前从未做过程序集编码
最佳答案
掩码值为0xAA
的屏蔽存储(10101010)
关于c - 内在的组件来做掩盖的负载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13204737/