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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Adding:

    if (hoff > 2 || hoff < 0)
      __builtin_unreachable();

Before the loop fixed it.
Note you can do  `[[assume(hoff >= 0 && hoff <= 2)]];`

It looks like GCC does not figure that out from the switch statement ...

Reply via email to