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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The first major difference with/without continue is the moving of `f >
(2147483647 - a)` checkout of the loop via lim2 in the case of not having the
continue.

You can replace the inner most loop with:
```
    for (; c < 4; c++) {
      [[unlikely]];
      d = f && a > 0 && f > (2147483647 - a) ? 0 : b[f];
    }
```

Also so yes it is the continue predictor that is coming into play.

Reply via email to