SSE移位指令

问题描述 投票:0回答:1

这里的情况:m3 = _mm_srli_epi32(m2, 23);完全符合预期,但是m3 = _mm_srl_epi32(m2, shift);shift初始化为__m128i shift = _mm_set1_epi32(23);)产生零。我已经检查过,shift确实具有它应该具有的值。我可能会缺少一些简单的东西吗?

sse simd
1个回答
0
投票

_mm_srl_epi32 (__m128i a, __m128i count)”将计数作为计数向量的低64位。 set1_epi32(32)(23<<32) | 23,它是移出所有位的巨大数字。

SSE移位会使计数饱和(与掩盖计数的标量移位不同)。

© www.soinside.com 2019 - 2024. All rights reserved.