On 6/7/23 01:12, Jakub Jelinek via Gcc-patches wrote:

+/* zero_one_valued_p will match when a value is known to be either
+   0 or 1 including the constant 0. */
  (match zero_one_valued_p
   @0
   (if (INTEGRAL_TYPE_P (type) && tree_nonzero_bits (@0) == 1)))

So perhaps instead change this to
&& wi::leu_p (tree_nonzero_bits (@0), 1)
I guess that would cover both cases without the extra conditional. I'm fine with that approach too. Consider it pre-approved if someone wants to make that change.

jeff

Reply via email to