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