让我们说我有一个4个花车的载体:
__m128 vector = |f0|f1|f2|f3| (pseudocode)
我的意图是将该变量转换为:
|0.0|f0|f1|f2|
做一个向右移动似乎是最简单的选择,但我还没有能够找到这样的内在可用于浮动。
实现这一目标的最快方法是什么?
答案 0 :(得分:0)
这是我的解决方案:
__m128 const mask = _mm_castsi128_ps(_mm_set_epi32(0, -1, -1, -1));
vector = _mm_shuffle_ps(vector, vector, _MM_SHUFFLE(0,3,2,1))
vector = _mm_and_ps(vector, mask);