gpt4 book ai didi

c++ - 寻找非立即移位值的 sse 128 移位操作

转载 作者:IT老高 更新时间:2023-10-28 23:01:35 38 4
gpt4 key购买 nike

内在的 _mm_slli_si128 将对 128 位寄存器进行逻辑左移,但仅限于立即移位值,并且按字节而不是位进行移位。

我可以使用像 _mm_sll_epi64_mm_sll_epi32 这样的内在函数来左移 __m128i 寄存器中的一组值,但这些不会携带“溢出”位。

对于 N 位的移位,想象一下我可以执行以下操作:

  • _mm_sll_epi64
  • _mm_srr_epi64(对于我要携带的位:将它们移到低位)
  • 随机播放 srr 结果
  • 或者这些一起。

(但可能还必须包括对 N 相对于 64 的检查)。

有没有更好的办法?

最佳答案

不是您理想的解决方案,但如果您想将 SSE 寄存器旋转或移位 8 的倍数,那么 PSHUFB 指令(和 _mm_shuffle_epi8( ) 内在) 可以提供帮助。它需要第二个 SSE 寄存器作为输入;寄存器中的每个字节都有一个值,用于索引第一个输入寄存器中的字节。

关于c++ - 寻找非立即移位值的 sse 128 移位操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9980801/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com