问题标签 [swar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
249 浏览

c - 如何实现 SWAR 无符号小于?

我试图uint64_t像使用 8 条车道一样使用uint8_t;我的目标是实现一个车道一个车道小于。如果相应车道 in的值小于该车道 in 的值,则给定x和的该操作y应产生结果 with in a lane ,否则。逐个车道小于或等于也可以。0xFFxy0x00

根据我所看到的,我猜我需要一个lanewise差异或零操作(定义为doz(x, y) = if (x < y) then 0 else (x - y)),然后使用它来构造一个选择蒙版。但是,我见过的所有通道减法方法都已签名,我不确定如何使用它们来完成此类任务。

有没有办法我可以做到这一点,使用差异或零或其他方式?

0 投票
1 回答
41 浏览

bit-manipulation - 位扭动到正确的包装位

我有以下代码,它正确打包 64 位 int 的每 4 位。这是一种天真的方法,我使用的是查找表和循环。我想知道是否有更快的旋转、swar/simd、并行方式来更快地做到这一点?(msb() 返回最高有效位)