rs6000: Add TDOmode move patterns

Add move support for the new TDOmode opaque type used to represent
1024-bit Dense Math Registers that may be supported by future Power
processors.

Implement the movtdo pattern to support moves between memory, VSX
registers, and Dense Math Registers. Memory moves and VSX
register-to-register moves are handled by the generic multi-register
splitter. Dense Math Register-to-Register moves use dmmr, while moves
between VSX and Dense Math Registers are expanded using dm_insert1024
and dm_extract512.

2026-07-14  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>

gcc/
	* config/rs6000/mma.md (UNSPEC_DMF_EXTRACT512): New unspec.
	(dm_extract512): New insn.
	(movtdo): New expander.
	(*movtdo): New insn_and_split to support TDOmode moves between
	memory, VSX registers, and Dense Math Registers.
	* config/rs6000/rs6000.cc (rs6000_emit_move): Diagnose constant
	assignments to TDOmode objects.
	(rs6000_split_multireg_move): Handle TDOmode when splitting
	multi-register moves.
2 files changed