https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Index: gcc/tree-ssa-forwprop.c =================================================================== --- gcc/tree-ssa-forwprop.c (revision 219446) +++ gcc/tree-ssa-forwprop.c (working copy) @@ -2281,7 +2281,9 @@ pass_forwprop::execute (function *fun) if (single_imm_use (lhs, &use_p, &use_stmt) && gimple_store_p (use_stmt) && !gimple_has_volatile_ops (use_stmt) - && is_gimple_assign (use_stmt)) + && is_gimple_assign (use_stmt) + && (TREE_CODE (gimple_assign_lhs (use_stmt)) + != TARGET_MEM_REF)) { tree use_lhs = gimple_assign_lhs (use_stmt); tree new_lhs = build1 (REALPART_EXPR, probably fixes it.