gpt4 book ai didi

assembly - xmm 寄存器的 vbroadcastsd 相当于什么?

转载 作者:行者123 更新时间:2023-12-02 20:15:06 28 4
gpt4 key购买 nike

似乎没有 vbroadcastsd 的版本它采用 64 位内存源操作数 xmm目标寄存器,这有点奇怪,因为 ymmzmm版本已存在。

所以我猜有一些现有的指令涵盖了这个目的?

最佳答案

SSE3 movddup xmm, xmm/m64 是 64->128 广播。

有趣的是,AVX1 256 位版本 ( vmovddup ymm, ymm/m256 ) 执行两个单独的 channel 内广播,并具有 256 位内存源。但有了内存源,它仍然纯粹在 Intel CPU 上的负载端口上运行,就像广播负载一样。

正如你所说, vbroadcastsd ymm, m64 是 AVX1,vbroadcastsd ymm, xmm是AVX2,并且没有vbroadcastsd具有 XMM 目的地。

<小时/>

如果不是因为 AVX1 广播仅限内存源的性质,英特尔可能刚刚制作了 movddup 的 256 位版本。 vbroadcastsd 。即 128 位 vmovddup 和 vbroadcastsd 可能是同一操作码的别名。

但是将它们分开可以让英特尔为 AVX1 制作 m64 -> ymm 广播,同时仍然提供 vmovddup xmm, xmm/m64源允许是寄存器。我不知道为什么提供 256 位 channel 内广播版本。也许这有时确实有用,或者他们可以便宜地做到这一点。

如果vbroadcastsd编码为 VEX.L= 0 (意味着 128 位向量宽度),手册明确表示它将#UD。因此不存在未记录的 128 位版本。

关于assembly - xmm 寄存器的 vbroadcastsd 相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52008950/

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