gpt4 book ai didi

assembly - orpd等SSE2指令的意义何在?

转载 作者:行者123 更新时间:2023-12-03 21:13:31 25 4
gpt4 key购买 nike

orpd指令是“压缩 double 浮点值的按位逻辑或”。这与 por 做的事情不完全一样吗? (“按位逻辑或”)?如果是这样,拥有它的意义何在?

最佳答案

请记住,SSE1 orps 首先来了。 (实际上 MMX por mm, mm/mem 甚至在 SSE1 之前就出现了。)
具有新前缀的相同操作码是 SSE2 orpd 指令对硬件解码器逻辑有意义,我猜,就像 movapd对比 movaps .几条这样的指令在ps之间是多余的。和 pd版本,但有些不是,例如 addps对比 addpdunpcklps对比 unpcklpd正在不同的洗牌。
SSE2也引入 66 0F EB /r por xmm,xmm/mem 的原因至少部分是为了与 MMX 保持一致 0F EB /r por mm, mm/mem , 再次使用新的强制前缀相同的操作码。就像 paddb mm, mm对比 paddb xmm, xmm .
但也有可能为 vec-integer 与 FP 使用不同的旁路转发域。不同的微架构在实际解码和运行这些不同指令方面有不同的行为。有些人跑了所有的 XMM or指令以同样的方式,为 FP 和 simd-integer 域之间的转发创建额外的延迟。
对于 FP-float 和 FP-double,实际上没有 CPU 具有不同的转发域,所以是的, movapdorpd实际上是您永远不应该使用的无用空间浪费。使用较小的 orps编码代替。
(或者使用 VEX 编码也没关系;vorpsvorpd 的大小相同:2 字节前缀 + 操作码 + modrm ...)
por对比 orps有关使用 por 时的旁路延迟的更多信息在 FP 数学指令之间,如 addps , 或 orps SIMD 整数 insns 之间,如 paddb , 看

  • Do I get a performance penalty when mixing SSE integer/float SIMD instructions
  • What's the difference between logical SSE intrinsics?
  • Difference between the AVX instructions vxorpd and vpxor
  • Does using mix of pxor and xorps affect performance?
  • Is there any situation where using MOVDQU and MOVUPD is better than MOVUPS?
  • Choosing SSE instruction execution domains in mixed contexts - 在 Skylake 之前,整数版本具有更好的吞吐量。

  • 如果有人想知道,标题的另一种解释的答案:FP 值上的按位 bool 值主要用于设置、清除或切换符号位。或者用 cmpps/pd做事面具喜欢混合。

    关于assembly - orpd等SSE2指令的意义何在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62111946/

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