我需要提取一个__m128i寄存器中的非零值。例如,我有一个包含八个无符号short整数的向量。
__m128i vector {40, 0, 22, 0, 0, 0, 0, 8}
我希望用最少量的SSE指令提取40、22和8。非零值将被存储在一个非零值数组中。
{40, 22, 8, more values from different vectors ... }
是否可能对它们进行洗牌,或者有没有良好的内在机制可以提取和存储?