在 Intel x86 指令集参考中,有许多 AVX-512 指令在指令中具有可选的 {er}。例如,一种形式的 VADDPD 定义为
EVEX.NDS.512.66.0F.W1 58 /r
VADDPD zmm1 {k1}{z}, zmm2,
zmm3/m512/m64bcst{er}
{er} 是什么意思?
来自 Intel SDM Volume 2A, 3.1.1.3“操作码汇总表中的指令列”:
{er} — 表示支持嵌入式舍入控制,仅适用于寄存器寄存器形式的指令。这也意味着支持 SAE(抑制所有异常)。
稍早一点的第 2.6.8 节指出 {er},如果适用,可以在 EVEX.L´L 中编码:
嵌入在 EVEX 编码系统中的静态舍入控制仅适用于寄存器到寄存器风格的浮点指令,具有两个不同向量长度的舍入语义:(i) 标量,(ii) 512 位。在这两种情况下,如果设置了 EVEX.b,则字段 EVEX.L'L 表示覆盖 MXCSR.RC 的舍入模式控制。当设置 EVEX.b 时,暗示“抑制所有异常”。处理器的行为就像设置了所有 MXCSR 屏蔽控件一样。