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();
}
```

Reply via email to