但碰巧我有下面的MMX/SSE优化代码,我想移植到AltiVec指令上使用在PPC/Cell处理器上。 out += (*(a++)) * (*(b++));}
关于如何重写这段代码以使用AltiVecstatic inline int convolve_altivec(const short *a, const short *b,
我有一些SIMD代码在Altivec中并行处理32位整数值。在某些情况下,我希望将整数加载为小端,而在其他情况下则加载为大端(注意:此选择与本机CPU字节顺序无关;它基于正在运行的算法)。使用Altivec的置换操作可以很容易地完成实际的字节交换,比如。
我担心的是PowerPC允许大端或小端操作,所以我不知道是否需要在小端加载/存储或大端加载/存储上进行字节交换。有没有一种方法可以处理AltiVec寄存器的大小字节顺序负载,而不考虑CPU的字节顺序?还有没有其他我应该知道的相关问题?维基百科( Wikipedia )有