On Thu, Jul 16, 2026 at 11:11:00AM +0530, Kishan Parmar wrote: > Hi All, > > The following patch has been bootstrapped and regtested on powerpc64le-linux. > > A future PowerPC processor may provide the Dense Math Facility (DMF), > where accumulators are backed by dedicated Dense Math Registers (DMRs). > Update accumulator assembly to build accumulators in DMRs using the new > DMR insert operations rather than xxmtacc/xxmfacc. > > Add DMR register predicate support, enable the required OOmode VSX pair > patterns under TARGET_DMF, use accumulator operands for MMA accumulator > assembly and disassembly, and avoid emitting xxmtacc/xxmfacc during > internal accumulator moves and GIMPLE folding when DMF is enabled. > Add DMF instruction type and ISA attributes for instruction scheduling > and enablement. > > 2026-07-16 Kishan Parmar <[email protected]> > Peter Bergner <[email protected]> > > gcc/ChangeLog: > * config/rs6000/mma.md (UNSPEC_DMF_INSERT512): New unspec. > (UNSPEC_DMF_INSERT1024): Likewise. > (movoo): Enable for TARGET_DMF. > (*movoo): Likewise. > (vsx_assemble_pair): Likewise. > (*vsx_assemble_pair): Likewise. > (vsx_disassemble_pair): Likewise. > (*vsx_disassemble_pair): Likewise. > (dm_insert512): New insn. > (dm_insert1024): Likewise. > (mma_assemble_acc): Use accumulator_operand. > Build accumulators via DMR insert operations when TARGET_DMF. > (*mma_assemble_acc): Use accumulator_operand. > (mma_<acc>): New define_expand treating xxmtacc/xxmfacc as no-ops > for TARGET_DMF. > (*mma_<acc>): Restrict to !TARGET_DMF and use accumulator_operand. > (mma_disassemble_acc): Use accumulator_operand. > * config/rs6000/predicates.md (dmr_register_operand): New predicate. > (gpc_reg_operand): Accept DMR registers. > * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Do > not emit xxmfacc for DISASSEMBLE_ACC when TARGET_DMF. > * config/rs6000/rs6000.cc (rs6000_hard_regno_mode_ok_uncached): Allow > OOmode in VSX register pairs for TARGET_DMF. > (rs6000_split_multireg_move): Avoid emitting xxmtacc/xxmfacc when > TARGET_DMF. > * config/rs6000/rs6000.md (type): Add dmf type. > (isa): Add mma and dmf ISA attributes. > (enabled): Add mma and dmf enable conditions. > > gcc/testsuite/ChangeLog: > * gcc.target/powerpc/future-dmf-xxacc.c: New test. > * gcc.target/powerpc/future-nodmf-xxacc.c: New test.
All of these patches are cleared to be back ported to the GCC 16 branch after a short delay to make sure the master branch was not broken, given they only modify PowerPC specific files or documentation files. -- Michael Meissner, IBM PO Box 98, Ayer, Massachusetts, USA, 01432 email: [email protected]
