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.

Reply via email to