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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2024-11-19
             Status|UNCONFIRMED                 |NEW

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Sam James from comment #2)
> I assume it's because of the abnormal edge from setjmp?

It is also due to this __builtin_aarch64_im_lane_boundsi being folded away
after inlining.

Slightly more reduced and cleaned up:
```
static inline
void h(int __b) {
  __builtin_aarch64_im_lane_boundsi(2, 1, __b);
  __builtin_unreachable();
}
int _setjmp();
void hh() {
  if (_setjmp())
    h(1);
}
```

what __builtin_aarch64_im_lane_boundsi checks is the 3rd argument is between  0
and 2/1 (that is 1st argument divided by 2nd) .

Reply via email to