gpt4 book ai didi

x86 - 为什么是两个按位或 AVX 指令?

转载 作者:行者123 更新时间:2023-12-04 12:22:42 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is the point of SSE2 instructions such as orpd?

(1 个回答)



What's the difference between logical SSE intrinsics?

(3 个回答)


8 个月前关闭。




在 AVX 中,有两条指令可以执行按位或 VORPD 和 VORPS。文档说:

VORPD (VEX.256 encoded version)
DEST[63:0] <- SRC1[63:0] BITWISE OR SRC2[63:0]
DEST[127:64] <- SRC1[127:64] BITWISE OR SRC2[127:64]
DEST[191:128] <- SRC1[191:128] BITWISE OR SRC2[191:128]
DEST[255:192] <- SRC1[255:192] BITWISE OR SRC2[255:192]


VORPS (VEX.256 encoded version)
DEST[31:0] <- SRC1[31:0] BITWISE OR SRC2[31:0]
DEST[63:32] <- SRC1[63:32] BITWISE OR SRC2[63:32]
DEST[95:64] <- SRC1[95:64] BITWISE OR SRC2[95:64]
DEST[127:96] <- SRC1[127:96] BITWISE OR SRC2[127:96]
DEST[159:128] <- SRC1[159:128] BITWISE OR SRC2[159:128]
DEST[191:160] <- SRC1[191:160] BITWISE OR SRC2[191:160]
DEST[223:192] <- SRC1[223:192] BITWISE OR SRC2[223:192]
DEST[255:224] <- SRC1[255:224] BITWISE OR SRC2[255:224]

这两个处理器操作之间有什么实际区别吗?如果不是:为什么有两条指令?如果不是:使用它们进行按位或整数运算是否安全?

最佳答案

所有(或几乎所有)SEE/AVX 指令的 PS 和 PD 变种的存在都有一个历史背景:曾几何时,当 Intel 最初设计第一个 SSE 指令集时,他们认为 future 的芯片架构将具有三个域:整数 单精度浮点 (32 位)、 double 浮点 (64 位)

注意: 域是 CPU 内的隔离逻辑单元,它们很重要,因为在它们之间传输 SSE/AVX 寄存器内容时有一点延迟。因此,如果将整数域中指令的结果用作浮点域中指令的输入,则可能会出现 1 或 2 个周期的延迟。

出于这个原因,英特尔将大多数逻辑按位和混洗指令镜像了三遍:一次用于整数,一次用于 SP-FP,另一次用于 DP-FP。这些镜像指令执行的操作是相同的——包括整数和浮点类型之间的操作。

目前大多数 x86 架构有两个域: Integer Floating Point。 FP 域处理单精度和 double (32/64 位)。一些架构只有一个域用于所有 SSE/AVX 指令。很有可能在 future 的一些架构中添加第三个 double 域。

关于x86 - 为什么是两个按位或 AVX 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13990912/

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