【发布时间】:2018-01-23 05:34:24
【问题描述】:
我正在将一些代码从 Rust 移植到 Swift,我注意到他们使用 pext 方法进行一些位操作。由于这是一条 Intel 指令,我无法将其放入我的 Swift 代码中,所以我想知道哪一组位指令(我可以在 Swift 中使用)能够获得与 PEXT 操作相同的结果。
更多上下文,这里是PEXT的描述
基本上,它使用掩码将高位映射到连续的低位,并清除最终输出中的高位。示例:
source = 1011 1110 1001 0011
mask = 0110 0011 1000 0101
s = pext(source, mask)
s -> 0000 0000 0011 0101
我知道复制高级指令会影响性能,但我真的只是想让代码正常工作。
【问题讨论】:
-
好吧,Swift 中有两个名为
_pext_u32和_pext_u64的内置函数,但它们仅针对 Intel 架构定义。 -
@user28434 你如何快速访问那些?我找不到他们
-
@swigganicks,它在
simd模块中。
标签: swift bit-manipulation intel bitwise-operators