gnu/gcc/4e591dfba303ebcf957ce0a8089cd66fed846d5f rs6000: Builtins for MMA+ float16 outer product instructions
This patch adds builtins for the Matrix Multiply Assist Plus (MMA+)
float16 GER instructions. These instructions may or may not be
supported in a future Power processor. Specifically, builtins have been
added for the following instructions:
Float16 GER operations:
- dmxvf16gerx2 and its variants (pp, pn, np, nn)
- pmdmxvf16gerx2 and its variants (pp, pn, np, nn)
Note, the names of the builtins may change in the future.
2026-06-25 Surya Kumari Jangala <jskumari@linux.ibm.com>
gcc:
* config/rs6000/mma.md (UNSPEC_DMF_DMXVF16GERX2): New UNSPEC entry.
(UNSPEC_DMF_DMXVF16GERX2PP): Likewise.
(UNSPEC_DMF_DMXVF16GERX2PN): Likewise.
(UNSPEC_DMF_DMXVF16GERX2NP): Likewise.
(UNSPEC_DMF_DMXVF16GERX2NN): Likewise.
(UNSPEC_DMF_PMDMXVF16GERX2): Likewise.
(UNSPEC_DMF_PMDMXVF16GERX2PP): Likewise.
(UNSPEC_DMF_PMDMXVF16GERX2PN): Likewise.
(UNSPEC_DMF_PMDMXVF16GERX2NP): Likewise.
(UNSPEC_DMF_PMDMXVF16GERX2NN): Likewise.
(DMF_PV): Add UNSPEC_DMF_DMXVF16GERX2.
(DMF_DPV): Add f16 variants.
(DMF_PVI8I4I2): Add UNSPEC_DMF_PMDMXVF16GERX2.
(DMF_DPVI8I4I2): Add f16 prefixed variants.
(pv): Add dmxvf16gerx2 attribute.
(dpv): Add f16 attributes.
(pvi8i4i2): Add pmdmxvf16gerx2 attribute.
(dpvi8i4i2): Add f16 prefixed attributes.
* config/rs6000/rs6000-builtins.def (__builtin_mma_dmxvf16gerx2): New
builtin.
(__builtin_mma_dmxvf16gerx2pp): Likewise.
(__builtin_mma_dmxvf16gerx2pn): Likewise.
(__builtin_mma_dmxvf16gerx2np): Likewise.
(__builtin_mma_dmxvf16gerx2nn): Likewise.
(__builtin_mma_pmdmxvf16gerx2): Likewise.
(__builtin_mma_pmdmxvf16gerx2pp): Likewise.
(__builtin_mma_pmdmxvf16gerx2pn): Likewise.
(__builtin_mma_pmdmxvf16gerx2np): Likewise.
(__builtin_mma_pmdmxvf16gerx2nn): Likewise.
(__builtin_mma_dmxvf16gerx2_internal): New internal builtin.
(__builtin_mma_dmxvf16gerx2pp_internal): Likewise.
(__builtin_mma_dmxvf16gerx2pn_internal): Likewise.
(__builtin_mma_dmxvf16gerx2np_internal): Likewise.
(__builtin_mma_dmxvf16gerx2nn_internal): Likewise.
(__builtin_mma_pmdmxvf16gerx2_internal): Likewise.
(__builtin_mma_pmdmxvf16gerx2pp_internal): Likewise.
(__builtin_mma_pmdmxvf16gerx2pn_internal): Likewise.
(__builtin_mma_pmdmxvf16gerx2np_internal): Likewise.
(__builtin_mma_pmdmxvf16gerx2nn_internal): Likewise.
* doc/extend.texi (PowerPC Matrix-Multiply Assist Built-in Functions):
Document new MMA+ builtins for f16 operations.
gcc/testsuite:
* gcc.target/powerpc/dmf-builtin-2.c: New test.
(cherry picked from commit fa857474a59842fce780b4e5246189e36ef5e167)
4 files changed