https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119808
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The clobber is emitted when processing b.1_1 = (unsigned _BitInt(129)) b.0_6; and the rules covering it are if (m_first && m_single_use_names && m_vars[p] != m_lhs && m_after_stmt && bitmap_bit_p (m_single_use_names, SSA_NAME_VERSION (op))) i.e. if it is copying into the same partition or extending etc., m_vars[p] != m_lhs check already guards it, and m_single_use_names is a replacement for has_single_use. b_5 = 0; b.0_6 = b_5; b.1_1 = (unsigned _BitInt(129)) b.0_6; b.0_6 has a single use, the problem was that there was the b.0_6 = b_5; copy first and b_5 doesn't have a single use, yet they share a partition.