https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86680

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |8.0

--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
These days we get:
  _1 = (unsigned long) &__bss_end1;
  _7 = _1 + 18446744073709551615;
  _6 = (unsigned long) &__bss_start1;
  _11 = _7 - _6;
  _12 = _11 >> 3;
  _13 = _12 + 1;
  _14 = _13 * 8;
  __builtin_memset (&__bss_start1, 0, _14); [tail call]


Or
((((end - 1) - start) >> 3) + 1) * 8

In theory (I think) we could do:
(end - start + 7) & -8

Reply via email to