相关疑难解决方法(0)

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

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

我可以使用内部函数_mm_sll_epi64_mm_sll_epi32__m128i寄存器中向左移动一组值,但这些值不带"溢出"位.

对于N位移位想象我可以做类似的事情:

  • _mm_sll_epi64
  • _mm_srr_epi64 (对于我想要携带的位:将它们移动到低位)
  • 洗牌srr结果
  • 或者这些在一起.

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

有没有更好的办法?

c c++ sse

13
推荐指数
1
解决办法
6477
查看次数

设置 SSE 寄存器的最后或前 n 位

如何创建__m128i具有n最高有效位集的(在整个向量中)?我需要它来屏蔽与计算相关的缓冲区部分。如果可能,解决方案应该没有分支,但这似乎很难实现

我怎样才能做到这一点 ?

c++ x86 sse simd intrinsics

5
推荐指数
1
解决办法
686
查看次数

标签 统计

c++ ×2

sse ×2

c ×1

intrinsics ×1

simd ×1

x86 ×1