GCC Newspaper
JULY 29, 2026
Date
/
Architectures
Components
Topics
News & Policy
rs6000 Performance Win

rs6000: Add DMF-specific XO move pattern

Introduces specific instruction patterns for moving data between accumulator/DMR registers on rs6000 when the DMF feature is enabled.

The rs6000 backend now distinguishes between DMF and non-DMF variants for the movxo instruction pattern. This allows the compiler to utilize specialized DMF move instructions, such as dmxxinstdmr512, dmmr, and dmxxextfdmr512, for accumulator and DMR register moves when TARGET_DMF is active, potentially improving performance for these operations.

In Details

This commit refines the machine description for the rs6000 target, specifically within the MMA (Matrix Multiply-Accumulate) and VSX (Vector-Scalar Extension) instruction set extensions, by splitting the movxo (move extended) pattern. The new movxo_dmf pattern targets the Dense Math Registers (DMRs) and is enabled only when TARGET_DMF is set, utilizing specific instructions like dmxxinstdmr512 and dmmr. The existing movxo_nodmf pattern is retained for non-DMR operands, ensuring correct code generation for both scenarios.

For Context
rs6000
The GCC target specific name for IBM's PowerPC architecture, commonly used in their server and workstation products.
DMF
Dense Math Registers, a set of registers on certain PowerPC architectures (like POWER10) optimized for dense matrix operations and math-intensive workloads.
DMR
Dense Math Registers, see DMF.
movxo
A machine-dependent instruction pattern representing a move operation that can handle extended data types or vector elements, potentially including scalar-to-vector or vector-to-scalar moves.
VSX
Vector-Scalar Extension, an instruction set extension for PowerPC architectures that provides single-instruction, multiple-data (SIMD) capabilities alongside scalar operations.
Filed Under: rs6000optimizationpowerpc