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/