我有一个8位无符号8位数的向量,范围为0 .. 12,位于xmm0。我想向量中的每个元素e上执行以下转换: if (e != 12)
e = 11 - e;
即,数字0,1,...,11被改变为11,10,...,0而12保持不变。其他值不会发生,我不在乎他们会发生什么。 如何使用SSE4指令集有效地实现此操作?
我是SSE编程新手,所以我希望有人能帮助我。我最近使用GCC SSE内在函数实现了一个函数来计算32位整数数组的总和。下面给出了我的实现代码。 int ssum(const int *d, unsigned int len)
{
static const unsigned int BLOCKSIZE=4;
unsigned int i,remainder;
int