【发布时间】:2013-06-26 09:24:48
【问题描述】:
我正在使用英特尔至强融核。 我像
一样编译程序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} 是什么?
【问题讨论】:
-
{aaaa}和{bbbb}是 swizzle 说明符。{%k3}指定应使用掩码寄存器k3选择应将操作应用于向量的哪些元素。有关详细信息,请参阅the documentation。 -
@Michael:把它作为分数的答案;-)
-
这个答案似乎太模糊了,所以我做了评论。如果其他人想详细说明 swizzling 和 masking 如何在答案中发挥作用,请随时这样做。
标签: assembly intel cpu-registers