http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57303
--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> --- statement_sink_location in /* A killing definition is not a use. */ if (gimple_assign_single_p (use_stmt) && gimple_vdef (use_stmt) && operand_equal_p (gimple_assign_lhs (stmt), gimple_assign_lhs (use_stmt), 0)) continue; doesn't check: (gdb) call debug_gimple_stmt (use_stmt) # .MEM_11 = VDEF <.MEM_10> y.f0 = y.f0;