2
我有一个128位的变量,里面填充了4个独立的整数。 [1,2,3,4]。我想向右移动,所以我可以得到[2,3,4,0]。什么是最快的方式来做到这一点。在__m128上正确移位32位的最快方法(Intel Intrinsics)
我当前的代码:
__m128 v1;
v1 = (__m128)_mm_srli_si128( _mm_castps_si128(v1) , 4);
这成功地转移了位,但我试图去的速度和缓存优化(又名变量最少越好)。无论如何改善这个代码,以避免投掷和__m128i?
谢谢
你可能没有意识到这一点,但当前的方法只需要1个寄存器。但是,您将会转换int <->转移延迟。 – Mysticial