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/

10-11 15:42