https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90327
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed|2019-05-03 00:00:00 |2019-05-06 CC| |matz at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. We're emitting a partition copy from (mem/c:BLK (plus:DI (reg/f:DI 55 virtual-stack-vars) (const_int -4 [0xfffffffffffffffc])) [2 n+0 S4 A32]) to (reg:V1SF 61) We don't seem to expect this looking at emit_partition_copy, which just expects a BLKmode/BLKmode combo but not a mixed case. /* Emit insns to copy SRC into DEST converting SRC if necessary. As SRC/DEST might be BLKmode memory locations SIZEEXP is a tree from which we deduce the size to copy in that case. */ static inline rtx_insn * emit_partition_copy (rtx dest, rtx src, int unsignedsrcp, tree sizeexp) { start_sequence (); if (GET_MODE (src) != VOIDmode && GET_MODE (src) != GET_MODE (dest)) src = convert_to_mode (GET_MODE (dest), src, unsignedsrcp); if (GET_MODE (src) == BLKmode) { gcc_assert (GET_MODE (dest) == BLKmode); emit_block_move (dest, src, expr_size (sizeexp), BLOCK_OP_NORMAL); }