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

rs6000: Add Dense Math (DMF/MMA+) built-in/instruction support

Adds support for new Dense Math Facility (DMF) and MMA+ instructions on PowerPC.

This patch introduces support for the Dense Math Facility (DMF) and Matrix-Multiply Assist Plus (MMA+) instructions, expected on future Power processors. It extends the existing MMA infrastructure to include Dense Math Registers (DMRs). Key changes include increasing the maximum number of MMA operands, adding new UNSPEC types for DMR XOR and outer product operations, implementing new instruction patterns in mma.md, and introducing new DMF built-ins with updated GIMPLE folding. Documentation for these new features is also included.

In Details

This commit significantly expands the rs6000 backend's support for advanced matrix operations on upcoming Power processors by integrating the Dense Math Facility (DMF) and MMA+. It modifies config/rs6000/mma.md to accommodate up to 9 operands (MAX_MMA_OPERANDS), defines new UNSPEC macros for DMR operations (UNSPEC_DMF_DMXOR, UNSPEC_DMF_DMXVI8GERX4*, etc.), and adds instruction patterns. It also introduces new GIMPLE built-ins for these operations, ensuring proper handling of DMRs, including their pass-by-reference semantics in user-facing builtins and pass-by-value internally for…

For Context
rs6000
GCC's target identifier for IBM PowerPC and Power Architecture processors.
Dense Math Facility (DMF)
A hardware feature on certain PowerPC processors designed to accelerate dense matrix operations through specialized instructions and registers.
MMA+
Matrix-Multiply Assist Plus, an enhancement to the existing Matrix Multiply-Accumulate instructions, likely offering improved performance or functionality.
DMR
Dense Math Register, a specialized register file on some PowerPC processors designed for high-performance matrix and floating-point operations.
Built-ins
Compiler-recognized functions that map directly to specific hardware instructions or sequences, providing a way to access low-level hardware features from high-level code.
GIMPLE
GCC's internal three-address intermediate representation, used for performing optimizations.
UNSPEC
An internal GCC construct representing an "unspecified operation" that is specific to a particular machine or optimization pass.
Filed Under: rs6000powerpcmmaintrinsicsoptimization