the 68000 PDP8 PDP11 and 6600 all had auto-increment addressing modes.
Power ISA has LDST-with-update which is not quite the same but almost:
update-with-immediate on a Vector advances by the immediate, but has
an initial "one too many adds"
autoincrementing should use the EA *before* the add is performed
(i.e. just RA) as an option. thus on loop exit RA is set to
point to where the *next* batch starts.
in LD/ST-immediate there is a mode-combination reserved, which can be used
for saying "use RA only as the EA, but write out (RA+imm) as the update".
this is a significant change as it means modifying the pseudocode:
ea <- RA+D
if preincrement then EA <- ea
else EA <- RA
RT -< MEM(EA, sz)
RA <- ea
with a default "preincrement=1" in Scalar ISA
in progress, experimental, separate branch