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) .