https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115337
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |aldyh at gcc dot gnu.org, | |pinskia at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed| |2024-06-04 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. # RANGE [irange] int [0, +INF] _1 = .CLZ (_2, -1); Is WRONG in evrp. The range is [-1, +INF]. Reduced testcase: ``` [[gnu::noinline]] int foo (unsigned _BitInt (129) z) { int t = __builtin_stdc_first_leading_one (z); return t == 0; } int main() { if (! foo(0)) __builtin_abort(); } ```