gpt4 book ai didi

assembly - 大括号 "{"在 AT&T 汇编中是什么意思

转载 作者:行者123 更新时间:2023-12-04 04:51:55 33 4
gpt4 key购买 nike

我正在使用英特尔至强融核。
我编译程序

icpc -mmic -S xxxx.cpp

汇编代码中有一些我不明白的语法。
     vgetmantpd $0, %zmm2, %zmm9{%k3}                        #85.59 c79
vsubpd %zmm11, %zmm10, %zmm12{%k3} #85.59 c83
vpminsd %zmm14{aaaa}, %zmm12, %zmm13 #85.59 c87
vcvtpd2ps {rz-sae}, %zmm9, %zmm6{%k3} #85.59 c91
vpminud %zmm14{bbbb}, %zmm13, %zmm15 #85.59 c95

%zmm12{%k3} 中的 "{"/"}"是什么意思。
什么是 %k3?
什么是 %zmm14{bbbb} ?

最佳答案

迈克尔在所有三点上都是正确的:

1) {aaaa} 和 {bbbb} 是操作数限定符,它们指示输入寄存器(zmm14,在这两种情况下)的每个“ channel ”以特定方式“混合”(“{aaaa}”表示低阶元素每个车道的所有四个“元素”都要复制到车道的所有四个“元素”,所以如果包含zmm14,从高阶到低阶,160, 150, 140, 130, 120, 110, 100, 90, 80, 70 , 60, 50, 40, 30, 20, 10; 那么 zmm14{aaaa} 将是 130, 130, 130, 130, 90, 90, 90, 90, 50, 50, 50, 50, 10, 10, 1 10; 和 zmm14{bbbb} 将是 140, 140, 140, 140, 100, 100, 100, 100, 60, 60, 60, 60, 20, 20, 20, 20. zmm14{dcizzle, 是默认值即与仅说 zmm14 相同,并且根本没有混淆。)

2) {k3} 操作数限定符意味着只更改输出寄存器(zmm9,在最顶层指令中)的那些元素,这些元素为其设置了 k3 掩码寄存器中的相应位;保持 zmm9 中的所有其他元素不变。

3)而且迈克尔也完全有目标,你真的无法预测所有这些东西。您将需要研究架构文档,因为至强融核 VPU 架构与 MMX 和 SSE 有很大不同。引入掩码寄存器(用作谓词来控制修改哪些元素)、swizzles、广播以及上下转换。在 Michael 链接的文档中,介绍该级别至强融核架构的相关章节是第 7 章。您可能会仔细阅读的另一个文档是:http://software.intel.com/en-us/articles/intel-xeon-phi-coprocessor-vector-microarchitecture

在您的确切查询或 Michael 的回复中没有提到 {rz-sae} 指令限定符意味着该指令应该执行向零舍入,并且应该静默处理算术异常。

问候,
布赖恩·R·尼克森

关于assembly - 大括号 "{"在 AT&T 汇编中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17316235/

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