gpt4 book ai didi

performance - 高效地反转 64 位字中 16 位数量的顺序

转载 作者:行者123 更新时间:2023-12-05 05:41:39 27 4
gpt4 key购买 nike

我需要对少量无符号小整数进行字典序比较。如果有(例如)8 个 8 位整数,显而易见的方法是对它们进行字节交换并在 GPR 中进行普通整数比较。如果有 2 个 32 位整数,一个 32 位循环和一个普通的比较就可以了。如果有 4 个 16 位整数呢?显然,使用向量寄存器很容易打乱它们的顺序,但是是否有一种有效的方法——要么颠倒它们的顺序,要么不颠倒顺序地进行比较——只使用 GPR?

最佳答案

仅针对反向,这是我的尝试:

wswap2:
;; rdi = ABCD (words)
mov rax, rdi
ror edi, 16 ; rdi = 00DC
shl rdi, 32 ; rdi = DC00
shr rax, 32 ; rax = 00AB
ror eax, 16 ; rax = 00BA
or rax, rdi ; rax = DCBA
ret

能够使用 32 位旋转来交换两个相邻的单词很方便。

我们有两个并行的依赖链,每个链有两个 uop,后面还有一个 uop 来合并它们。

关于performance - 高效地反转 64 位字中 16 位数量的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72246104/

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