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

rs6000: Builtins for MMA+ float16 outer product instructions

Adds builtins for new Matrix Multiply Assist Plus float16 outer product instructions on PowerPC.

This commit introduces GCC built-in functions for forthcoming Matrix Multiply Assist Plus (MMA+) float16 generalized outer product (GER) instructions on PowerPC architectures. These additions prepare the compiler to support potential future hardware, enabling developers to utilize these specialized matrix operations.

In Details

New UNSPEC entries and corresponding __builtin_mma_ functions have been added to GCC's configuration for rs6000 to support upcoming MMA+ float16 GER instructions (e.g., dmxvf16gerx2, pmdmxvf16gerx2). This prepares the compiler for potential future Power processor enhancements without enabling them by default, as per the mma.md and rs6000-builtins.def files.

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.
float16
A data type representing floating-point numbers using 16 bits, offering reduced precision and memory footprint compared to standard 32-bit (float) or 64-bit (double) types, useful for machine learning and graphics.
GER
Generalized Outer Product, a matrix operation often used as a building block for more complex matrix multiplications.
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: rs6000powerpcbuiltinsmmafloat16