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

rs6000: Builtins for MMA+ bfloat16 and int8 instructions

Adds builtins for Matrix Multiply Assist Plus bfloat16 and int8 instructions on PowerPC.

This commit introduces GCC built-in functions for new Matrix Multiply Assist Plus (MMA+) instructions on PowerPC architectures, specifically targeting bfloat16 and signed 8-bit integer operations. These additions prepare the compiler for potential future hardware that may incorporate these specialized matrix and accumulation capabilities.

In Details

GCC's rs6000 backend now includes builtins for upcoming MMA+ instructions involving bfloat16 GER operations (e.g., dmxvbf16gerx2) and signed 8-bit integer accumulation (e.g., dmxvi8gerx4spp, pmdmxvi8gerx4spp), as defined in RFC02658. These are defined in mma.md and rs6000-builtins.def to support potential future Power processor revisions.

For Context
Builtin function
A function provided by the compiler that has a special meaning to the compiler itself. These often map directly to specific machine instructions for performance optimization.
rs6000
GCC's target architecture identifier for IBM's PowerPC architecture, commonly found in various server and workstation products.
MMA+
Matrix Multiply Assist Plus, an extension for PowerPC processors that accelerates matrix multiplication operations.
bfloat16
A 16-bit floating-point format designed to have the same range as 32-bit float but with less precision, optimized for deep learning workloads.
int8
Refers to signed 8-bit integer data types. Used here for specialized accumulation operations in matrix multiply assist units.
GER
Generalized Outer Product, a matrix operation often used as a building block for more complex matrix multiplications.
RFC02658
Request for Comments document number, likely specifying the details of the new MMA+ instructions for PowerPC processors.
UNSPEC
An internal GCC construct used in pattern matching and code generation to represent undefined or special operations that do not map directly to standard machine instructions.
Filed Under: rs6000powerpcbuiltinsmmabfloat16