http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58382
--- Comment #2 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- I think this is a target bug. The backend prologue code has things like: addr = gen_rtx_MEM (DFmode, gen_rtx_POST_INC (DFmode, tmpreg)); but {PRE,POST}_{INC,DEC} is an address rtx, so it should have the same mode as the modified register.