http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55734



--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-19 
16:48:00 UTC ---

Perhaps

  if (v > 0)

    {

#if IN_LIBGCOV

      r = 63 - __builtin_clzll (v);

#else

      if (sizeof (v) <= sizeof (HOST_WIDE_INT))

        r = floor_log2 (v);

      else if (sizeof (v) == 2 * sizeof (HOST_WIDE_INT))

        {

          r = v >> HOST_BITS_PER_WIDE_INT;

          if (r)

            r = floor_log2 (r) + HOST_BITS_PER_WIDE_INT;

          else

            r = floor_log2 (v);

        }

      else

        gcc_unreachable ();

#endif

    }

Reply via email to