https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117433
--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:2fc25a21820001c67258d30f0960ac9cd0f268cf commit r15-4951-g2fc25a21820001c67258d30f0960ac9cd0f268cf Author: Richard Biener <rguent...@suse.de> Date: Mon Nov 4 11:39:05 2024 +0100 middle-end/117433 - ICE with gimple BLKmode reg copy When we end up expanding a SSA name copy with BLKmode regs which can happen for vectors, possibly wrapped in a NOP-conversion or a PAREN_EXPR and we are not optimizing we can end up with two BLKmode MEMs that expand_gimple_stmt_1 doesn't properly handle when expanding, trying to emit_move_insn them. Looking at store_expr which what expand_gimple_stmt_1 is really doing reveals a lot of magic that's missing. It eventually falls back to emit_block_move (store_expr isn't exported), so this is what I ended up using here given I think we'll only have BLKmode "registers" for vectors. PR middle-end/117433 * cfgexpand.cc (expand_gimple_stmt_1): Use emit_block_move when moving temp to BLKmode target. * gcc.dg/pr117433.c: New testcase.