Search code examples
assemblyx86avxavx512

AVX-512 Instruction Encoding - {er} Meaning


In the Intel x86 Instruction Set Reference, there are a number of AVX-512 instructions that have an optional {er} in the instruction. For example, one form of VADDPD is defined as

EVEX.NDS.512.66.0F.W1 58 /r
VADDPD zmm1 {k1}{z}, zmm2,
zmm3/m512/m64bcst{er}

What does the {er} mean?


Solution

  • From Intel SDM Volume 2A, 3.1.1.3 " Instruction Column in the Opcode Summary Table":

    {er} — Indicates support for embedded rounding control, which is only applicable to the register-register form of the instruction. This also implies support for SAE (Suppress All Exceptions).

    Section 2.6.8 a bit earlier states that {er}, when applicable, can be encoded in EVEX.L´L:

    Static rounding control embedded in the EVEX encoding system applies only to register-to-register flavor of floating-point instructions with rounding semantic at two distinct vector lengths: (i) scalar, (ii) 512-bit. In both cases, the field EVEX.L’L expresses rounding mode control overriding MXCSR.RC if EVEX.b is set. When EVEX.b is set, “suppress all exceptions” is implied. The processor behaves as if all MXCSR masking controls are set.