我有一个for循环,它将运行多次,并且将花费大量时间:

for (int z=0; z<temp; z++)
{
    float findex= a + b * A[z];
    int iindex = findex ;
    outArray[z] += inArray[iindex] + (findex - iindex) * (inArray[iindex+1] - inArray[iindex]);
    a++;
}

我已经优化了这个代码,但是没有性能改进也许我的SSE码不好,有人能帮我吗?

最佳答案

尝试在inArray和outArray上使用restrict关键字否则编译器必须假设inArray可以是==outArray在这种情况下,不可能并行化。

关于c - 谁能帮助我针对SSE循环进行优化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20557798/

10-10 23:28