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.