https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110405
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2023-11-12 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Another testcase: ``` void h(unsigned long); void f (unsigned long i) { if ((i & 7) != 6) __builtin_unreachable(); if(i & 1) h(0); } ``` Note LLVM is able to optimize both cases. Note for the above testcase we get for the range: # RANGE [irange] long unsigned int [6, 18446744073709551614] Notice how the value/mask is not there even though we should be able to get it from the IR.