binutils Newspaper
OCTOBER 6, 2026
x86 — Proposed

x86: fold left-over GFNI templates

Cleans up x86 opcode table by folding unused GFNI instruction templates and removing redundant encoding flags.

This patch refactors the x86 opcode table (opcodes/i386-opc.tbl) by folding unused Generational Function Network Interface (GFNI) instruction templates. It removes the redundant EVexDYN flag from the VGF2P8MULB instruction and ensures consistency across GFNI templates. This cleanup aims to streamline the opcode definitions and potentially improve assembly efficiency.

In the Thread 1 participant
  1. Jan Beulich proposer

    Proposes cleaning up GFNI instruction templates in the x86 opcode table.

    “It's unclear why they weren't folded back at the time; VEX.W vs EVEX.W requirements certainly weren't getting in the way here. While there also drop the redundant EVexDYN from VGF2P8MULB, making all three GFNI templates uniform in this regard.”

In Details

The opcode table for x86 (opcodes/i386-opc.tbl) contains definitions for various instruction sets, including GFNI. This patch addresses a minor cleanup task by consolidating instruction templates for GFNI instructions, specifically vgf2p8affineinvqb, vgf2p8affineqb, and vgf2p8mulb. It removes an outdated or redundant encoding flag (EVexDYN) and ensures that the templates are more uniformly defined, possibly hinting at a previous lack of optimization or a historical inconsistency in how these templates were handled.

For Context
GFNI
Generational Function Network Interface, a set of Intel instructions for accelerating polynomial arithmetic, often used in cryptography and other areas.
AVX
Advanced Vector Extensions, a set of SIMD instructions for x86 processors that increase performance for floating-point and integer operations.
AVX512F
The foundational subset of the AVX-512 instruction set, introducing 512-bit vector registers and operations.
VEX
Vector Extension, a prefix used in x86 instruction encoding to support wider vector registers (e.g., 128-bit, 256-bit) and new instructions.
EVEX
Another prefix used for encoding instructions, primarily associated with AVX-512, offering more features and flexibility than VEX.
opcode table
A data structure used by assemblers and disassemblers to map mnemonic instruction names to their corresponding machine code byte sequences.
Filed Under: x86binutilsGFNIopcodescleanup